llvm-mirror/lib/Transforms
Simon Pilgrim ba759cb550 [InstCombine] Folding of shifts by the sum of positive values
This patch introduces the combine:

(C1 shift (A add C2)) -> ((C1 shift C2) shift A)
iff A and C2 are both positive

If both A and C2 are know to be positive then we can safely split into 2 shifts, permitting the folding of the Inner shift.

Fix for the spec benchmark case mentioned by @nadav on PR15141 (assuming we can prove that the inputs as positive).

Differential Revision: https://reviews.llvm.org/D26000

llvm-svn: 285696
2016-11-01 15:40:30 +00:00
..
Coroutines [coroutines] Store an address of destroy OR cleanup part in the coroutine frame. 2016-10-08 00:22:50 +00:00
Hello
InstCombine [InstCombine] Folding of shifts by the sum of positive values 2016-11-01 15:40:30 +00:00
Instrumentation [asan] Move instrumented null-terminated strings to a special section, LLVM part 2016-10-31 18:51:58 +00:00
IPO [ThinLTO] Rename HasSection to NoRename (NFC) 2016-10-28 02:24:59 +00:00
ObjCARC Use StringRef in ARCRuntimeEntryPoints APIs (NFC) 2016-10-05 01:15:04 +00:00
Scalar SpeculativeExecution: Allow speculating more inst types 2016-10-28 20:00:33 +00:00
Utils Fix a typo. 2016-10-31 22:42:39 +00:00
Vectorize Second attempt at r285517. 2016-10-31 13:17:31 +00:00
CMakeLists.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00
LLVMBuild.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00