History log of /llvm-project/llvm/lib/CodeGen/MachineInstr.cpp (Results 451 – 475 of 809)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 6b356b18 27-Jun-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Decode and pretty print inline asm operand descriptors.

The INLINEASM MachineInstrs have an immediate operand describing each
original inline asm operand. Decode the bits in MachineInstr::print() so

Decode and pretty print inline asm operand descriptors.

The INLINEASM MachineInstrs have an immediate operand describing each
original inline asm operand. Decode the bits in MachineInstr::print() so
it is easier to read:

INLINEASM <es:rorq $1,$0>, $0:[regdef], %vreg0<def>, %vreg1<def>, $1:[imm], 1, $2:[reguse] [tiedto:$0], %vreg2, %vreg3, $3:[regdef-ec], %EFLAGS<earlyclobber,imp-def>

llvm-svn: 133901

show more ...


# f071d72c 24-Jun-2011 Devang Patel <dpatel@apple.com>

Handle debug info for i128 constants.

llvm-svn: 133821


# cfdf3390 12-May-2011 Evan Cheng <evan.cheng@apple.com>

Re-commit 131172 with fix. MachineInstr identity checks should check dead
markers. In some cases a register def is dead on one path, but not on
another.

This is passing Clang self-hosting.

llvm-svn

Re-commit 131172 with fix. MachineInstr identity checks should check dead
markers. In some cases a register def is dead on one path, but not on
another.

This is passing Clang self-hosting.

llvm-svn: 131214

show more ...


# 89bd2ae5 08-May-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Remove an assertion to fix PR9872.

It can happen that a live debug variable is the last use of a sub-register, and
the register allocator will pick a larger register class for the virtual
register.

Remove an assertion to fix PR9872.

It can happen that a live debug variable is the last use of a sub-register, and
the register allocator will pick a larger register class for the virtual
register. If the allocated register doesn't support the sub-register index,
just use %noreg for the debug variables instead of asserting.

In PR9872, a debug variable ends up in the sub_8bit_hi part of a GR32_ABCD
register. The register is split and one part is inflated to GR32 and assigned
%ESI because there are no more normal uses of sub_8bit_hi.

Since %ESI doesn't have that sub-register, substPhysReg asserted. Now it will
simply insert a %noreg instead, and the debug variable will be marked
unavailable in that range.

We don't currently have a way of saying: !"value" is in bits 8-15 of %ESI, I
don't know if DWARF even supports that.

llvm-svn: 131073

show more ...


# 9f638ab1 29-Apr-2011 Bill Wendling <isanbard@gmail.com>

Print out the 'nontemporal' info on a store.

llvm-svn: 130562


Revision tags: llvmorg-2.9.0
# 76ad3deb 05-Apr-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Ensure all defs referring to a virtual register are marked dead by addRegisterDead().

There can be multiple defs for a single virtual register when they are defining
sub-registers.

The missing <dea

Ensure all defs referring to a virtual register are marked dead by addRegisterDead().

There can be multiple defs for a single virtual register when they are defining
sub-registers.

The missing <dead> flag was stopping the inline spiller from eliminating dead
code after rematerialization.

llvm-svn: 128888

show more ...


Revision tags: llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1
# 65cff414 05-Mar-2011 Anton Korobeynikov <asl@math.spbu.ru>

Add FrameSetup MI flags

llvm-svn: 127098


# 2fb5b315 10-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Simplify a bunch of isVirtualRegister() and isPhysicalRegister() logic.

These functions not longer assert when passed 0, but simply return false instead.

No functional change intended.

llvm-svn: 1

Simplify a bunch of isVirtualRegister() and isPhysicalRegister() logic.

These functions not longer assert when passed 0, but simply return false instead.

No functional change intended.

llvm-svn: 123155

show more ...


# 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 ...


# 6eb516db 07-Jan-2011 Evan Cheng <evan.cheng@apple.com>

Do not model all INLINEASM instructions as having unmodelled side effects.
Instead encode llvm IR level property "HasSideEffects" in an operand (shared
with IsAlignStack). Added MachineInstrs::hasUnm

Do not model all INLINEASM instructions as having unmodelled side effects.
Instead encode llvm IR level property "HasSideEffects" in an operand (shared
with IsAlignStack). Added MachineInstrs::hasUnmodeledSideEffects() to check
the operand when the instruction is an INLINEASM.

This allows memory instructions to be moved around INLINEASM instructions.

llvm-svn: 123044

show more ...


# 0638c20e 07-Jan-2011 Evan Cheng <evan.cheng@apple.com>

DBG_VALUE does not have any side effects; it also makes no sense to mark it cheap as a copy.

llvm-svn: 123031


# 21eedfb5 22-Oct-2010 Evan Cheng <evan.cheng@apple.com>

Unbreak build.

llvm-svn: 117155


# a94cc6df 20-Oct-2010 Dan Gohman <gohman@apple.com>

Make CodeGen TBAA-aware.

llvm-svn: 116890


# a4941690 19-Oct-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Shrink MachineOperand from 40 to 32 bytes on 64-bit hosts.

Pull an unsigned out of the Contents union such that it has the same size as two
pointers and no padding.

Arrange members such that the Co

Shrink MachineOperand from 40 to 32 bytes on 64-bit hosts.

Pull an unsigned out of the Contents union such that it has the same size as two
pointers and no padding.

Arrange members such that the Contents union and all pointers can be 8-byte
aligned without padding.

This speeds up code generation by 0.8% on a 64-bit host. 32-bit hosts should be
unaffected.

llvm-svn: 116857

show more ...


Revision tags: llvmorg-2.8.0, llvmorg-2.8.0-rc3
# 886250c8 21-Sep-2010 Chris Lattner <sabre@nondot.org>

convert a couple more places to use the new getStore()

llvm-svn: 114463


# 50287ea6 21-Sep-2010 Chris Lattner <sabre@nondot.org>

add some accessors

llvm-svn: 114409


# 82fd06d3 21-Sep-2010 Chris Lattner <sabre@nondot.org>

it's more elegant to put the "getConstantPool" and
"getFixedStack" on the MachinePointerInfo class. While
this isn't the problem I'm setting out to solve, it is the
right way to eliminate PseudoSour

it's more elegant to put the "getConstantPool" and
"getFixedStack" on the MachinePointerInfo class. While
this isn't the problem I'm setting out to solve, it is the
right way to eliminate PseudoSourceValue, so lets go with it.

llvm-svn: 114406

show more ...


# de93bb06 21-Sep-2010 Chris Lattner <sabre@nondot.org>

add some helpful accessors.

llvm-svn: 114400


# 00ca0b8e 21-Sep-2010 Chris Lattner <sabre@nondot.org>

start pushing MachinePointerInfo out through the MachineMemOperand interface
to the MachineFunction construction methods.

llvm-svn: 114390


# 187f6534 21-Sep-2010 Chris Lattner <sabre@nondot.org>

refactor the Value*/offset pair from MachineMemOperand out to a new
MachinePointerInfo struct, no functionality change.

This also adds an assert to MachineMemOperand::MachineMemOperand
that verifies

refactor the Value*/offset pair from MachineMemOperand out to a new
MachinePointerInfo struct, no functionality change.

This also adds an assert to MachineMemOperand::MachineMemOperand
that verifies that the Value* is either null or is an IR pointer type.

llvm-svn: 114389

show more ...


Revision tags: llvmorg-2.8.0-rc2, llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0
# 40b31ad3 02-Aug-2010 Oscar Fuentes <ofv@wanadoo.es>

Prefix `next' iterator operation with `llvm::'.

Fixes potential ambiguity problems on VS 2010.

Patch by nobled!

llvm-svn: 110029


# 0ff2c110 28-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Print out the regclass of any virtual registers used by a machine instruction.

llvm-svn: 109608


# ac0a2107 04-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Print symbolic subreg indices on REG_SEQUENCE and INSERT_SUBREG.

llvm-svn: 107602


# 4d887f7c 02-Jul-2010 Dale Johannesen <dalej@apple.com>

Propagate the AlignStack bit in InlineAsm's to the
PrologEpilog code, and use it to determine whether
the asm forces stack alignment or not. gcc consistently
does not do this for GCC-style asms; Ap

Propagate the AlignStack bit in InlineAsm's to the
PrologEpilog code, and use it to determine whether
the asm forces stack alignment or not. gcc consistently
does not do this for GCC-style asms; Apple gcc inconsistently
sometimes does it for asm blocks. There is no
convenient place to put a bit in either the SDNode or
the MachineInstr form, so I've added an extra operand
to each; unlovely, but it does allow for expansion for
more bits, should we need it. PR 5125. Some
existing testcases are affected.
The operand lists of the SDNode and MachineInstr forms
are indexed with awesome mnemonics, like "2"; I may
fix this someday, but not now. I'm not making it any
worse. If anyone is inspired I think you can find all
the right places from this patch.

llvm-svn: 107506

show more ...


# c728518b 29-Jun-2010 Devang Patel <dpatel@apple.com>

Print InlinedAt location.

llvm-svn: 107208


1...<<11121314151617181920>>...33