@@ -384,11 +384,11 @@ class FactManager {
384
384
llvm::BumpPtrAllocator FactAllocator;
385
385
};
386
386
387
- class FactGenerator : public ConstStmtVisitor <FactGenerator > {
388
- using Base = ConstStmtVisitor<FactGenerator >;
387
+ class FactGeneratorVisitor : public ConstStmtVisitor <FactGeneratorVisitor > {
388
+ using Base = ConstStmtVisitor<FactGeneratorVisitor >;
389
389
390
390
public:
391
- FactGenerator (FactManager &FactMgr) : FactMgr(FactMgr) {}
391
+ FactGeneratorVisitor (FactManager &FactMgr) : FactMgr(FactMgr) {}
392
392
393
393
void startBlock (const CFGBlock *Block) {
394
394
CurrentBlock = Block;
@@ -544,11 +544,13 @@ class FactGenerator : public ConstStmtVisitor<FactGenerator> {
544
544
llvm::SmallVector<Fact *> CurrentBlockFacts;
545
545
};
546
546
547
- class FactGeneratorDriver : public RecursiveASTVisitor <FactGeneratorDriver > {
547
+ class FactGenerator : public RecursiveASTVisitor <FactGenerator > {
548
548
public:
549
- FactGeneratorDriver (FactGenerator &FG, AnalysisDeclContext &AC)
550
- : FG(FG), AC(AC) {}
549
+ FactGenerator (FactManager &FactMgr, AnalysisDeclContext &AC)
550
+ : FG(FactMgr), AC(AC) {}
551
+
551
552
bool shouldTraversePostOrder () const { return true ; }
553
+
552
554
void run () {
553
555
llvm::TimeTraceScope TimeProfile (" FactGenerator" );
554
556
// Iterate through the CFG blocks in reverse post-order to ensure that
@@ -579,16 +581,17 @@ class FactGeneratorDriver : public RecursiveASTVisitor<FactGeneratorDriver> {
579
581
580
582
private:
581
583
struct FactGeneratorBlockRAII {
582
- FactGeneratorBlockRAII (FactGenerator &FG, const CFGBlock *Block) : FG(FG) {
584
+ FactGeneratorBlockRAII (FactGeneratorVisitor &FG, const CFGBlock *Block)
585
+ : FG(FG) {
583
586
FG.startBlock (Block);
584
587
}
585
588
~FactGeneratorBlockRAII () { FG.endBlock (); }
586
589
587
590
private:
588
- FactGenerator FG;
591
+ FactGeneratorVisitor & FG;
589
592
};
590
593
591
- FactGenerator & FG;
594
+ FactGeneratorVisitor FG;
592
595
AnalysisDeclContext &AC;
593
596
llvm::DenseSet<const Stmt *> VisitedStmts;
594
597
};
@@ -1136,9 +1139,8 @@ void LifetimeSafetyAnalysis::run() {
1136
1139
DEBUG_WITH_TYPE (" PrintCFG" , Cfg.dump (AC.getASTContext ().getLangOpts (),
1137
1140
/* ShowColors=*/ true ));
1138
1141
1139
- FactGenerator Generator (*FactMgr);
1140
- FactGeneratorDriver Driver (Generator, AC);
1141
- Driver.run ();
1142
+ FactGenerator FG (*FactMgr, AC);
1143
+ FG.run ();
1142
1144
DEBUG_WITH_TYPE (" LifetimeFacts" , FactMgr->dump (Cfg, AC));
1143
1145
1144
1146
// / TODO(opt): Consider optimizing individual blocks before running the
0 commit comments