[llvm] 2c4d914 - [Test] Add failing test that demonstrates buggy behavior of ADCE

Max Kazantsev via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 14 04:47:59 PDT 2020


Author: Max Kazantsev
Date: 2020-04-14T18:47:04+07:00
New Revision: 2c4d914eebab1e07e50b1393ab50163f4b92be54

URL: https://github.com/llvm/llvm-project/commit/2c4d914eebab1e07e50b1393ab50163f4b92be54
DIFF: https://github.com/llvm/llvm-project/commit/2c4d914eebab1e07e50b1393ab50163f4b92be54.diff

LOG: [Test] Add failing test that demonstrates buggy behavior of ADCE

ADCE messes up with loop info (proved for new pass manager only) by
making some loop blocks unreachable, without making proper updates
to the loop.

Added: 
    llvm/test/Transforms/ADCE/broken-loop-info.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/ADCE/broken-loop-info.ll b/llvm/test/Transforms/ADCE/broken-loop-info.ll
new file mode 100644
index 000000000000..d1c562c31582
--- /dev/null
+++ b/llvm/test/Transforms/ADCE/broken-loop-info.ll
@@ -0,0 +1,30 @@
+; RUN: opt -passes='loop(licm),adce,loop(licm)' -S < %s | FileCheck %s
+;
+; XFAIL: *
+; REQUIRES: asserts
+;
+; This test demonstrates a bug in ADCE's work with loop info. It does some
+; changes that make loop's block unreachable, but never bothers to update
+; loop info accordingly.
+
+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128-ni:1-p2:32:8:8:32-ni:2"
+target triple = "x86_64-unknown-linux-gnu"
+
+define void @test() {
+; CHECK-LABEL: test
+
+bb:
+  br label %bb2
+
+bb1:                                              ; preds = %bb4
+  ret void
+
+bb2:                                              ; preds = %bb4, %bb
+  br i1 undef, label %bb4, label %bb3
+
+bb3:                                              ; preds = %bb2
+  br label %bb4
+
+bb4:                                              ; preds = %bb3, %bb2
+  br i1 undef, label %bb1, label %bb2
+}


        


More information about the llvm-commits mailing list