llvm/lib
Evan Cheng 8b944d39b3 Added optimization that narrow load / op / store and the 'op' is a bit twiddling instruction and its second operand is an immediate. If bits that are touched by 'op' can be done with a narrower instruction, reduce the width of the load and store as well. This happens a lot with bitfield manipulation code.
e.g.
orl     $65536, 8(%rax)
=>
orb     $1, 10(%rax)

Since narrowing is not always a win, e.g. i32 -> i16 is a loss on x86, dag combiner consults with the target before performing the optimization.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72507 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 00:35:15 +00:00
..
Analysis Add braces around an array initializer. 2009-05-27 02:07:15 +00:00
Archive Add the private linkage. 2009-01-15 20:18:42 +00:00
AsmParser Use v.data() instead of &v[0] when SmallVector v might be empty. 2009-05-21 09:52:38 +00:00
Bitcode Make MDNode use CallbackVH. Also change MDNode to store Value* instead of 2009-05-10 20:57:05 +00:00
CodeGen Added optimization that narrow load / op / store and the 'op' is a bit twiddling instruction and its second operand is an immediate. If bits that are touched by 'op' can be done with a narrower instruction, reduce the width of the load and store as well. This happens a lot with bitfield manipulation code. 2009-05-28 00:35:15 +00:00
CompilerDriver -write-graph now can be used with -o. 2009-03-27 12:57:14 +00:00
Debugger Oops...I committed too much. 2009-03-13 04:39:26 +00:00
ExecutionEngine stat64/open64/lseek64 for the interpreter 2009-05-23 16:23:59 +00:00
Linker Add a new "available_externally" linkage type. This is intended 2009-04-13 05:44:34 +00:00
Support Minor fix for CMake build system 2009-05-27 16:52:17 +00:00
System Work around a page size issue on Cygwin. 2009-05-23 17:57:59 +00:00
Target Added optimization that narrow load / op / store and the 'op' is a bit twiddling instruction and its second operand is an immediate. If bits that are touched by 'op' can be done with a narrower instruction, reduce the width of the load and store as well. This happens a lot with bitfield manipulation code. 2009-05-28 00:35:15 +00:00
Transforms Revert 72493 and replace it with a more conservative fix, for now: don't 2009-05-27 21:10:47 +00:00
VMCore Audit the type constructors. Previously it was possible to create [0 x void] 2009-05-25 21:28:11 +00:00
Makefile Reorganize llvmc code. 2009-03-02 09:01:14 +00:00