#
5670f850 |
| 30-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Don't check liveness of unallocatable registers."
The ARM target depends on CPSR liveness being tracked after register allocation.
llvm-svn: 136548
|
#
95cc5440 |
| 29-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't check liveness of unallocatable registers.
This includes registers like EFLAGS and ST0-ST7. We don't check for liveness issues in the verifier and scavenger because registers will never be all
Don't check liveness of unallocatable registers.
This includes registers like EFLAGS and ST0-ST7. We don't check for liveness issues in the verifier and scavenger because registers will never be allocated from these classes.
While in SSA form, we do care about the liveness of unallocatable unreserved registers. Liveness of EFLAGS and ST0 neds to be correct for MachineDCE and MachineSinking.
llvm-svn: 136541
show more ...
|
#
9dd18415 |
| 29-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Check for multiple defs in the machine code verifier.
llvm-svn: 136535
|
#
6cc775f9 |
| 28-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and sink them into MC layer. - Added MCInstrInfo, which captures the tablegen generated static data. Chang TargetInstrInfo
- Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and sink them into MC layer. - Added MCInstrInfo, which captures the tablegen generated static data. Chang TargetInstrInfo so it's based off MCInstrInfo.
llvm-svn: 134021
show more ...
|
#
8d71a757 |
| 27-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
More refactoring. Move getRegClass from TargetOperandInfo to TargetInstrInfo.
llvm-svn: 133944
|
#
aff10602 |
| 02-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use TRI::has{Sub,Super}ClassEq() where possible.
No functional change.
llvm-svn: 132455
|
#
fe5795a1 |
| 19-May-2011 |
Cameron Zwarich <zwarich@apple.com> |
Revert r128961 because it didn't include a test and causes the verifier to fail on CodeGen/X86/2007-05-07-InvokeSRet.ll. There is probably a bug here that was fixed by r128961, but since there is no
Revert r128961 because it didn't include a test and causes the verifier to fail on CodeGen/X86/2007-05-07-InvokeSRet.ll. There is probably a bug here that was fixed by r128961, but since there is no test or reference to a source file I have to revert it.
llvm-svn: 131618
show more ...
|
#
2a40131f |
| 04-May-2011 |
Bill Wendling <isanbard@gmail.com> |
SjLj EH could produce a machine basic block that legitimately has more than one landing pad as its successor.
SjLj exception handling jumps to the correct landing pad via a switch statement that's g
SjLj EH could produce a machine basic block that legitimately has more than one landing pad as its successor.
SjLj exception handling jumps to the correct landing pad via a switch statement that's generated right before code-gen. Loosen the constraint in the machine instruction verifier to allow for this. Note, this isn't the most rigorous check since we cannot determine where that switch statement came from. But it's marginally better than turning this check off when SjLj exceptions are used. <rdar://problem/9187612>
llvm-svn: 130881
show more ...
|
Revision tags: llvmorg-2.9.0 |
|
#
30b5473d |
| 05-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Permit blocks to branch directly to a landing pad.
Treat the landing pad as a normal successor when that happens.
llvm-svn: 128961
|
#
561cea04 |
| 31-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow kill flags on two-address instructions. They are harmless.
llvm-svn: 128643
|
#
9a788354 |
| 31-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Mark all uses as <undef> when joining a copy.
This way, shrinkToUses() will ignore the instruction that is about to be deleted, and we avoid leaving invalid live ranges that SplitKit doesn't like.
Mark all uses as <undef> when joining a copy.
This way, shrinkToUses() will ignore the instruction that is about to be deleted, and we avoid leaving invalid live ranges that SplitKit doesn't like.
Fix a misunderstanding in MachineVerifier about <def,undef> operands. The <undef> flag is valid on def operands where it has the same meaning as <undef> on a use operand. It only applies to sub-register defines which also read the full register.
llvm-svn: 128642
show more ...
|
Revision tags: llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1 |
|
#
66d0f399 |
| 04-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify kill flags conservatively.
Allow a live range to end with a kill flag, but don't allow a kill flag that doesn't end the live range.
This makes the machine code verifier more useful during re
Verify kill flags conservatively.
Allow a live range to end with a kill flag, but don't allow a kill flag that doesn't end the live range.
This makes the machine code verifier more useful during register allocation when kill flag computation is deferred.
llvm-svn: 124838
show more ...
|
#
58b6f4d8 |
| 12-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify slot index ordering.
The slot indexes must be monotonically increasing through the function.
llvm-svn: 123324
|
#
b5b4a5d0 |
| 12-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that machine instruction parent pointers are consistent.
llvm-svn: 123322
|
#
1331a15b |
| 09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace TargetRegisterInfo::printReg with a PrintReg class that also works without a TRI instance.
Print virtual registers numbered from 0 instead of the arbitrary FirstVirtualRegister. The first vi
Replace TargetRegisterInfo::printReg with a PrintReg class that also works without a TRI instance.
Print virtual registers numbered from 0 instead of the arbitrary FirstVirtualRegister. The first virtual register is printed as %vreg0. TRI::NoRegister is printed as %noreg.
llvm-svn: 123107
show more ...
|
#
6ff70ad3 |
| 08-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a MachineVerifier loop that probably didn't mean to skip the last two virtual registers.
llvm-svn: 123100
|
#
6fe33fdd |
| 28-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Simplify some code in MachineVerifier that was doing the correct thing, but not in the most obvious way.
llvm-svn: 122610
|
#
b95bfe16 |
| 27-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Add knowledge of phi-def and phi-kill valnos to MachineVerifier's predecessor valno verification. The "Different value live out of predecessor" check is incorrect in the case of phi-def valnos, so ju
Add knowledge of phi-def and phi-kill valnos to MachineVerifier's predecessor valno verification. The "Different value live out of predecessor" check is incorrect in the case of phi-def valnos, so just skip that check for phi-def valnos and instead check that all of the valnos for predecessors have phi-kill. Fixes PR8863.
llvm-svn: 122581
show more ...
|
#
4ffda706 |
| 20-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
MachineVerifier should count landing pad successors as basic blocks rather than out-edges. Fixes PR8824.
llvm-svn: 122228
|
#
660bce67 |
| 20-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Teach MachineVerifier that early clobber defs begin at USE slots and other defs begin at DEF slots. Fixes the second half of PR8813.
llvm-svn: 122225
|
#
bc2461c5 |
| 20-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Add a missing check from r122218.
llvm-svn: 122224
|
#
fc0c6b1e |
| 20-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Don't assume that an instruction ending a register's live range always reads the register; it may be a dead def instead. Fixes PR8820.
llvm-svn: 122218
|
#
1b67d6c5 |
| 20-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Ignore debug values when performing MachineVerifier liveness checks. Fixes PR8822.
llvm-svn: 122207
|
#
0b111b1a |
| 19-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Early clobber operands are allowed to be defined at use indices. This fixes one half of PR8813.
llvm-svn: 122205
|
#
7e24173a |
| 19-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Fix PR8811 by teaching MachineVerifier about optional defs.
llvm-svn: 122199
|