Revision tags: llvmorg-2.6.0 |
|
#
db9493ce |
| 07-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add a few simple MachineVerifier checks for MachineMemOperands.
llvm-svn: 83474
|
#
63c733fa |
| 04-Oct-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Whitespace and formatting.
llvm-svn: 83285
|
#
75b9c274 |
| 23-Sep-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix verification of explicit operands.
The machine code verifier did not check for explicit operands correctly. It used MachineInstr::getNumExplicitOperands, but that method may cheat and use the de
Fix verification of explicit operands.
The machine code verifier did not check for explicit operands correctly. It used MachineInstr::getNumExplicitOperands, but that method may cheat and use the declared count in the TargetInstrDesc.
Now we check the explicit operands one at a time in visitMachineOperand.
llvm-svn: 82652
show more ...
|
#
f6eb7d83 |
| 21-Sep-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that phi instructions refer to MBBs in the CFG.
The machine code verifier no longer tolerates phi instructions with noop operands. All MBBs on a phi instruction must be in the CFG.
llvm-svn:
Verify that phi instructions refer to MBBs in the CFG.
The machine code verifier no longer tolerates phi instructions with noop operands. All MBBs on a phi instruction must be in the CFG.
llvm-svn: 82448
show more ...
|
#
ed10d7c4 |
| 27-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Adjust the MachineBasicBlock verifier rules to be more tolerant of blocks that end with "unreachable".
llvm-svn: 80270
|
#
352a4958 |
| 27-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Add some checks for MachineCFG consistency. Use AnalyzeBranch and do extra checking when it succeeds, as those are cases where CodeGen will be doing particularly interesting CFG modifications.
llvm-
Add some checks for MachineCFG consistency. Use AnalyzeBranch and do extra checking when it succeeds, as those are cases where CodeGen will be doing particularly interesting CFG modifications.
llvm-svn: 80196
show more ...
|
#
a6f074fb |
| 23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove various std::ostream version of printing methods from MachineInstr and MachineOperand. This required eliminating a bunch of stuff that was using DOUT, I hope that bill doesn't mind me stealin
remove various std::ostream version of printing methods from MachineInstr and MachineOperand. This required eliminating a bunch of stuff that was using DOUT, I hope that bill doesn't mind me stealing his fun. ;-)
llvm-svn: 79813
show more ...
|
#
565449d7 |
| 23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove std::ostream versions of printing stuff for MBB and MF, upgrading a few things to use raw_ostream
llvm-svn: 79811
|
#
9e6f1f16 |
| 23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change raw_fd_ostream to take flags as an optional bitmask instead of as two bools. Use this to add a F_Append flag which has the obvious behavior.
Other unrelated changes conflated into this patc
Change raw_fd_ostream to take flags as an optional bitmask instead of as two bools. Use this to add a F_Append flag which has the obvious behavior.
Other unrelated changes conflated into this patch:
1. REmove EH stuff from llvm-dis and llvm-as, the try blocks are dead. 2. Simplify the filename inference code in llvm-as/llvm-dis, because raw_fd_ostream does the right thing with '-'. 3. Switch machine verifier to use raw_ostream instead of ostream (Which is the thing that needed append in the first place).
llvm-svn: 79807
show more ...
|
#
75f40458 |
| 23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove some dead print method variants.
llvm-svn: 79801
|
#
0e73fdff |
| 13-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use pristine register info in machine code verifier.
So far these registers are simply tracked as if they were live-in.
llvm-svn: 78912
|
#
dcf009ca |
| 08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean out per-function data after the machine code verifier is done with it.
Also don't dereference old pointers after they have been deleted causing random crashes when enabling the machine code ve
Clean out per-function data after the machine code verifier is done with it.
Also don't dereference old pointers after they have been deleted causing random crashes when enabling the machine code verifier.
Ahem...
I have not included a test case for the crash. It hapened when enabling the verifier on CodeGen/X86/2009-08-06-branchfolder-crash.ll.
The crash depends on an MBB being allocated at the same address as a previously deleted MBB. I don't think that can be reproduced reliably.
llvm-svn: 78472
show more ...
|
#
2d59cfff |
| 08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update the machine code verifier to keep up with the scavenger.
* Cleaner handling of <undef>. * <def> takes precedence over <def,dead>. * Implement the OK-to-redefine-a-register-that-was- live-in
Update the machine code verifier to keep up with the scavenger.
* Cleaner handling of <undef>. * <def> takes precedence over <def,dead>. * Implement the OK-to-redefine-a-register-that-was- live-in-but-has-not-been-used-before rule.
llvm-svn: 78467
show more ...
|
#
3c2a1dea |
| 04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enforce stricter rules in machine code verifier.
Implicit operands no longer get a free pass: Imp-use requires a live register and imp-def requires a dead register.
There is also no special rule al
Enforce stricter rules in machine code verifier.
Implicit operands no longer get a free pass: Imp-use requires a live register and imp-def requires a dead register.
There is also no special rule allowing redefinition of a sub-register when the super-register is live. The super register must have imp-kill+imp-def operands instead.
llvm-svn: 78090
show more ...
|
#
f70d5041 |
| 02-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle <undef> flag in machine code verifier.
Use of an <undef> register is treated like an <imp-use>. It is not an error to use a dead <undef> register.
llvm-svn: 77890
|
#
5ea74d55 |
| 31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage shouldn't do AU.setPreservesCFG(), because even though CodeGen passes don't modify the LLVM IR CFG, they may modify the MachineFuncti
Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage shouldn't do AU.setPreservesCFG(), because even though CodeGen passes don't modify the LLVM IR CFG, they may modify the MachineFunction CFG, and passes like MachineLoop are registered with isCFGOnly set to true.
llvm-svn: 77691
show more ...
|
#
54347565 |
| 31-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many failures when building assorted projects with clang.
--- Reverse-merging r77654 into '.': U include/llvm/CodeGen/Pass
Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many failures when building assorted projects with clang.
--- Reverse-merging r77654 into '.': U include/llvm/CodeGen/Passes.h U include/llvm/CodeGen/MachineFunctionPass.h U include/llvm/CodeGen/MachineFunction.h U include/llvm/CodeGen/LazyLiveness.h U include/llvm/CodeGen/SelectionDAGISel.h D include/llvm/CodeGen/MachineFunctionAnalysis.h U include/llvm/Function.h U lib/Target/CellSPU/SPUISelDAGToDAG.cpp U lib/Target/PowerPC/PPCISelDAGToDAG.cpp U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/MachineVerifier.cpp U lib/CodeGen/MachineFunction.cpp U lib/CodeGen/PrologEpilogInserter.cpp U lib/CodeGen/MachineLoopInfo.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp D lib/CodeGen/MachineFunctionAnalysis.cpp D lib/CodeGen/MachineFunctionPass.cpp U lib/CodeGen/LiveVariables.cpp
llvm-svn: 77661
show more ...
|
#
bcb44baa |
| 31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Manage MachineFunctions with an analysis Pass instead of the Annotable mechanism. To support this, make MachineFunctionPass a little more complete.
llvm-svn: 77654
|
#
f3239532 |
| 29-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
1. Introduce a new TargetOperandInfo::getRegClass() helper method and convert code to using it, instead of having lots of things poke the isLookupPtrRegClass() method directly.
2. Make Pointer
1. Introduce a new TargetOperandInfo::getRegClass() helper method and convert code to using it, instead of having lots of things poke the isLookupPtrRegClass() method directly.
2. Make PointerLikeRegClass contain a 'kind' int, and store it in the existing regclass field of TargetOperandInfo when the isLookupPtrRegClass() predicate is set. Make getRegClass pass this into TargetRegisterInfo::getPointerRegClass(), allowing targets to have multiple ptr_rc things.
llvm-svn: 77504
show more ...
|
#
0dd5e1ed |
| 25-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
More migration to raw_ostream, the water has dried up around the iostream hole. - Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided call
More migration to raw_ostream, the water has dried up around the iostream hole. - Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided calling printing functions when the statement was disabled. In addition to being unnecessary magic, it had the downside of leaving code in -Asserts builds, and of hiding potentially unnecessary computations.
llvm-svn: 77019
show more ...
|
#
a385d01c |
| 15-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that there is no kill flag on tied operands on two-address instructions. This extra check is not trigged when runnning "make check" on top-of-tree.
Change error message to better match llvm_u
Verify that there is no kill flag on tied operands on two-address instructions. This extra check is not trigged when runnning "make check" on top-of-tree.
Change error message to better match llvm_unreachable() grammar.
Don't call llvm_unreachable() when writing error messages to a file, but keep going.
llvm-svn: 75860
show more ...
|
#
ccb29cd2 |
| 11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
Convert more assert(0)+abort() -> LLVM_UNREACHABLE, and abort()/exit() -> llvm_report_error().
llvm-svn: 75363
|
#
1c3da3a9 |
| 17-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename MachineVerifier pass to avoid command line collision.
llvm-svn: 71987
|
#
e61c7a39 |
| 16-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that explicit definitions in the TargetInstrDesc are matched by explicit register define operands.
llvm-svn: 71933
|
#
c482d145 |
| 16-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow redefinition of reserved registers.
llvm-svn: 71932
|