History log of /llvm-project/llvm/lib/CodeGen/MachineInstr.cpp (Results 526 – 550 of 809)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 6c938801 30-Oct-2009 Dan Gohman <gohman@apple.com>

Initial target-independent CodeGen support for BlockAddresses.

llvm-svn: 85556


Revision tags: llvmorg-2.6.0
# f781bd89 21-Oct-2009 Evan Cheng <evan.cheng@apple.com>

Need a comma after imp-use.

llvm-svn: 84749


# 70b1fa5a 14-Oct-2009 Evan Cheng <evan.cheng@apple.com>

Print earlyclobber for implicit-defs as well.

llvm-svn: 84152


# d7ebfe39 13-Oct-2009 Devang Patel <dpatel@apple.com>

s/DebugLoc.CompileUnit/DebugLoc.Scope/g
s/DebugLoc.InlinedLoc/DebugLoc.InlinedAtLoc/g

llvm-svn: 84054


# 87b02d5b 09-Oct-2009 Dan Gohman <gohman@apple.com>

Factor out LiveIntervalAnalysis' code to determine whether an instruction
is trivially rematerializable and integrate it into
TargetInstrInfo::isTriviallyReMaterializable. This way, all places that
n

Factor out LiveIntervalAnalysis' code to determine whether an instruction
is trivially rematerializable and integrate it into
TargetInstrInfo::isTriviallyReMaterializable. This way, all places that
need to know whether an instruction is rematerializable will get the
same answer.

This enables the useful parts of the aggressive-remat option by
default -- using AliasAnalysis to determine whether a memory location
is invariant, and removes the questionable parts -- rematting operations
with virtual register inputs that may not be live everywhere.

llvm-svn: 83687

show more ...


# e19c1810 09-Oct-2009 Dan Gohman <gohman@apple.com>

isTriviallyReMaterializable checks the
TargetInstrDesc::isRematerializable flag, so it isn't necessary to do
this check in its callers.

llvm-svn: 83671


# be8137b0 07-Oct-2009 Dan Gohman <gohman@apple.com>

Replace TargetInstrInfo::isInvariantLoad and its target-specific
implementations with a new MachineInstr::isInvariantLoad, which uses
MachineMemOperands and is target-independent. This brings Machine

Replace TargetInstrInfo::isInvariantLoad and its target-specific
implementations with a new MachineInstr::isInvariantLoad, which uses
MachineMemOperands and is target-independent. This brings MachineLICM
and other functionality to targets which previously lacked an
isInvariantLoad implementation.

llvm-svn: 83475

show more ...


# fdd87907 05-Oct-2009 Chris Lattner <sabre@nondot.org>

strength reduce a ton of type equality tests to check the typeid (Through
the new predicates I added) instead of going through a context and doing a
pointer comparison. Besides being cheaper, this a

strength reduce a ton of type equality tests to check the typeid (Through
the new predicates I added) instead of going through a context and doing a
pointer comparison. Besides being cheaper, this allows a smart compiler
to turn the if sequence into a switch.

llvm-svn: 83297

show more ...


# b296942f 29-Sep-2009 Devang Patel <dpatel@apple.com>

Remove std::string uses from DebugInfo interface.

llvm-svn: 83083


# 5a6b11cb 25-Sep-2009 Dan Gohman <gohman@apple.com>

Move MachineMemOperand::getAlignment out of line, to avoid needing
MathExtras.h in MachineMemOperand.h.

llvm-svn: 82822


# 48b185d6 25-Sep-2009 Dan Gohman <gohman@apple.com>

Improve MachineMemOperand handling.
- Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
This eliminates MachineInstr's std::list member and allows the data to be
cre

Improve MachineMemOperand handling.
- Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
This eliminates MachineInstr's std::list member and allows the data to be
created by isel and live for the remainder of codegen, avoiding a lot of
copying and unnecessary translation. This also shrinks MemSDNode.
- Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated
fields for MachineMemOperands.
- Change MemSDNode to have a MachineMemOperand member instead of its own
fields with the same information. This introduces some redundancy, but
it's more consistent with what MachineInstr will eventually want.
- Ignore alignment when searching for redundant loads for CSE, but remember
the greatest alignment.

Target-specific code which previously used MemOperandSDNodes with generic
SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range
so that the SelectionDAG framework knows that MachineMemOperand information
is available.

llvm-svn: 82794

show more ...


# c0353bff 23-Sep-2009 Dan Gohman <gohman@apple.com>

Give MachineMemOperand an operator<<, factoring out code from
two different places for printing MachineMemOperands.

Drop the virtual from Value::dump and instead give Value a
protected virtual hook

Give MachineMemOperand an operator<<, factoring out code from
two different places for printing MachineMemOperands.

Drop the virtual from Value::dump and instead give Value a
protected virtual hook that can be overridden by subclasses
to implement custom printing. This lets printing be more
consistent, and simplifies printing of PseudoSourceValue
values.

llvm-svn: 82599

show more ...


# e7c8242b 21-Sep-2009 Dan Gohman <gohman@apple.com>

Change MachineMemOperand's alignment value to be the alignment of
the base pointer, without the offset. This matches MemSDNode's
new alignment behavior, and holds more interesting information.

llvm-

Change MachineMemOperand's alignment value to be the alignment of
the base pointer, without the offset. This matches MemSDNode's
new alignment behavior, and holds more interesting information.

llvm-svn: 82473

show more ...


# 9632c149 17-Sep-2009 Jim Grosbach <grosbach@apple.com>

grammar

llvm-svn: 82150


# 471ba48c 23-Aug-2009 Chris Lattner <sabre@nondot.org>

remove some uses of llvm/Support/Streams.h

llvm-svn: 79842


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


# 55f1c09e 13-Aug-2009 Owen Anderson <resistor@mac.com>

Push LLVMContexts through the IntegerType APIs.

llvm-svn: 78948


# f465f06a 04-Aug-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Don't tamper with <undef> operands in MachineInstr::addRegisterKilled.

For an undef operand, MO.getReg() is meaningless and we should not use it.
Undef operands should be skipped entirely.

llvm-svn

Don't tamper with <undef> operands in MachineInstr::addRegisterKilled.

For an undef operand, MO.getReg() is meaningless and we should not use it.
Undef operands should be skipped entirely.

llvm-svn: 78095

show more ...


# 5d8ace09 03-Aug-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Fix Bug 4657: register scavenger asserts with subreg lowering

When LowerSubregsInstructionPass::LowerInsert eliminates an INSERT_SUBREG
instriction because it is an identity copy, make sure that the

Fix Bug 4657: register scavenger asserts with subreg lowering

When LowerSubregsInstructionPass::LowerInsert eliminates an INSERT_SUBREG
instriction because it is an identity copy, make sure that the same registers
are alive before and after the elimination.

When the super-register is marked <undef> this requires inserting an
IMPLICIT_DEF instruction to make sure the super register is live.

Fix a related bug where a kill flag on the inserted sub-register was not transferred properly.

Finally, clear the undef flag in MachineInstr::addRegisterKilled. Undef implies dead and kill implies live, so they cant both be valid.

llvm-svn: 77989

show more ...


# c59cd9bc 02-Aug-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Never add a kill flag to a constrained physical register in a two-addr instruction.

llvm-svn: 77906


# 4a040410 28-Jul-2009 Evan Cheng <evan.cheng@apple.com>

Fix a typo.

llvm-svn: 77369


# aba695c7 19-Jul-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Fix http://llvm.org/bugs/show_bug.cgi?id=4583

Inline asm instructions may have additional <imp-def,kill> register operands.
These operands are not marked with a flag like the normal asm operands, so

Fix http://llvm.org/bugs/show_bug.cgi?id=4583

Inline asm instructions may have additional <imp-def,kill> register operands.
These operands are not marked with a flag like the normal asm operands, so we
must not assert that there is a flag.

llvm-svn: 76373

show more ...


# 070fab8a 16-Jul-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Teach MachineInstr::isRegTiedToDefOperand() to correctly parse inline asm operands.

The inline asm operands must be parsed from the first flag, you cannot assume
that an immediate operand preceeding

Teach MachineInstr::isRegTiedToDefOperand() to correctly parse inline asm operands.

The inline asm operands must be parsed from the first flag, you cannot assume
that an immediate operand preceeding a register use operand is the flag.
PowerPC "m" operands are represented as (flag, imm, reg) triples.
isRegTiedToDefOperand() would incorrectly interpret the imm as the flag.

llvm-svn: 76101

show more ...


# fbcc663c 14-Jul-2009 Torok Edwin <edwintorok@gmail.com>

llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location i

llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").

llvm-svn: 75640

show more ...


# 56d06597 11-Jul-2009 Torok Edwin <edwintorok@gmail.com>

assert(0) -> LLVM_UNREACHABLE.
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG bu

assert(0) -> LLVM_UNREACHABLE.
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.

llvm-svn: 75379

show more ...


1...<<21222324252627282930>>...33