[llvm] abbbc48 - Revert "Improve the effectiveness of BDCE's debug info salvaging"
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 28 12:52:36 PDT 2021
Author: Nikita Popov
Date: 2021-09-28T21:52:27+02:00
New Revision: abbbc480a152c1afbac215064f22ae07c87ed964
URL: https://github.com/llvm/llvm-project/commit/abbbc480a152c1afbac215064f22ae07c87ed964
DIFF: https://github.com/llvm/llvm-project/commit/abbbc480a152c1afbac215064f22ae07c87ed964.diff
LOG: Revert "Improve the effectiveness of BDCE's debug info salvaging"
This reverts commit f6954bf80472cbfc06e39dac75a4a72120c9bd15.
This breaks the test-suite O3 build:
/home/nikic/llvm-test-suite/build-O3/tools/timeit --summary Bitcode/Benchmarks/Halide/local_laplacian/CMakeFiles/halide_local_laplacian.dir/local_laplacian.bc.o.time /home/nikic/llvm-project/build/bin/clang++ -DNDEBUG -O3 -w -Werror=date-time -save-stats=obj -save-stats=obj -std=c++11 -MD -MT Bitcode/Benchmarks/Halide/local_laplacian/CMakeFiles/halide_local_laplacian.dir/local_laplacian.bc.o -MF Bitcode/Benchmarks/Halide/local_laplacian/CMakeFiles/halide_local_laplacian.dir/local_laplacian.bc.o.d -o Bitcode/Benchmarks/Halide/local_laplacian/CMakeFiles/halide_local_laplacian.dir/local_laplacian.bc.o -c ../Bitcode/Benchmarks/Halide/local_laplacian/local_laplacian.bc
While deleting: i64 %
Use still stuck around after Def is destroyed: %12620 = mul i64 %12619, <badref>
clang++: /home/nikic/llvm-project/llvm/lib/IR/Value.cpp:103: llvm::Value::~Value(): Assertion `materialized_use_empty() && "Uses remain when a value is destroyed!"' failed.
Added:
Modified:
llvm/lib/Transforms/Scalar/BDCE.cpp
llvm/test/Transforms/Util/salvage-debuginfo.ll
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Scalar/BDCE.cpp b/llvm/lib/Transforms/Scalar/BDCE.cpp
index 7ae1666f4cbb0..c06125788f37e 100644
--- a/llvm/lib/Transforms/Scalar/BDCE.cpp
+++ b/llvm/lib/Transforms/Scalar/BDCE.cpp
@@ -93,7 +93,7 @@ static void clearAssumptionsOfUsers(Instruction *I, DemandedBits &DB) {
static bool bitTrackingDCE(Function &F, DemandedBits &DB) {
SmallVector<Instruction*, 128> Worklist;
bool Changed = false;
- for (Instruction &I : llvm::reverse(instructions(F))) {
+ for (Instruction &I : instructions(F)) {
// If the instruction has side effects and no non-dbg uses,
// skip it. This way we avoid computing known bits on an instruction
// that will not help us.
@@ -108,6 +108,7 @@ static bool bitTrackingDCE(Function &F, DemandedBits &DB) {
wouldInstructionBeTriviallyDead(&I))) {
salvageDebugInfo(I);
Worklist.push_back(&I);
+ I.dropAllReferences();
Changed = true;
continue;
}
@@ -154,9 +155,6 @@ static bool bitTrackingDCE(Function &F, DemandedBits &DB) {
}
}
- for (Instruction *&I : Worklist)
- I->dropAllReferences();
-
for (Instruction *&I : Worklist) {
++NumRemoved;
I->eraseFromParent();
diff --git a/llvm/test/Transforms/Util/salvage-debuginfo.ll b/llvm/test/Transforms/Util/salvage-debuginfo.ll
index d72b239e31644..ed1baa56017af 100644
--- a/llvm/test/Transforms/Util/salvage-debuginfo.ll
+++ b/llvm/test/Transforms/Util/salvage-debuginfo.ll
@@ -1,5 +1,4 @@
; RUN: opt -adce %s -S -o - | FileCheck %s
-; RUN: opt -bdce %s -S -o - | FileCheck %s
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx"
define void @f(i32) !dbg !8 {
More information about the llvm-commits
mailing list