llvm/lib
Chris Lattner 8e76764de8 add one more bitfield optimization, allowing clang to generate
good code on PR4216:

_test_bitfield:                                             ## @test_bitfield
	orl	$32962, %edi
	movl	$4294941946, %eax
	andq	%rdi, %rax
	ret

instead of:

_test_bitfield:
        movl    $4294941696, %ecx
        movl    %edi, %eax
        orl     $194, %edi
        orl     $32768, %eax
        andq    $250, %rdi
        andq    %rax, %rcx
        movq    %rdi, %rax
        orq     %rcx, %rax
        ret

Evan is looking into the remaining andq+imm -> andl optimization.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93147 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-11 06:55:24 +00:00
..
Analysis "In order to ease automatic bindings generation, it would be helpful if boolean values were distinguishable from integers. The attached patch introduces "typedef int LLVMBool;", and uses LLVMBool instead of int throughout the C API, wherever a boolean value is called for." 2010-01-09 22:27:07 +00:00
Archive Prune #includes from llvm/Linker.h and llvm/System/Path.h, 2009-08-23 22:45:37 +00:00
AsmParser Compute isFunctionLocal in MDNode ctor or via argument in new function getWhenValsUnresolved(). 2010-01-10 07:14:18 +00:00
Bitcode Compute isFunctionLocal in MDNode ctor or via argument in new function getWhenValsUnresolved(). 2010-01-10 07:14:18 +00:00
CodeGen Revert an earlier change to SIGN_EXTEND_INREG for vectors. The VTSDNode 2010-01-09 02:13:55 +00:00
CompilerDriver Make Path use StringRef instead of std::string where possible. 2009-12-17 21:02:39 +00:00
ExecutionEngine "In order to ease automatic bindings generation, it would be helpful if boolean values were distinguishable from integers. The attached patch introduces "typedef int LLVMBool;", and uses LLVMBool instead of int throughout the C API, wherever a boolean value is called for." 2010-01-09 22:27:07 +00:00
Linker Fixed linking of modules containing aliases to constant bitcasts. Existing behaviour first tried to replace the aliases with the global that they aliased (rather than the bitcast), causing a crash on an assert because the types didn't match. When this was fixed, it then did the same thing creating the new alias (creating an alias with a different type to its aliasee). 2010-01-09 16:27:31 +00:00
MC Change errs() to dbgs(). 2010-01-05 01:28:22 +00:00
Support Suppress use of uninitialized variable warning. 2010-01-09 08:30:33 +00:00
System Alternative fix to make sure that the extern declarations used by 2009-12-23 19:12:50 +00:00
Target "In order to ease automatic bindings generation, it would be helpful if boolean values were distinguishable from integers. The attached patch introduces "typedef int LLVMBool;", and uses LLVMBool instead of int throughout the C API, wherever a boolean value is called for." 2010-01-09 22:27:07 +00:00
Transforms add one more bitfield optimization, allowing clang to generate 2010-01-11 06:55:24 +00:00
VMCore fix a buggy assertion, CreateIntegerCast should allow 2010-01-10 20:21:42 +00:00
Makefile remove llvm-db: it is completely broken and if anyone wants to do a debugger, 2009-10-05 02:29:51 +00:00