llvm-6502/lib
Hal Finkel 82b3821208 Eliminate redundant CR moves on PPC32.
The 32-bit ABI requires CR bit 6 to be set if the call has fp arguments and
unset if it doesn't. The solution up to now was to insert a MachineNode to
set/unset the CR bit, which produces a CR vreg. This vreg was then copied
into CR bit 6. When the register allocator saw a bunch of these in the same
function, it allocated the set/unset CR bit in some random CR register (1
extra instruction) and then emitted CR moves before every vararg function
call, rather than just setting and unsetting CR bit 6 directly before every
vararg function call. This patch instead inserts a PPCcrset/PPCcrunset
instruction which are then matched by a dedicated instruction pattern.

Patch by Tobias von Koch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162725 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-28 02:10:27 +00:00
..
Analysis Remove the the block_node_iterator of Region, replace it by the block_iterator. 2012-08-27 13:49:24 +00:00
Archive Remove references to compression in llvm-ar. It has been a long time since we 2012-08-10 01:57:52 +00:00
AsmParser Change the linker_private_weak_def_auto' linkage to linkonce_odr_auto_hide' to 2012-08-17 18:33:14 +00:00
Bitcode Change the linker_private_weak_def_auto' linkage to linkonce_odr_auto_hide' to 2012-08-17 18:33:14 +00:00
CodeGen Fix integer undefined behavior due to signed left shift overflow in LLVM. 2012-08-24 23:29:28 +00:00
DebugInfo Fix compile error when building with C++11 - clang thinks that PRIx64 is a user-defined suffix or something 2012-08-27 22:53:35 +00:00
ExecutionEngine Fix comment for function RuntimeDyldImpl.resolveRelocation() 2012-08-27 15:34:01 +00:00
Linker Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
MC Fix comment. 2012-08-27 16:04:24 +00:00
Object Reverting r 160419. 2012-07-19 21:43:55 +00:00
Support Fix integer undefined behavior due to signed left shift overflow in LLVM. 2012-08-24 23:29:28 +00:00
TableGen Tristate mayLoad, mayStore, and hasSideEffects. 2012-08-23 19:34:46 +00:00
Target Eliminate redundant CR moves on PPC32. 2012-08-28 02:10:27 +00:00
Transforms Don't use for loops for code that is only intended to execute once. No 2012-08-27 18:31:36 +00:00
VMCore Make atomic load and store of pointers work. Tighten verification of atomic operations 2012-08-17 23:24:29 +00:00
CMakeLists.txt
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile