- Jan 06, 2010
-
-
Mikhail Glushenkov authored
llvm-svn: 92831
-
Duncan Sands authored
memcpy, memset and other intrinsics that only access their arguments to be readnone if the intrinsic's arguments all point to local memory. This improves the testcase in the README to readonly, but it could in theory be made readnone, however this would involve more sophisticated analysis that looks through the memcpy. llvm-svn: 92829
-
Chris Lattner authored
llvm-svn: 92824
-
Chris Lattner authored
Previously, instcombine would only promote an expression tree to the larger type if doing so eliminated two casts. This is because a need to manually do the sign extend after the promoted expression tree with two shifts. Now, we keep track of whether the result of the computation is going to be properly sign extended already. If so, we can unconditionally promote the expression, which allows us to zap more sext's. This implements rdar://6598839 (aka gcc pr38751) llvm-svn: 92815
-
Chris Lattner authored
llvm-svn: 92800
-
- Jan 05, 2010
-
-
Chris Lattner authored
llvm-svn: 92795
-
Chris Lattner authored
llvm-svn: 92792
-
Chris Lattner authored
llvm-svn: 92790
-
Chris Lattner authored
The only difference is that EvaluateInDifferentType checks to ensure they are profitable before doing them :) llvm-svn: 92788
-
Chris Lattner authored
llvm-svn: 92775
-
Chris Lattner authored
llvm-svn: 92773
-
Benjamin Kramer authored
llvm-svn: 92771
-
Chris Lattner authored
llvm-svn: 92770
-
Chris Lattner authored
llvm-svn: 92768
-
Chris Lattner authored
llvm-svn: 92766
-
Benjamin Kramer authored
llvm-svn: 92760
-
Chris Lattner authored
llvm-svn: 92745
-
Dan Gohman authored
llvm-svn: 92739
-
Dan Gohman authored
llvm-svn: 92735
-
Dan Gohman authored
non-zero trip count. Use SmallVector's pop_back_val(). llvm-svn: 92734
-
Dan Gohman authored
llvm-svn: 92733
-
Dan Gohman authored
RecursivelyDeleteDeadPHINode, and DeleteDeadPHIs return a flag indicating whether they made any changes. llvm-svn: 92732
-
Benjamin Kramer authored
llvm-svn: 92727
-
Benjamin Kramer authored
Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer. llvm-svn: 92726
-
Chris Lattner authored
llvm-svn: 92712
-
Chris Lattner authored
it does make sense to keep them together, at least for now. llvm-svn: 92711
-
Chris Lattner authored
llvm-svn: 92710
-
Chris Lattner authored
llvm-svn: 92709
-
Chris Lattner authored
llvm-svn: 92708
-
Chris Lattner authored
llvm-svn: 92707
-
Chris Lattner authored
leading/trailing bits. Patch by Alastair Lynn! llvm-svn: 92706
-
Chris Lattner authored
llvm-svn: 92705
-
Chris Lattner authored
dyn_castNotVal in the X+~X transform. dyn_castNotVal is dramatic overkill for what the xform needed. llvm-svn: 92704
-
Chris Lattner authored
and simplify. llvm-svn: 92700
-
Chris Lattner authored
llvm-svn: 92697
-
Chris Lattner authored
llvm-svn: 92695
-
Chris Lattner authored
Eliminate the 'AddMaskingAnd' transformation, it is redundant with this more general code right below it: // A+B --> A|B iff A and B have no bits set in common. llvm-svn: 92693
-
Chris Lattner authored
that got instantiated. There is no reason for instcombine to try this hard for simple associative optimizations. Next up, eliminate the template completely. llvm-svn: 92692
-
Chris Lattner authored
llvm-svn: 92689
-
Chris Lattner authored
llvm-svn: 92688
-