diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2009-07-09 04:03:30 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2009-07-09 04:03:30 +0000 |
commit | f16120475e77bcacf553373d5720d53132378572 (patch) | |
tree | 9b93b88e28f11c406dbc88983eab12661ef2fccb | |
parent | ffd1326ff8dfc652a8026c3faebf55bbba7c32c7 (diff) | |
download | external_llvm-f16120475e77bcacf553373d5720d53132378572.zip external_llvm-f16120475e77bcacf553373d5720d53132378572.tar.gz external_llvm-f16120475e77bcacf553373d5720d53132378572.tar.bz2 |
Move PR4517 to README.txt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75098 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/README.txt | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt index f68cf0e..be7bb3a 100644 --- a/lib/Target/README.txt +++ b/lib/Target/README.txt @@ -1677,3 +1677,25 @@ Instcombine should be able to optimize away the loads (and thus the globals). //===---------------------------------------------------------------------===// + +I saw this constant expression in real code after llvm-g++ -O2: + +declare extern_weak i32 @0(i64) + +define void @foo() { + br i1 icmp eq (i32 zext (i1 icmp ne (i32 (i64)* @0, i32 (i64)* null) to i32), +i32 0), label %cond_true, label %cond_false +cond_true: + ret void +cond_false: + ret void +} + +That branch expression should be reduced to: + + i1 icmp eq (i32 (i64)* @0, i32 (i64)* null) + +It's probably not a perf issue, I just happened to see it while examining +something else and didn't want to forget about it. + +//===---------------------------------------------------------------------===// |