1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/lib/Transforms/InstCombine
Duncan Sands 555525adf4 Exploit distributive laws (eg: And distributes over Or, Mul over Add, etc) in a
fairly systematic way in instcombine.  Some of these cases were already dealt
with, in which case I removed the existing code.  The case of Add has a bunch of
funky logic which covers some of this plus a few variants (considers shifts to be
a form of multiplication), which I didn't touch.  The simplification performed is:
A*B+A*C -> A*(B+C).  The improvement is to do this in cases that were not already
handled [such as A*B-A*C -> A*(B-C), which was reported on the mailing list], and
also to do it more often by not checking for "only one use" if "B+C" simplifies.

llvm-svn: 120024
2010-11-23 14:23:47 +00:00
..
CMakeLists.txt Removed a bunch of unnecessary target_link_libraries. 2010-09-28 22:39:14 +00:00
InstCombine.h Exploit distributive laws (eg: And distributes over Or, Mul over Add, etc) in a 2010-11-23 14:23:47 +00:00
InstCombineAddSub.cpp Exploit distributive laws (eg: And distributes over Or, Mul over Add, etc) in a 2010-11-23 14:23:47 +00:00
InstCombineAndOrXor.cpp Exploit distributive laws (eg: And distributes over Or, Mul over Add, etc) in a 2010-11-23 14:23:47 +00:00
InstCombineCalls.cpp Teach instcombine to set the alignment arguments for NEON load/store intrinsics. 2010-10-22 21:41:48 +00:00
InstCombineCasts.cpp Fix a serious performance regression introduced by r108687 on linux: 2010-09-07 20:01:38 +00:00
InstCombineCompares.cpp duncan's spider sense was right, I completely reversed the condition 2010-11-23 02:42:04 +00:00
InstCombineLoadStoreAlloca.cpp Fix a case where instcombine was stripping metadata (and alignment) 2010-10-25 16:16:27 +00:00
InstCombineMulDivRem.cpp InstCombine: Add a missing irem identity (X % X -> 0). 2010-11-17 19:11:46 +00:00
InstCombinePHI.cpp Teach InstructionSimplify about phi nodes. I chose to have it simply 2010-11-14 13:30:18 +00:00
InstCombineSelect.cpp Teach InstCombine not to use Add and Neg on FP. PR 8490. 2010-10-27 23:45:18 +00:00
InstCombineShifts.cpp When checking that the necessary bits are zero in 2010-11-10 01:30:56 +00:00
InstCombineSimplifyDemanded.cpp use ArgOperand API 2010-06-28 16:45:00 +00:00
InstCombineVectorOps.cpp Clean up indentation and other whitespace. 2010-10-29 22:20:45 +00:00
InstCombineWorklist.h I got tired of VISIBILITY_HIDDEN colliding with the gcc enum. Rename it 2010-05-11 20:16:09 +00:00
InstructionCombining.cpp Exploit distributive laws (eg: And distributes over Or, Mul over Add, etc) in a 2010-11-23 14:23:47 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00