Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,10 @@ static cl::opt<unsigned>
cl::desc("Maximum cost accepted for the transformation"),
cl::Hidden, cl::init(50));

static cl::opt<bool>
VerifyDomTree("dfa-jumpthread-verify-domtree", cl::Hidden,
cl::desc("Enable or disable dominator tree verification"));

extern cl::opt<bool> ProfcheckDisableMetadataFixes;

} // namespace llvm
Expand Down Expand Up @@ -1479,10 +1483,13 @@ bool DFAJumpThreading::run(Function &F) {
DTU->flush();

#ifdef EXPENSIVE_CHECKS
assert(DTU->getDomTree().verify(DominatorTree::VerificationLevel::Full));
verifyFunction(F, &dbgs());
#endif

if (VerifyDomTree)
assert(DTU->getDomTree().verify(DominatorTree::VerificationLevel::Full) &&
"Failed to maintain validity of domtree!");

return MadeChanges;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -passes=dfa-jump-threading,sccp,simplifycfg %s | FileCheck %s
; RUN: opt -S -passes=dfa-jump-threading,sccp,simplifycfg -dfa-jumpthread-verify-domtree=1 %s | FileCheck %s

; This test checks that a constant propagation is applied for a basic loop.
; Related to bug 44679.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
; REQUIRES: asserts
; RUN: opt -S -passes=dfa-jump-threading -debug-only=dfa-jump-threading -disable-output %s 2>&1 | FileCheck %s
; RUN: opt -S -passes=dfa-jump-threading -print-prof-data %s -o - | FileCheck %s --check-prefix=PROFILE
; RUN: opt -S -passes=dfa-jump-threading -dfa-jumpthread-verify-domtree=1 -debug-only=dfa-jump-threading -disable-output %s 2>&1 | FileCheck %s
; RUN: opt -S -passes=dfa-jump-threading -dfa-jumpthread-verify-domtree=1 -print-prof-data %s -o - | FileCheck %s --check-prefix=PROFILE

; This test checks that the analysis identifies all threadable paths in a
; simple CFG. A threadable path includes a list of basic blocks, the exit
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals
; RUN: opt -S -passes=dfa-jump-threading %s | FileCheck %s
; RUN: opt -S -passes=dfa-jump-threading -dfa-jumpthread-verify-domtree=1 %s | FileCheck %s

; These tests check that the DFA jump threading transformation is applied
; properly to two CFGs. It checks that blocks are cloned, branches are updated,
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Transforms/DFAJumpThreading/dfa-unfold-select.ll
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -passes=dfa-jump-threading -dfa-early-exit-heuristic=false %s | FileCheck %s
; RUN: opt -S -passes=dfa-jump-threading -dfa-early-exit-heuristic=false -dfa-jumpthread-verify-domtree=1 %s | FileCheck %s

; These tests check if selects are unfolded properly for jump threading
; opportunities. There are three different patterns to consider:
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Transforms/DFAJumpThreading/equivalent-states.ll
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3
; RUN: opt -S -passes=dfa-jump-threading %s | FileCheck %s
; RUN: opt -S -passes=dfa-jump-threading -dfa-jumpthread-verify-domtree=1 %s | FileCheck %s

declare void @do_something()
declare void @user(i32)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3
; RUN: opt -S -passes=dfa-jump-threading %s | FileCheck %s
; RUN: opt -S -passes=dfa-jump-threading -dfa-jumpthread-verify-domtree=1 %s | FileCheck %s

define void @pr60254() {
; CHECK-LABEL: define void @pr60254() {
Expand Down
Loading