History log of /llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp (Results 526 – 550 of 552)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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


1...<<212223