1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
llvm-mirror/lib/Transforms/InstCombine
Chris Lattner 3bc741a0d2 recognize an unsigned add with overflow idiom into uadd.
This resolves a README entry and technically resolves PR4916,
but we still get poor code for the testcase in that PR because
GVN isn't CSE'ing uadd with add, filed as PR8817.

Previously we got:

_test7:                                 ## @test7
	addq	%rsi, %rdi
	cmpq	%rdi, %rsi
	movl	$42, %eax
	cmovaq	%rsi, %rax
	ret

Now we get:

_test7:                                 ## @test7
	addq	%rsi, %rdi
	movl	$42, %eax
	cmovbq	%rsi, %rax
	ret

llvm-svn: 122182
2010-12-19 19:37:52 +00:00
..
CMakeLists.txt Removed a bunch of unnecessary target_link_libraries. 2010-09-28 22:39:14 +00:00
InstCombine.h Rename SimplifyDistributed to the more meaningfull name SimplifyByFactorizing. 2010-11-23 20:42:39 +00:00
InstCombineAddSub.cpp Move Sub simplifications and additional Add simplifications out of 2010-12-15 14:07:39 +00:00
InstCombineAndOrXor.cpp Rename SimplifyDistributed to the more meaningfull name SimplifyByFactorizing. 2010-11-23 20:42:39 +00:00
InstCombineCalls.cpp optimize uadd(x, cst) into a comparison when the normal 2010-12-19 19:35:32 +00:00
InstCombineCasts.cpp Whitespace fixes. No functionality change. 2010-12-17 23:27:41 +00:00
InstCombineCompares.cpp recognize an unsigned add with overflow idiom into uadd. 2010-12-19 19:37:52 +00:00
InstCombineLoadStoreAlloca.cpp Fix a case where instcombine was stripping metadata (and alignment) 2010-10-25 16:16:27 +00:00
InstCombineMulDivRem.cpp PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and 2010-12-07 08:25:19 +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 Generalize the and-icmp-select instcombine further by allowing selects of the form 2010-12-11 10:49:22 +00:00
InstCombineShifts.cpp Really check that the bits that will become zero are actually already zero 2010-12-09 02:52:17 +00:00
InstCombineSimplifyDemanded.cpp PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and 2010-12-07 08:25:19 +00:00
InstCombineVectorOps.cpp PR5207: Rename overloaded APInt methods set(), clear(), flip() to 2010-12-01 08:53:58 +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 Transform (extractvalue (load P), ...) to (load (gep P, 0, ...)) if the load has no other uses, shrinking the load. 2010-11-29 21:56:20 +00:00
Makefile