llvm-6502/lib
Benjamin Kramer 0baa94a13b InstCombine: Turn icmp + sext into bitwise/integer ops when the input has only one unknown bit.
int test1(unsigned x) { return (x&8) ? 0 : -1; }
int test3(unsigned x) { return (x&8) ? -1 : 0; }

before (x86_64):
_test1:
	andl	$8, %edi
	cmpl	$1, %edi
	sbbl	%eax, %eax
	ret
_test3:
	andl	$8, %edi
	cmpl	$1, %edi
	sbbl	%eax, %eax
	notl	%eax
	ret

after:
_test1:
	shrl	$3, %edi
	andl	$1, %edi
	leal	-1(%rdi), %eax
	ret
_test3:
	shll	$28, %edi
	movl	%edi, %eax
	sarl	$31, %eax
	ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128732 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-01 20:09:10 +00:00
..
Analysis Remove PHINode::reserveOperandSpace(). Instead, add a parameter to 2011-03-30 11:28:46 +00:00
Archive Revert PathV2 changes, as sys::fs::unique_file is not finished yet. 2011-03-01 19:50:55 +00:00
AsmParser Remove PHINode::reserveOperandSpace(). Instead, add a parameter to 2011-03-30 11:28:46 +00:00
Bitcode Remove PHINode::reserveOperandSpace(). Instead, add a parameter to 2011-03-30 11:28:46 +00:00
CodeGen Add comments. 2011-04-01 19:57:01 +00:00
CompilerDriver Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
ExecutionEngine Instantiate a JITMemoryManager for MCJIT Dyld 2011-03-29 21:03:05 +00:00
Linker Set the unnamed_addr only when we're creating a new GV in the dest module. 2011-03-29 23:31:06 +00:00
MC Added support symbolic floating point constants in the MC assembler for Infinity 2011-03-29 21:11:52 +00:00
Object Object: Fix type punned pointer issues by making DataRefImpl a union and using intptr_t. 2011-01-21 02:27:02 +00:00
Support Reset StringMap's NumTombstones on clears and rehashes. 2011-03-30 18:32:51 +00:00
Target Modifies MipsAsmPrinter::isBlockOnlyReachableByFallthrough so that it handles delay slots correctly. 2011-04-01 18:57:38 +00:00
Transforms InstCombine: Turn icmp + sext into bitwise/integer ops when the input has only one unknown bit. 2011-04-01 20:09:10 +00:00
VMCore Various Instructions' resizeOperands() methods are only used to grow the 2011-04-01 08:00:58 +00:00
CMakeLists.txt Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
Makefile Add LLVMObject Library. 2010-11-15 03:21:41 +00:00