History log of /llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp (Results 326 – 350 of 552)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 72a58c3e 29-Mar-2016 Matthias Braun <matze@braunis.de>

MachineVerifier: On dead-def live segments, check that corresponding machine operand has a dead flag

llvm-svn: 264769


# 42666eee 29-Mar-2016 Derek Schuff <dschuff@google.com>

Add MachineVerifier check for AllVRegsAllocated MachineFunctionProperty

Summary:
Check that any function that has the property set is free of virtual
register operands.

Also, it is actually VirtReg

Add MachineVerifier check for AllVRegsAllocated MachineFunctionProperty

Summary:
Check that any function that has the property set is free of virtual
register operands.

Also, it is actually VirtRegMap (and not the register allocators) that
acutally remove the VReg operands (except for RegAllocFast).

Reviewers: qcolombet

Subscribers: MatzeB, llvm-commits, qcolombet

Differential Revision: http://reviews.llvm.org/D18535

llvm-svn: 264755

show more ...


Revision tags: llvmorg-3.8.0
# f9ab416d 27-Feb-2016 Duncan P. N. Exon Smith <dexonsmith@apple.com>

WIP: CodeGen: Use MachineInstr& in MachineInstrBundle.h, NFC

Update APIs in MachineInstrBundle.h to take and return MachineInstr&
instead of MachineInstr* when the instruction cannot be null. Besid

WIP: CodeGen: Use MachineInstr& in MachineInstrBundle.h, NFC

Update APIs in MachineInstrBundle.h to take and return MachineInstr&
instead of MachineInstr* when the instruction cannot be null. Besides
being a nice cleanup, this is tacking toward a fix for PR26753.

llvm-svn: 262141

show more ...


# 3ac9cc61 27-Feb-2016 Duncan P. N. Exon Smith <dexonsmith@apple.com>

CodeGen: Take MachineInstr& in SlotIndexes and LiveIntervals, NFC

Take MachineInstr by reference instead of by pointer in SlotIndexes and
the SlotIndex wrappers in LiveIntervals. The MachineInstrs

CodeGen: Take MachineInstr& in SlotIndexes and LiveIntervals, NFC

Take MachineInstr by reference instead of by pointer in SlotIndexes and
the SlotIndex wrappers in LiveIntervals. The MachineInstrs here are
never null, so this cleans up the API a bit. It also incidentally
removes a few implicit conversions from MachineInstrBundleIterator to
MachineInstr* (see PR26753).

At a couple of call sites it was convenient to convert to a range-based
for loop over MachineBasicBlock::instr_begin/instr_end, so I added
MachineBasicBlock::instrs.

llvm-svn: 262115

show more ...


Revision tags: llvmorg-3.8.0-rc3
# 6307eb55 23-Feb-2016 Duncan P. N. Exon Smith <dexonsmith@apple.com>

CodeGen: TII: Take MachineInstr& in predicate API, NFC

Change TargetInstrInfo API to take `MachineInstr&` instead of
`MachineInstr*` in the functions related to predicated instructions
(I'll try to

CodeGen: TII: Take MachineInstr& in predicate API, NFC

Change TargetInstrInfo API to take `MachineInstr&` instead of
`MachineInstr*` in the functions related to predicated instructions
(I'll try to come back later and get some of the rest). All of these
functions require non-null parameters already, so references are more
clear. As a bonus, this happens to factor away a host of implicit
iterator => pointer conversions.

No functionality change intended.

llvm-svn: 261605

show more ...


# e9bc579c 21-Feb-2016 Duncan P. N. Exon Smith <dexonsmith@apple.com>

ADT: Remove == and != comparisons between ilist iterators and pointers

I missed == and != when I removed implicit conversions between iterators
and pointers in r252380 since they were defined outsid

ADT: Remove == and != comparisons between ilist iterators and pointers

I missed == and != when I removed implicit conversions between iterators
and pointers in r252380 since they were defined outside ilist_iterator.

Since they depend on getNodePtrUnchecked(), they indirectly rely on UB.
This commit removes all uses of these operators. (I'll delete the
operators themselves in a separate commit so that it can be easily
reverted if necessary.)

There should be NFC here.

llvm-svn: 261498

show more ...


# b3aefc3a 15-Feb-2016 Matthias Braun <matze@braunis.de>

MachineVerifier: Add parameter to choose if MachineFunction::verify() aborts

The abort on error behaviour is unpractical for debugger and unittest
usage.

llvm-svn: 260904


# 1377fd67 02-Feb-2016 Matthias Braun <matze@braunis.de>

MachineVerifier: Check that defs/uses are live in subregisters as well.

llvm-svn: 259552


Revision tags: llvmorg-3.8.0-rc2
# 579c9cda 02-Feb-2016 Matthias Braun <matze@braunis.de>

MachineVerifier: Use report_context() instead of ad-hoc messages.

llvm-svn: 259457


Revision tags: llvmorg-3.8.0-rc1
# bf47f63b 08-Jan-2016 Matthias Braun <matze@braunis.de>

LiveInterval: A LiveRange is enough for ConnectedVNInfoEqClasses::Classify()

llvm-svn: 257129


# 70497c69 02-Dec-2015 David Majnemer <david.majnemer@gmail.com>

Move EH-specific helper functions to a more appropriate place

No functionality change is intended.

llvm-svn: 254562


Revision tags: llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1
# 7e624d5f 09-Nov-2015 Matthias Braun <matze@braunis.de>

MachineVerifier: Streamline live interval related error reporting

Simply perform additional report_context() calls after a report()
instead of adding more and more overloaded variations of report().

MachineVerifier: Streamline live interval related error reporting

Simply perform additional report_context() calls after a report()
instead of adding more and more overloaded variations of report(). Also
improve several instances where information was output in an ad-hoc way
probably because no matching report() overload was available.

llvm-svn: 252552

show more ...


# 716b4330 09-Nov-2015 Matthias Braun <matze@braunis.de>

MachineVerifier: Add missing linebreak

MachineInstr::print() with SkipOppers==true does not produce a
linebreak, so we have to do that in MachineVerifier::report().

llvm-svn: 252551


# 45718db0 09-Nov-2015 Matthias Braun <matze@braunis.de>

MachineVerifier: MI::print has no TargetMachine overload

The code was passing a target machine pointer which degraded to a true
operand to SkipOppers.

llvm-svn: 252550


# 42b4b630 09-Nov-2015 Matthias Braun <matze@braunis.de>

MachineVerifier: print list of live intervals if available

llvm-svn: 252549


# 64b003f0 09-Nov-2015 Reid Kleckner <rnk@google.com>

[WinEH] Tweak funclet prologue/epilogue insertion to pass verifier

For some reason we'd never run MachineVerifier on WinEH code, and you
explicitly have to ask for it with llc. I added it to a few t

[WinEH] Tweak funclet prologue/epilogue insertion to pass verifier

For some reason we'd never run MachineVerifier on WinEH code, and you
explicitly have to ask for it with llc. I added it to a few test cases
to get some coverage.

Fixes PR25461.

llvm-svn: 252512

show more ...


# 72640f1c 29-Oct-2015 Jonas Paulsson <paulsson@linux.vnet.ibm.com>

[MachineVerifier] Analyze MachineMemOperands for mem-to-mem moves.

Since the verifier will give false reports if it incorrectly thinks MI is
loading or storing using an FI, it is necessary to scan m

[MachineVerifier] Analyze MachineMemOperands for mem-to-mem moves.

Since the verifier will give false reports if it incorrectly thinks MI is
loading or storing using an FI, it is necessary to scan memoperands and
find out how the FI is used in the instruction. This should be relatively
rare.

Needed to make CodeGen/SystemZ/spill-01.ll pass, which now runs with this flag.

Reviewed by Quentin Colombet.

llvm-svn: 251620

show more ...


# 17ad0453 21-Oct-2015 Jonas Paulsson <jonas.paulsson@ericsson.com>

Let MachineVerifier be aware of mem-to-mem instructions.

A mem-to-mem instruction (that both loads and stores), which store to an
FI, cannot pass the verifier since it thinks it is loading from the

Let MachineVerifier be aware of mem-to-mem instructions.

A mem-to-mem instruction (that both loads and stores), which store to an
FI, cannot pass the verifier since it thinks it is loading from the FI.

For the mem-to-mem instruction, do a looser check in visitMachineOperand()
and only check liveness at the reg-slot while analyzing a frame index operand.

Needed to make CodeGen/SystemZ/xor-01.ll pass with -verify-machineinstrs,
which now runs with this flag.

Reviewed by Evan Cheng and Quentin Colombet.

llvm-svn: 250885

show more ...


# 5ec1568c 09-Oct-2015 Duncan P. N. Exon Smith <dexonsmith@apple.com>

CodeGen: Continue removing ilist iterator implicit conversions

llvm-svn: 249884


# c804cdb9 25-Sep-2015 Matthias Braun <matze@braunis.de>

TargetRegisterInfo: Introduce PrintLaneMask.

This makes it more convenient to print lane masks and lead to more
uniform printing.

llvm-svn: 248624


# e6a2485e 25-Sep-2015 Matthias Braun <matze@braunis.de>

TargetRegisterInfo: Add typedef unsigned LaneBitmask and use it where apropriate; NFC

llvm-svn: 248623


# d9da1627 09-Sep-2015 Matthias Braun <matze@braunis.de>

Save LaneMask with livein registers

With subregister liveness enabled we can detect the case where only
parts of a register are live in, this is expressed as a 32bit lanemask.
The current code only

Save LaneMask with livein registers

With subregister liveness enabled we can detect the case where only
parts of a register are live in, this is expressed as a 32bit lanemask.
The current code only keeps registers in the live-in list and therefore
enumerated all subregisters affected by the lanemask. This turned out to
be too conservative as the subregister may also cover additional parts
of the lanemask which are not live. Expressing a given lanemask by
enumerating a minimum set of subregisters is computationally expensive
so the best solution is to simply change the live-in list to store the
lanemasks as well. This will reduce memory usage for targets using
subregister liveness and slightly increase it for other targets

Differential Revision: http://reviews.llvm.org/D12442

llvm-svn: 247171

show more ...


# 80595460 09-Sep-2015 Matthias Braun <matze@braunis.de>

MachineVerifier: Check that SlotIndex MBBIndexList is sorted.

This introduces a check that the MBBIndexList is sorted as proposed in
http://reviews.llvm.org/D12443 but split up into a separate commi

MachineVerifier: Check that SlotIndex MBBIndexList is sorted.

This introduces a check that the MBBIndexList is sorted as proposed in
http://reviews.llvm.org/D12443 but split up into a separate commit.

llvm-svn: 247166

show more ...


# 0e288234 27-Aug-2015 Reid Kleckner <rnk@google.com>

[WinEH] Add some support for code generating catchpad

We can now run 32-bit programs with empty catch bodies. The next step
is to change PEI so that we get funclet prologues and epilogues.

llvm-sv

[WinEH] Add some support for code generating catchpad

We can now run 32-bit programs with empty catch bodies. The next step
is to change PEI so that we get funclet prologues and epilogues.

llvm-svn: 246235

show more ...


Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4
# b2b7ef1d 24-Aug-2015 Matthias Braun <matze@braunis.de>

MachineBasicBlock: Add liveins() method returning an iterator_range

llvm-svn: 245895


1...<<11121314151617181920>>...23