llvm/lib
Hal Finkel afe2f43e4e Fix bug in PEI's virtual-register scavenging
This change fixes a bug that I introduced in r178058. After a register is
scavenged using one of the available spills slots the instruction defining the
virtual register needs to be moved to after the spill code. The scavenger has
already processed the defining instruction so that registers killed by that
instruction are available for definition in that same instruction. Unfortunately,
after this, the scavenger needs to iterate through the spill code and then
visit, again, the instruction that defines the now-scavenged register. In order
to avoid confusion, the register scavenger needs the ability to 'back up'
through the spill code so that it can again process the instructions in the
appropriate order. Prior to this fix, once the scavenger reached the
just-moved instruction, it would assert if it killed any registers because,
having already processed the instruction, it believed they were undefined.

Unfortunately, I don't yet have a small test case. Thanks to Pranav Bhandarkar
for diagnosing the problem and testing this fix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178845 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-05 05:01:13 +00:00
..
Analysis CostModel: Add parameter to instruction cost to further classify operand values 2013-04-04 23:26:21 +00:00
Archive Fix auto_ptr is deprecated warnings 2013-02-26 21:20:35 +00:00
AsmParser Unify clang/llvm attributes for asan/tsan/msan (LLVM part) 2013-02-26 06:58:09 +00:00
Bitcode Whitespace cleanup 2013-04-01 02:28:07 +00:00
CodeGen Fix bug in PEI's virtual-register scavenging 2013-04-05 05:01:13 +00:00
DebugInfo Fix missing std::. Not sure how this compiles for anyone else. 2013-03-21 00:57:21 +00:00
ExecutionEngine Add support for vector data types in the LLVM interpreter. 2013-04-01 15:53:30 +00:00
IR Measure time that IR parsing took as part of the -time-passes measurement. 2013-04-03 15:33:45 +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 Specutively revert r178130. 2013-03-27 17:54:41 +00:00
MC Fix the fde encoding used by mips to match gas. 2013-04-03 03:13:19 +00:00
Object Move an assert earlier in a file and check that the result of 2013-02-28 20:26:17 +00:00
Option Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
Support Ensuring that both bits are set, and not just a combination of one or the other. 2013-04-03 18:00:22 +00:00
TableGen Allow TableGen DAG arguments to be just a name. 2013-03-24 19:36:51 +00:00
Target ARM scheduler model: Add scheduler info to more instructions and resource 2013-04-05 05:01:06 +00:00
Transforms LoopVectorizer: Pass OperandValueKind information to the cost model 2013-04-04 23:26:27 +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