summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2012-07-12 01:45:35 +0000
committerEvan Cheng <evan.cheng@apple.com>2012-07-12 01:45:35 +0000
commit493eb32ff45cebb7ea227a33955a565933879ed0 (patch)
tree59bdcccdc511543f77ad5df75e8628920da2d522 /clang/lib/CodeGen/CodeGenModule.cpp
parent17ce5b977b6330005205390e3025159ed0143f1e (diff)
downloadbcm5719-llvm-493eb32ff45cebb7ea227a33955a565933879ed0.tar.gz
bcm5719-llvm-493eb32ff45cebb7ea227a33955a565933879ed0.zip
Instcombine was transforming:
%shr = lshr i64 %key, 3 %0 = load i64* %val, align 8 %sub = add i64 %0, -1 %and = and i64 %sub, %shr ret i64 %and to: %shr = lshr i64 %key, 3 %0 = load i64* %val, align 8 %sub = add i64 %0, 2305843009213693951 %and = and i64 %sub, %shr ret i64 %and The demanded bit optimization is actually a pessimization because add -1 would be codegen'ed as a sub 1. Teach the demanded constant shrinking optimization to check for negated constant to make sure it is actually reducing the width of the constant. rdar://11793464 llvm-svn: 160101
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud