#
bf4550e3 |
| 18-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pass a Banner argument to the machine code verifier both from createMachineVerifierPass and MachineFunction::verify.
The banner is printed before the machine code dump, just like the printer pass.
Pass a Banner argument to the machine code verifier both from createMachineVerifierPass and MachineFunction::verify.
The banner is printed before the machine code dump, just like the printer pass.
llvm-svn: 122113
show more ...
|
#
a043b628 |
| 17-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow missing kill flags on an untied operand of a two-address instruction when the operand uses the same register as a tied operand:
%r1 = add %r1, %r1
If add were a three-address instruction, k
Allow missing kill flags on an untied operand of a two-address instruction when the operand uses the same register as a tied operand:
%r1 = add %r1, %r1
If add were a three-address instruction, kill flags would be required on at least one of the uses. Since it is a two-address instruction, the tied use operand must not have a kill flag.
This change makes the kill flag on the untied use operand optional.
llvm-svn: 122082
show more ...
|
#
bcc230a7 |
| 17-Nov-2010 |
Eric Christopher <echristo@apple.com> |
Only avoid the check if we're the last operand before the variable operands in a variadic instruction.
llvm-svn: 119446
|
#
08c08314 |
| 16-Nov-2010 |
Eric Christopher <echristo@apple.com> |
Make the verifier a little quieter on instructions that it's probably (and likely) wrong about anyhow.
llvm-svn: 119320
|
#
2551f13c |
| 01-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more precise about verifying missing kill flags.
It is legal for an instruction to have two operands using the same register, only one a kill. This is interpreted as a kill.
llvm-svn: 117981
|
#
d7a82400 |
| 01-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add kill flag verification.
At least X86FloatingPoint requires correct kill flags after register allocation, and targets using register scavenging benefit. Conservative kill flags are not enough.
l
Add kill flag verification.
At least X86FloatingPoint requires correct kill flags after register allocation, and targets using register scavenging benefit. Conservative kill flags are not enough.
llvm-svn: 117960
show more ...
|
#
31fffb62 |
| 01-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add basic LiveStacks verification.
When an instruction refers to a spill slot with a LiveStacks entry, check that the spill slot is live at the instruction.
llvm-svn: 117944
|
#
db84d8f4 |
| 30-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable more of physical register live intervals verification.
llvm-svn: 117762
|
#
b9875547 |
| 29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out the connected components in the verifier after complaining about their multiplicity.
llvm-svn: 117630
|
#
dc5e7065 |
| 28-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
One day, physical register live ranges will be sensible.
llvm-svn: 117602
|
#
0e7a011a |
| 27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Physical registers trivially have multiple connected components all the time. Only virtuals should be requires to be connected.
llvm-svn: 117422
|
#
260fa289 |
| 26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that live intervals are connected. If there are multiple connected components, each should get its own virtual register.
llvm-svn: 117407
|
#
b7050233 |
| 26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach MachineBasicBlock::print() to annotate instructions and blocks with SlotIndexes when available.
llvm-svn: 117392
|
#
db594373 |
| 26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remmeber to print full live interval on verification error.
llvm-svn: 117391
|
#
9eabfa3a |
| 26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't verify physical registers going into landing pads. Magic is happening that we don't understand.
llvm-svn: 117370
|
#
8a09620d |
| 23-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify LiveIntervals against the CFG, ensuring that live-in values are live-out of all predecessors.
llvm-svn: 117191
|
#
0fb303d3 |
| 22-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add more verification of LiveIntervals.
llvm-svn: 117170
|
#
7c9d584e |
| 21-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Permit landing pad successor blocks when verifying basic blocks that end in an unconditional branch.
llvm-svn: 117041
|
#
6c18d1aa |
| 19-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies.
Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments.
I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly.
llvm-svn: 116820
show more ...
|
#
df7a4f25 |
| 07-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Now with fewer extraneous semicolons!
llvm-svn: 115996
|
#
1a065e4e |
| 06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Skip unused registers when verifying LiveIntervals.
llvm-svn: 115874
|
Revision tags: llvmorg-2.8.0 |
|
#
4088ceaf |
| 02-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop using LiveRange in MachineVerifier.
llvm-svn: 115408
|
Revision tags: llvmorg-2.8.0-rc3, llvmorg-2.8.0-rc2, llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0 |
|
#
d31d82d7 |
| 23-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Now that PassInfo and Pass::ID have been separated, move the rest of the passes over to the new registration API.
llvm-svn: 111815
|
#
68caaaf2 |
| 19-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Correct header.
llvm-svn: 111540
|
#
a7aed186 |
| 06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Reapply r110396, with fixes to appease the Linux buildbot gods.
llvm-svn: 110460
|