[clang] [clang][dataflow] Refactor processing of terminator element (PR #84499)

via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 12 04:13:38 PDT 2024


================
@@ -337,26 +274,33 @@ computeBlockInputState(const CFGBlock &Block, AnalysisContext &AC) {
         AC.BlockStates[Pred->getBlockID()];
     if (!MaybePredState)
       continue;
-
-    if (AC.Analysis.builtinOptions()) {
-      if (const Stmt *PredTerminatorStmt = Pred->getTerminatorStmt()) {
-        // We have a terminator: we need to mutate an environment to describe
-        // when the terminator is taken. Copy now.
+    const TypeErasedDataflowAnalysisState &PredState = *MaybePredState;
+
+    if (const Stmt *PredTerminatorStmt = Pred->getTerminatorStmt()) {
+      bool BranchVal = blockIndexInPredecessor(*Pred, Block) == 0;
----------------
martinboehme wrote:

Move this down to the point where it's actually needed (this is included in the suggestion above).

https://github.com/llvm/llvm-project/pull/84499


More information about the cfe-commits mailing list