#
8147d7a6 |
| 06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add more verification of LiveIntervals.
llvm-svn: 110454
|
#
0e775240 |
| 06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't try to verify LiveIntervals for physical registers.
When a physical register is in use, some alias of that register has a live interval with a relevant live range. That is the sad state of int
Don't try to verify LiveIntervals for physical registers.
When a physical register is in use, some alias of that register has a live interval with a relevant live range. That is the sad state of intervals after physreg coalescing of subregs, and it is good enough for correct register allocation.
llvm-svn: 110452
show more ...
|
#
bda59bd2 |
| 06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Revert r110396 to fix buildbots.
llvm-svn: 110410
|
#
b4ef4a96 |
| 05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't verify LiveVariables if LiveIntervals is available.
LiveVariables becomes horribly wrong while the coalescer is running, but the analysis is not zapped until after the coalescer pass has run.
Don't verify LiveVariables if LiveIntervals is available.
LiveVariables becomes horribly wrong while the coalescer is running, but the analysis is not zapped until after the coalescer pass has run. This causes tons of false reports when calling verify form the coalescer.
llvm-svn: 110402
show more ...
|
#
755aceb5 |
| 05-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
#
e7709ebb |
| 05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add basic verification of LiveIntervals.
We verify that the LiveInterval is live at uses and defs, and that all instructions have a SlotIndex.
Stuff we don't check yet:
- Is the LiveInterval minim
Add basic verification of LiveIntervals.
We verify that the LiveInterval is live at uses and defs, and that all instructions have a SlotIndex.
Stuff we don't check yet:
- Is the LiveInterval minimal? - Do all defs correspond to instructions or phis? - Do all defs dominate all their live ranges? - Are all live ranges continually reachable from their def?
llvm-svn: 110386
show more ...
|
#
4583355a |
| 05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove double-def checking from MachineVerifier, so a register does not have to be killed before being redefined.
These checks are usually disabled, and usually fail when enabled. We de facto allow
Remove double-def checking from MachineVerifier, so a register does not have to be killed before being redefined.
These checks are usually disabled, and usually fail when enabled. We de facto allow live registers to be redefined without a kill, the corresponding assertions in RegScavenger were removed long ago.
llvm-svn: 110362
show more ...
|
#
2d51c7c5 |
| 18-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow ARM if-converter to be run after post allocation scheduling. - This fixed a number of bugs in if-converter, tail merging, and post-allocation scheduler. If-converter now runs branch folding /
Allow ARM if-converter to be run after post allocation scheduling. - This fixed a number of bugs in if-converter, tail merging, and post-allocation scheduler. If-converter now runs branch folding / tail merging first to maximize if-conversion opportunities. - Also changed the t2IT instruction slightly. It now defines the ITSTATE register which is read by instructions in the IT block. - Added Thumb2 specific hazard recognizer to ensure the scheduler doesn't change the instruction ordering in the IT block (since IT mask has been finalized). It also ensures no other instructions can be scheduled between instructions in the IT block.
This is not yet enabled.
llvm-svn: 106344
show more ...
|
#
4843178d |
| 18-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach the machine code verifier to use getSubRegisterRegClass().
The old approach was wrong. It had an off-by-one error.
llvm-svn: 104034
|
#
670492c8 |
| 14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When verifying two-address instructions, check the following:
- Kill is implicit when use and def registers are identical. - Only virtual registers can differ.
Add a -verify-fast-regalloc to run th
When verifying two-address instructions, check the following:
- Kill is implicit when use and def registers are identical. - Only virtual registers can differ.
Add a -verify-fast-regalloc to run the verifier before the fast allocator.
llvm-svn: 103797
show more ...
|
Revision tags: llvmorg-2.7.0 |
|
#
b29cda9b |
| 15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bunch of namespace polution.
llvm-svn: 101376
|
#
9d2d053e |
| 13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate MachineBasicBlock::const_livein_iterator and make MachineBasicBlock::livein_iterator a const_iterator, because clients shouldn't ever be using the iterator interface to mutate the livein se
Eliminate MachineBasicBlock::const_livein_iterator and make MachineBasicBlock::livein_iterator a const_iterator, because clients shouldn't ever be using the iterator interface to mutate the livein set.
llvm-svn: 101147
show more ...
|
#
2104b8d3 |
| 07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
rename llvm::llvm_report_error -> llvm::report_fatal_error
llvm-svn: 100709
|
#
b06015aa |
| 09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start u
move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase.
llvm-svn: 95687
show more ...
|
#
4cb7702c |
| 05-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove livein checks from machine code verifier.
A phi operand that is implicitly defined in a predecessor becomes an undefined register after phi elimination. This causes a lot of false positives w
Remove livein checks from machine code verifier.
A phi operand that is implicitly defined in a predecessor becomes an undefined register after phi elimination. This causes a lot of false positives when the verifier is checking if live-in registers are live-out from all predecessors.
Removing the verifier checks seems like a better solution than insisting on IMPLICIT_DEF instructions in predecessor blocks.
llvm-svn: 92769
show more ...
|
#
200f82c8 |
| 22-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove minimal CFG sanity checks from verifier.
These checks would often trigger on unreachable statements inserted by bugpoint, leading it astray.
It would be nice if we could distinguish unreacha
Remove minimal CFG sanity checks from verifier.
These checks would often trigger on unreachable statements inserted by bugpoint, leading it astray.
It would be nice if we could distinguish unreachable blocks from errors.
llvm-svn: 91923
show more ...
|
#
3db49523 |
| 22-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow explicit %reg0 operands beyond what the .td file describes.
ARM uses these to indicate predicates.
llvm-svn: 91922
|
#
047a767d |
| 05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Remove the target hook TargetInstrInfo::BlockHasNoFallThrough in favor of MachineBasicBlock::canFallThrough(), which is target-independent and more thorough.
llvm-svn: 90634
|
#
2bbeaa87 |
| 20-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineBasicBlock::getName, and use it in place of getBasicBlock()->getName.
Fix debug code that assumes getBasicBlock never returns NULL.
llvm-svn: 89428
|
#
9cbffd21 |
| 18-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow the machine verifier to be run outside the PassManager.
Verify LiveVariables information when present.
llvm-svn: 89241
|
#
27440e71 |
| 13-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineFunction::verify() to call the machine code verifier directly.
llvm-svn: 88706
|
#
1ecc8b2d |
| 13-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix polarity of a CFG check in machine verifier.
llvm-svn: 88704
|
#
34341e69 |
| 31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Make -print-machineinstrs more readable. - Be consistent when referring to MachineBasicBlocks: BB#0. - Be consistent when referring to virtual registers: %reg1024. - Be consistent when referring t
Make -print-machineinstrs more readable. - Be consistent when referring to MachineBasicBlocks: BB#0. - Be consistent when referring to virtual registers: %reg1024. - Be consistent when referring to unknown physical registers: %physreg10. - Be consistent when referring to known physical registers: %RAX - Be consistent when referring to register 0: %reg0 - Be consistent when printing alignments: align=16 - Print jump table contents. - Don't print host addresses, in general. - and various other cleanups.
llvm-svn: 85682
show more ...
|
#
974e12b2 |
| 25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove includes of Support/Compiler.h that are no longer needed after the VISIBILITY_HIDDEN removal.
llvm-svn: 85043
|
#
02d5f77d |
| 25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit.
llvm-svn: 85042
show more ...
|