llvm-6502/include/llvm
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
..
ADT Document the return value of SmallSet insert. 2013-04-04 04:54:21 +00:00
Analysis CostModel: Add parameter to instruction cost to further classify operand values 2013-04-04 23:26:21 +00:00
Assembly Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +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
Config Refine fenv.h handling: check if the desired macros exist, before using 2013-03-25 13:13:33 +00:00
DebugInfo Add support for the pubnames section to llvm-dwarfdump. 2013-02-12 16:20:28 +00:00
ExecutionEngine Add support for vector data types in the LLVM interpreter. 2013-04-01 15:53:30 +00:00
IR Add MDBuilder utilities for path-aware TBAA. 2013-04-02 19:50:49 +00:00
IRReader Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
MC Dead code. 2013-03-19 22:12:47 +00:00
Object Implement the "mips endian" for r_info. 2013-04-03 21:02:51 +00:00
Option Use LLVM_DELETED_FUNCTION rather than '// do not implement' comments. 2013-02-18 23:11:17 +00:00
Support Implements low-level object file format specific output for COFF and 2013-04-03 18:31:38 +00:00
TableGen Make sure TableGen exits with an error code after printing errors. 2013-03-20 20:43:11 +00:00
Target Clean up some confusing language, and use more realistic examples. 2013-04-05 01:25:41 +00:00
Transforms [ASan] emit instrumentation for initialization order checking by default 2013-03-14 12:38:58 +00:00
AutoUpgrade.h remove autoupgrade support for really old-style debug info intrinsics. 2011-11-27 06:18:33 +00:00
CMakeLists.txt Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
DebugInfo.h Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
DIBuilder.h Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
GVMaterializer.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
InitializePasses.h Remove the old CodePlacementOpt pass. 2013-03-29 17:14:24 +00:00
InstVisitor.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LinkAllIR.h Rename LinkAllVMCore.h to LinkAllIR.h since VMCore directory was renamed to IR. 2013-01-10 21:55:02 +00:00
LinkAllPasses.h Remove -print-dbginfo as it is unused & bitrotten. 2013-03-08 18:17:46 +00:00
Linker.h The Linker interface has some dead code after the cleanup in r172749 2013-03-19 15:26:24 +00:00
Pass.h moves doInitialization and doFinalization to the Pass class and removes some unreachable code in MachineModuleInfo 2012-12-03 21:56:57 +00:00
PassAnalysisSupport.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
PassManager.h One more step towards making doInitialization and doFinalization useful for 2012-11-29 17:47:05 +00:00
PassManagers.h Use a DenseMap instead of a std::map for AnalysisID -> Pass* maps. This reduces the pass-manager overhead from FPPassManager::runOnFunction() by about 10%. 2013-02-26 01:31:59 +00:00
PassRegistry.h
PassSupport.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00