llvm-project/llvm/lib
Hal Finkel 7153251ab5 LocalStackSlotAllocation improvements
First, taking advantage of the fact that the virtual base registers are allocated in order of the local frame offsets, remove the quadratic register-searching behavior. Because of the ordering, we only need to check the last virtual base register created.

Second, store the frame index in the FrameRef structure, and get the frame index and the local offset from this structure at the top of the loop iteration. This allows us to de-nest the loops in insertFrameReferenceRegisters (and I think makes the code cleaner). I also moved the needsFrameBaseReg check into the first loop over instructions so that we don't bother pushing FrameRefs for instructions that don't want a virtual base register anyway.

Lastly, and this is the only functionality change, avoid the creation of single-use virtual base registers. These are currently not useful because, in general, they end up replacing what would be one r+r instruction with an add and a r+i instruction. Committing this removes the XFAIL in CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll

Jim has okayed this off-list.

llvm-svn: 180799
2013-04-30 20:04:37 +00:00
..
Analysis Struct-path aware TBAA: change the format of TBAAStructType node. 2013-04-27 00:26:11 +00:00
Archive Fix auto_ptr is deprecated warnings 2013-02-26 21:20:35 +00:00
AsmParser Fix for PR 14965: Better error message for GEP with partially defined contents 2013-04-22 17:03:42 +00:00
Bitcode Move C++ code out of the C headers and into either C++ headers 2013-04-22 22:47:22 +00:00
CodeGen LocalStackSlotAllocation improvements 2013-04-30 20:04:37 +00:00
DebugInfo Clarify getRelocationAddress x getRelocationOffset a bit. 2013-04-25 12:28:45 +00:00
ExecutionEngine Fix Addend computation for non external relocations on Macho. 2013-04-30 15:40:54 +00:00
IR Change getSlotIndex to return unsigned. 2013-04-30 16:53:38 +00:00
IRReader Measure time that IR parsing took as part of the -time-passes measurement. 2013-04-03 15:33:45 +00:00
Linker Move C++ code out of the C headers and into either C++ headers 2013-04-22 22:47:22 +00:00
MC Fix section relocation for SECTIONREL32 with immediate offset. 2013-04-25 19:27:05 +00:00
Object Fix Addend computation for non external relocations on Macho. 2013-04-30 15:40:54 +00:00
Option Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
Support Inline variable into the #ifdef block where it's used. 2013-04-28 07:47:04 +00:00
TableGen Allow TableGen DAG arguments to be just a name. 2013-03-24 19:36:51 +00:00
Target Text files should not be marked executable. 2013-04-30 19:06:15 +00:00
Transforms Spelling. Thanks, Eric. 2013-04-30 17:33:32 +00:00
CMakeLists.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LLVMBuild.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
Makefile Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00