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 | 4e705e421cd84413359eb7dd21df6990ec133c75 (patch) | |
tree | 49638ca87d49beeee1795e38d07752e8ea780c09 /llvm/lib/Target/README.txt | |
parent | dab7b06de971bffb7abced1ad1de9617311e3e8e (diff) | |
download | bcm5719-llvm-4e705e421cd84413359eb7dd21df6990ec133c75.tar.gz bcm5719-llvm-4e705e421cd84413359eb7dd21df6990ec133c75.zip |
Move PR4517 to README.txt.
llvm-svn: 75098
Diffstat (limited to 'llvm/lib/Target/README.txt')
-rw-r--r-- | llvm/lib/Target/README.txt | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/lib/Target/README.txt b/llvm/lib/Target/README.txt index f68cf0e40df..be7bb3a53ec 100644 --- a/llvm/lib/Target/README.txt +++ b/llvm/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. + +//===---------------------------------------------------------------------===// |