History log of /llvm-project/llvm/lib/CodeGen/MachineInstr.cpp (Results 476 – 500 of 809)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 86936504 18-Jun-2010 Dan Gohman <gohman@apple.com>

Teach regular and fast isel to set dead flags on unused implicit defs
on calls and similar instructions.

llvm-svn: 106353


# a8ad9774 02-Jun-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Slightly change the meaning of the reMaterialize target hook when the original
instruction defines subregisters.

Any existing subreg indices on the original instruction are preserved or
composed wit

Slightly change the meaning of the reMaterialize target hook when the original
instruction defines subregisters.

Any existing subreg indices on the original instruction are preserved or
composed with the new subreg index.

Also substitute multiple operands mentioning the original register by using the
new MachineInstr::substituteRegister() function. This is necessary because there
will soon be <imp-def> operands added to non read-modify-write partial
definitions. This instruction:

%reg1234:foo = FLAP %reg1234<imp-def>

will reMaterialize(%reg3333, bar) like this:

%reg3333:bar-foo = FLAP %reg333:bar<imp-def>

Finally, replace the TargetRegisterInfo pointer argument with a reference to
indicate that it cannot be NULL.

llvm-svn: 105358

show more ...


# 7b0ac865 01-Jun-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Properly compose subregister indices when coalescing.
The comment about ordering of subreg indices is no longer true.
This exposed a bug in the new substVirtReg method that is also fixed.

llvm-svn:

Properly compose subregister indices when coalescing.
The comment about ordering of subreg indices is no longer true.
This exposed a bug in the new substVirtReg method that is also fixed.

llvm-svn: 105294

show more ...


# 64824ea9 28-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Add a TargetRegisterInfo::composeSubRegIndices hook with a default
implementation that is correct for most targets. Tablegen will override where
needed.

Add MachineOperand::subst{Virt,Phys}Reg metho

Add a TargetRegisterInfo::composeSubRegIndices hook with a default
implementation that is correct for most targets. Tablegen will override where
needed.

Add MachineOperand::subst{Virt,Phys}Reg methods that correctly handle existing
subreg indices when sustituting registers.

llvm-svn: 104985

show more ...


# 1ad0d5e2 25-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Print symbolic SubRegIndex names on machine operands.

llvm-svn: 104628


# 3858451e 21-May-2010 Evan Cheng <evan.cheng@apple.com>

- Change MachineInstr::findRegisterDefOperandIdx so it can also look for defs
that are aliases of the specified register.
- Rename modifiesRegister to definesRegister since it's looking a def of the

- Change MachineInstr::findRegisterDefOperandIdx so it can also look for defs
that are aliases of the specified register.
- Rename modifiesRegister to definesRegister since it's looking a def of the
specific register or one of its super-registers. It's not looking for def of a
sub-register or alias that could change the specified register.
- Added modifiesRegister to look for defs of aliases.

llvm-svn: 104377

show more ...


# 7d7f6043 21-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Add MachineInstr::readsWritesVirtualRegister() to determine if an instruction
reads or writes a register.

This takes partial redefines and undef uses into account.

Don't actually use it yet. That c

Add MachineInstr::readsWritesVirtualRegister() to determine if an instruction
reads or writes a register.

This takes partial redefines and undef uses into account.

Don't actually use it yet. That caused miscompiles.

llvm-svn: 104372

show more ...


# b4e16872 21-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Revert "Use MachineInstr::readsWritesVirtualRegister to determine if a register is read."

This reverts r104322. I think it was causing miscompilations.

llvm-svn: 104323


# 8e8e0903 21-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Use MachineInstr::readsWritesVirtualRegister to determine if a register is read.
This correctly handles partial redefines and undef uses.

llvm-svn: 104322


# 1f380106 21-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

If the first definition of a virtual register is a partial redef, add an
<imp-def> operand for the full register. This ensures that the full physical
register is marked live after register allocation

If the first definition of a virtual register is a partial redef, add an
<imp-def> operand for the full register. This ensures that the full physical
register is marked live after register allocation.

llvm-svn: 104320

show more ...


# 5d4c134a 19-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Add MachineInstr::readsVirtualRegister() in preparation for proper handling of
partial redefines.

We are going to treat a partial redefine of a virtual register as a
read-modify-write:

%reg1024:6

Add MachineInstr::readsVirtualRegister() in preparation for proper handling of
partial redefines.

We are going to treat a partial redefine of a virtual register as a
read-modify-write:

%reg1024:6 = OP

Unless the register is fully clobbered:

%reg1024:6 = OP, %reg1024<imp-def>

MachineInstr::readsVirtualRegister() knows the difference. The first case is a
read, the second isn't.

llvm-svn: 104149

show more ...


# c90f51c0 13-May-2010 Dan Gohman <gohman@apple.com>

Teach MachineLICM and MachineSink how to clear kill flags conservatively
when they move instructions.

llvm-svn: 103737


# d4d1a518 28-Apr-2010 Evan Cheng <evan.cheng@apple.com>

Pretty print DBG_VALUE machine instructions.
Before:
DBG_VALUE %RSI, 0, !-1; dbg:SimpleRegisterCoalescing.cpp:2707
Now:
DBG_VALUE %RSI, 0, !"this"; dbg:SimpleRegisterCoalescing.cpp:2707

llvm-svn: 10

Pretty print DBG_VALUE machine instructions.
Before:
DBG_VALUE %RSI, 0, !-1; dbg:SimpleRegisterCoalescing.cpp:2707
Now:
DBG_VALUE %RSI, 0, !"this"; dbg:SimpleRegisterCoalescing.cpp:2707

llvm-svn: 102518

show more ...


Revision tags: llvmorg-2.7.0
# d8eeb121 09-Apr-2010 Bob Wilson <bob.wilson@apple.com>

Use getNumImplicitDefs() and getNumImplicitUses().

llvm-svn: 100850


# 406f2701 09-Apr-2010 Bob Wilson <bob.wilson@apple.com>

Fix up some comments.

llvm-svn: 100849


# b083c47c 08-Apr-2010 Evan Cheng <evan.cheng@apple.com>

Coalescer should not delete copy instructions whose defs are partially dead. e.g.
%RDI<def,dead> = MOV64rr %RAX<kill>, %EDI<imp-def>

llvm-svn: 100804


# f839ee0c 07-Apr-2010 Chris Lattner <sabre@nondot.org>

fix a latent bug my inline asm stuff exposed:
MachineOperand::isIdenticalTo wasn't handling metadata operands.

llvm-svn: 100636


# bd009d6d 02-Apr-2010 Chris Lattner <sabre@nondot.org>

stop using DebugLoc::getUnknownLoc()

llvm-svn: 100215


# 915c5f98 02-Apr-2010 Chris Lattner <sabre@nondot.org>

Switch the code generator (except the JIT) onto the new DebugLoc
representation. This eliminates the 'DILocation' MDNodes for
file/line/col tuples from -O0 -g codegen.

This remove the old DebugLoc

Switch the code generator (except the JIT) onto the new DebugLoc
representation. This eliminates the 'DILocation' MDNodes for
file/line/col tuples from -O0 -g codegen.

This remove the old DebugLoc class, making it a typedef for DebugLoc,
I'll rename NewDebugLoc next.

I didn't update the JIT to use the new apis, so it will continue to
work, but be as slow as before. Someone should eventually do this
or, better yet, rip out the JIT debug info stuff and build the JIT
on top of MC.

llvm-svn: 100209

show more ...


# 6c604e3f 13-Mar-2010 Chris Lattner <sabre@nondot.org>

add support for MCSymbols as operands to MachineInstrs.

llvm-svn: 98433


# 3b548aa8 08-Mar-2010 Devang Patel <dpatel@apple.com>

Avoid using DIDescriptor.isNull().
This is a first step towards eliminating checks in Descriptor constructors.

llvm-svn: 97975


# bc97f6b7 08-Mar-2010 Devang Patel <dpatel@apple.com>

Revert r97947.

llvm-svn: 97963


# fe28599f 08-Mar-2010 Devang Patel <dpatel@apple.com>

Avoid using DIDescriptor.isNull().
This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers.

llvm-svn: 97947


# 59d27fe5 03-Mar-2010 Evan Cheng <evan.cheng@apple.com>

Move MachineInstrExpressionTrait::getHashValue() out of line so it can skip over only virtual register defs. This matches what isEqual() is doing.

llvm-svn: 97680


# 0f260e17 03-Mar-2010 Evan Cheng <evan.cheng@apple.com>

Fix funky indentation and add comments.

llvm-svn: 97670


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