History log of /external/llvm/include/llvm/CodeGen/MachineInstr.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c8ecb401caefc5fb97b20041544d8da5d8e2f830 06-Sep-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> TiedTo is an integer, not a bool.

Thanks, Andy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
576cd11ab8035d4240f7e6ea8d7c6c2e45154f86 05-Sep-2012 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Propagate the asm dialect into the MachineInstr representation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
99c416c9f7e8a9d7d1038d03cafebec730280398 04-Sep-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Actually use the MachineOperand field for isRegTiedToDefOperand().

The MachineOperand::TiedTo field was maintained, but not used.

This patch enables it in isRegTiedToDefOperand() and
isRegTiedToUseOperand() which are the actual functions use by the
register allocator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9c130672761e006c47ea23b34a7bd414f2cd8368 04-Sep-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Allow tied uses and defs in different orders.

After much agonizing, use a full 4 bits of precious MachineOperand space
to encode this. This uses existing padding, and doesn't grow
MachineOperand beyond its current 32 bytes.

This allows tied defs among the first 15 operands on a normal
instruction, just like the current MCInstrDesc constraint encoding.
Inline assembly needs to be able to tie more than the first 15 operands,
and gets special treatment.

Tied uses can appear beyond 15 operands, as long as they are tied to a
def that's in range.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
94083149fd6891c8a72472cf1814fa6600a75979 31-Aug-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Add MachineInstr::tieOperands, remove setIsTied().

Manage tied operands entirely internally to MachineInstr. This makes it
possible to change the representation of tied operands, as I will do
shortly.

The constraint that tied uses and defs must be in the same order was too
restrictive.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
f036f7a1e79910bf5b5b6f37d2e512b4f01155a0 29-Aug-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Rename hasVolatileMemoryRef() to hasOrderedMemoryRef().

Ordered memory operations are more constrained than volatile loads and
stores because they must be ordered with respect to all other memory
operations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
699ac049517285d978ed607b2735976c5ae97ac0 29-Aug-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Maintain a vaild isTied bit as operands are added and removed.

The isTied bit is set automatically when a tied use is added and
MCInstrDesc indicates a tied operand. The tie is broken when one of the
tied operands is removed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
f2c64ef519b38a4328809b27b4a3a8e0c26e9709 17-Aug-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Add an MCID::Select flag and TII hooks for optimizing selects.

Select instructions pick one of two virtual registers based on a
condition, like x86 cmov. On targets like ARM that support predication,
selects can sometimes be eliminated by predicating the instruction
defining one of the operands.

Teach PeepholeOptimizer to recognize select instructions, and ask the
target to optimize them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ff2b99afc8cbc6cfa73181072888e0f9f07deb7e 10-Aug-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Move use list management into MachineRegisterInfo.

Register MachineOperands are kept in linked lists accessible via MRI's
reg_iterator interfaces. The linked list management was handled partly
by MachineOperand methods, partly by MRI methods.

Move all of the list management into MRI, delete
MO::AddRegOperandToRegInfo() and MO::RemoveRegOperandFromRegInfo().

Be more explicit about handling the cases where an MRI pointer isn't
available.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
3f63a589788995a724bc4587d022fe15ea8576ba 30-Jul-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Add MachineInstr::isTransient().

This is a cleaned up version of the isFree() function in
MachineTraceMetrics.cpp.

Transient instructions are very unlikely to produce any code in the
final output. Either because they get eliminated by RegisterCoalescing,
or because they are pseudo-instructions like labels and debug values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
85f9cef27e6b2605e67e94afc949f5b5f5b90668 17-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> MachineInstr: Inline the fast path (non-bundle instruction) of hasProperty.

This is particularly helpful as both arguments tend to be constants.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
861ea230a7841fe4ccc8a1cd5460354e59aeed3c 16-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Limit the number of memory operands in MachineInstr to 2^16 and store the number in padding.

Saves one machine word on MachineInstr (88->80 bytes on x86_64, 48->44 on i386).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
741981adf3a2bc0c6652c9c4ec846250950f3e68 01-Mar-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Move getBundleStart() into MachineInstrBundle.h.

This allows the function to be inlined, and makes it suitable for use in
getInstructionIndex().

Also provide a const version. C++ is great for touch typing practice.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cc2037be2cf0159e9f7a917a4db434258fe6eb6b 16-Feb-2012 Lang Hames <lhames@gmail.com> Make LiveIntervals::handleMove() bundle aware.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150630 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1cf8b0f2a5435d8444b6cc7d4a27eef424398273 15-Feb-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Handle regmasks in findRegisterDefOperandIdx().

Only accept register masks when looking for an 'overlapping' def. When
Overlap is not set, the function searches for a proper definition of
Reg.

This means MI->modifiesRegister() considers register masks, but
MI->definesRegister() doesn't.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
99a7a13f4aa5bf8f272c95f7b09ba997d2b30a35 08-Feb-2012 Andrew Trick <atrick@apple.com> Added MachineInstr::isBundled() to check if an instruction is part of a bundle.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b3aacdd358052ddd8d9fc9ac77f5e17a4048941a 08-Feb-2012 Andrew Trick <atrick@apple.com> whitespace

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
77180e0b402fff318cffd89a2251e46b3dce4064 03-Feb-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Handle register mask operands in setPhysRegsDeadExcept().

Calls that use register mask operands don't have implicit defs for
returned values. The register mask operand handles the call clobber,
but it always behaves like a set of dead defs.

Add live implicit defs for any implicitly defined physregs that are
actually used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a37818dbb119bda75273f16b8484732e742cdbb7 03-Feb-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> ArrayRef'ize MI::setPhysRegsDeadExcept().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a21bb20f5943f5f4c66d4727784c26007db2470c 27-Jan-2012 Jim Grosbach <grosbach@apple.com> Fix typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1a96c914315b0286d84c507d696484e2c95875a4 26-Jan-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Clear kill flags before propagating a copy.

The live range of the source register may be extended when a redundant
copy is eliminated. Make sure any kill flags between the two copies are
cleared.

This fixes PR11765.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a15c9d84defba6fac942cd8b573dd44e1c0bb989 25-Jan-2012 Evan Cheng <evan.cheng@apple.com> Update hasProperty comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ddfd1377d2e4154d44dc3ad217735adc15af2e3f 14-Dec-2011 Evan Cheng <evan.cheng@apple.com> - Add MachineInstrBundle.h and MachineInstrBundle.cpp. This includes a function
to finalize MI bundles (i.e. add BUNDLE instruction and computing register def
and use lists of the BUNDLE instruction) and a pass to unpack bundles.
- Teach more of MachineBasic and MachineInstr methods to be bundle aware.
- Switch Thumb2 IT block to MI bundles and delete the hazard recognizer hack to
prevent IT blocks from being broken apart.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
43d5d4ca1c93529c43e78cc5aa03c4ee10a6b0d8 08-Dec-2011 Evan Cheng <evan.cheng@apple.com> Make MachineInstr instruction property queries more flexible. This change all
clients to decide whether to look inside bundled instructions and whether
the query should return true if any / all bundled instructions have the
queried property.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
5a96b3dad2f634c9081c8b2b6c2575441dc5a2bd 07-Dec-2011 Evan Cheng <evan.cheng@apple.com> Add bundle aware API for querying instruction properties and switch the code
generator to it. For non-bundle instructions, these behave exactly the same
as the MC layer API.

For properties like mayLoad / mayStore, look into the bundle and if any of the
bundled instructions has the property it would return true.
For properties like isPredicable, only return true if *all* of the bundled
instructions have the property.
For properties like canFoldAsLoad, isCompare, conservatively return false for
bundles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7c2a4a30e0e16762c75adacebd05ec9fcbccf16b 06-Dec-2011 Evan Cheng <evan.cheng@apple.com> First chunk of MachineInstr bundle support.
1. Added opcode BUNDLE
2. Taught MachineInstr class to deal with bundled MIs
3. Changed MachineBasicBlock iterator to skip over bundled MIs; added an iterator to walk all the MIs
4. Taught MachineBasicBlock methods about bundled MIs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
f5916976e9057177100badee7b7388bd7ba76ac3 13-Oct-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Add MachineInstr::getRegClassConstraint().

Most instructions have some requirements for their register operands.
Usually, this is expressed as register class constraints in the
MCInstrDesc, but for inline assembly the constraints are encoded in the
flag words.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9dfaacb696d1ad850f9f5f49a94fdb81cf8ae018 13-Oct-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Extract a method for finding the inline asm flag operand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cc84cda91997bf6fc93512a56c3a12eecaaa2d88 29-Sep-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Remove NumImplicitOps which is now unused.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
d519de082766bb71e13f6a516b305ff841c6b48c 02-Jul-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Include a source location when complaining about bad inline assembly.

Add a MI->emitError() method that the backend can use to report errors
related to inline assembly. Call it from X86FloatingPoint.cpp when the
constraints are wrong.

This enables proper clang diagnostics from the backend:

$ clang -c pr30848.c
pr30848.c:5:12: error: Inline asm output regs must be last on the x87 stack
__asm__ ("" : "=u" (d)); /* { dg-error "output regs" } */
^
1 error generated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cfe5254cd34d9414d9f6b8aa02dc1239d71a703f 30-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Create a isFullCopy predicate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e837dead3c8dc3445ef6a0e2322179c57e264a13 28-Jun-2011 Evan Cheng <evan.cheng@apple.com> - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and
sink them into MC layer.
- Added MCInstrInfo, which captures the tablegen generated static data. Chang
TargetInstrInfo so it's based off MCInstrInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cbc988be22bc9411d95215c8b7251b5f85710674 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
2a09f878ef64f216268df3dbe2f51b949f18c145 11-Mar-2011 Jim Grosbach <grosbach@apple.com> 80 columns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
108e4dbecb690056e678da2f15c56ef7220f9ec9 11-Mar-2011 Jim Grosbach <grosbach@apple.com> Trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
6dd97471c43805b3febf598d50498a09a02e93f4 05-Mar-2011 Anton Korobeynikov <asl@math.spbu.ru> Add FrameSetup MI flags

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
6647b59c9263eb1decd7f7ff353c0c99ec09ae6c 05-Mar-2011 Anton Korobeynikov <asl@math.spbu.ru> Shorten AsmPrinterFlags filed to accomodate for future Flags field

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c36b7069b42bece963b7e6adf020353ce990ef76 08-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::hasUnmodeledSideEffects() to check
the operand when the instruction is an INLINEASM.

This allows memory instructions to be moved around INLINEASM instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cbd323ad5259dc2bd3428a4ac26718b10adcd3cf 21-Nov-2010 Chris Lattner <sabre@nondot.org> add some helper methods for asmprinter flags, from PR8417


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119932 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ccb5c677c66aea0a86878de69d5346ef802a6505 12-Nov-2010 Chris Lattner <sabre@nondot.org> add operand iterator apis to MachineInstr, patch by ether zhhb.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b179b46cc558c720d23a066c768bad71f975eb93 22-Oct-2010 Evan Cheng <evan.cheng@apple.com> Transfer implicit ops when forming load multiple and return instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7431beaba2a01c3fe299c861b2ec85cbf1dc81c4 17-Jul-2010 Bill Wendling <isanbard@gmail.com> Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and
thus is a much more meaningful name.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
0bc25f40402f48ba42fc45403f635b20d90fabb3 08-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Convert EXTRACT_SUBREG to COPY when emitting machine instrs.

EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead.

Add isCopy() checks in many places using isMoveInstr() and isExtractSubreg().
The isMoveInstr hook will be removed later.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107879 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
273f7e42994a5bce0614d04d96dbfdf05fd652e5 03-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Detect and handle COPY in many places.

This code is transitional, it will soon be possible to eliminate
isExtractSubreg, isInsertSubreg, and isMoveInstr in most places.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a4e1ba53ddedd08669886b2849926bb33facc198 03-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add a new target independent COPY instruction and code to lower it.

The COPY instruction is intended to replace the target specific copy
instructions for virtual registers as well as the EXTRACT_SUBREG and
INSERT_SUBREG instructions in MachineFunctions. It won't we used in a selection
DAG.

COPY is lowered to native register copies by LowerSubregs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
db4971259ce94cea26e555e9ade82672a3581f5c 19-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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9edf7deb37f0f97664f279040fa15d89f32e23d9 03-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 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1015ba7018c87f48cc7bb45a564eb4a27241e76a 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
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
18b2c9d3bf5a6633535eaad8388f0353b14cbfb8 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 caused miscompiles.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
19f5f71bba08e690611fa213647ac6bae814756b 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
00c53caa339f954cb3590a05e8653b864b4355cf 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
63e6a488cb6c29983415221719d05fbf99e00193 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7ebc4d63db05ac214d36bc01b4d60adadaf923e5 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 = 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e6cd757e6800b9b94a6459ec148c0624c4f2e3c1 13-May-2010 Dan Gohman <gohman@apple.com> Teach MachineLICM and MachineSink how to clear kill flags conservatively
when they move instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
3d720fbc6ad40bc9287a420f824d244965d24631 05-May-2010 Evan Cheng <evan.cheng@apple.com> Move REG_SEQUENCE removal to 2addr pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
666f8cb9b7486a45f59fd9ba3202e4b67dbad58c 09-Apr-2010 Bob Wilson <bob.wilson@apple.com> Fix up header comments to match the comment fixups I made in r100849.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a57fabe815ccf016eead526eb3ef475f116ab155 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>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
84e679beea11ac55ed7871eec4deaccdf393de3e 02-Apr-2010 Chris Lattner <sabre@nondot.org> rename NewDebugLoc -> DebugLoc, prune #includes in DebugLoc.h.

This keeps around temporary typedef for clang/llvm-gcc so the
build won't break when I commit this :)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
67eaa08f2b71aa8aec8cdf4c7d970db4cad58ada 04-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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
05bdcbb1ae48d1d1209173d137d11c35f46abff3 04-Mar-2010 Evan Cheng <evan.cheng@apple.com> Re-apply r97667 but with a little bit of thought put into the patch. This implements a special DenseMapInfo trait for DenseMap<MachineInstr*> that compare the value of the MachineInstr rather than the pointer value. Since the hashing and equality test functions ignore defs it's useful for doing CSE kind optimization.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
319dfa3fb38a0769806b155dbe8fc0af7f8bdb1e 03-Mar-2010 Dan Gohman <gohman@apple.com> Revert 97667. It broke a bunch of tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a054ae02fda1886f36b4b51cba8ac8000ed8be8a 03-Mar-2010 Evan Cheng <evan.cheng@apple.com> Move DenseMapInfo for MachineInstr* to MachineInstr.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
506049f29f4f202a8e45feb916cc0264440a7f6d 03-Mar-2010 Evan Cheng <evan.cheng@apple.com> - Change MachineInstr::isIdenticalTo to take a new option that determines whether it should skip checking defs or at least virtual register defs. This subsumes part of the TargetInstrInfo::isIdentical functionality.
- Eliminate TargetInstrInfo::isIdentical and replace it with produceSameValue. In the default case, produceSameValue just checks whether two machine instructions are identical (except for virtual register defs). But targets may override it to check for unusual cases (e.g. ARM pic loads from constant pools).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ac1abde05b7e6956c01deb6557539bee8fea30f4 02-Mar-2010 Evan Cheng <evan.cheng@apple.com> Swap parameters of isSafeToMove and isSafeToReMat for consistency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
f451cb870efcf9e0302d25ed05f4cac6bb494e42 10-Feb-2010 Dan Gohman <gohman@apple.com> Fix "the the" and similar typos.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
45282aedb9c5a33d20565502c6c8fc871fa84cbe 10-Feb-2010 Chris Lattner <sabre@nondot.org> fix a layering violation: VirtRegRewriter.cpp shouldn't use AsmPrinter.h.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a655f088b88cf015fc48721fd9869787d1b8ce13 10-Feb-2010 Chris Lattner <sabre@nondot.org> Stop MachineInstr.h from #including AsmPrinter.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
518bb53485df640d7b7e3f6b0544099020c42aa7 09-Feb-2010 Chris Lattner <sabre@nondot.org> move target-independent opcodes out of TargetInstrInfo
into TargetOpcodes.h. #include the new TargetOpcodes.h
into MachineInstr. Add new inline accessors (like isPHI())
to MachineInstr, and start using them throughout the
codebase.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
8efadf94b568c08de3ff8ce35fd904a935387406 06-Jan-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add <imp-def> and <imp-kill> operands when replacing virtual sub-register defs and kills.

An instruction like this:

%reg1097:1<def> = VMOVSR %R3<kill>, 14, %reg0

Must be replaced with this when substituting physical registers:

%S0<def> = VMOVSR %R3<kill>, 14, %reg0, %D0<imp-def>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
229694f0ee630ceabe96a8bd48952f6740f928b2 03-Dec-2009 Evan Cheng <evan.cheng@apple.com> Fill out codegen SSA updater. It's not yet tested.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1251443929a256c833717e1030c368d3b6e4cb7c 12-Nov-2009 David Greene <greened@obbligato.org> Add AsmPrinter comment flags to machine instructions so that AsmPrinter
can emit extra information in comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a70dca156fa76d452f54829b5c5f962ddfd94ef2 10-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
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e33f44cfc547359bc28526e4c5e1852b600b4448 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 MachineLICM
and other functionality to targets which previously lacked an
isInvariantLoad implementation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c76909abfec876c6b751d693ebd3df07df686aa0 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
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
10f9101c4c0df0837414976ad0ef0e86d6771059 17-Sep-2009 Jim Grosbach <grosbach@apple.com> grammar

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
705e07f578e2b3af47ddab610feb4e7f2d3063a5 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 stealing his fun. ;-)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
d5fb7906130989a579d1bfe4490b414331e94fee 20-Jun-2009 Chris Lattner <sabre@nondot.org> stub out some hacky code for wiring up the new asmprinter interfaces
on X86. Not useful yet.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1e86a66b00b94adc4ad6977ef6b47c516ac62cec 20-Jun-2009 Devang Patel <dpatel@apple.com> mv CodeGen/DebugLoc.h Support/DebugLoc.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ce9be2cf5dc84865f6b819bd3f9be16944426268 29-Apr-2009 Jakob Stoklund Olesen <stoklund@2pi.dk> MachineInstr::isRegTiedTo{Use,Def}Operand can safely be made const.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
d9df5017040489303acb57bdd8697ef0f8bafc08 09-Apr-2009 Bob Wilson <bob.wilson@apple.com> Fix pr3954. The register scavenger asserts for inline assembly with
register destinations that are tied to source operands. The
TargetInstrDescr::findTiedToSrcOperand method silently fails for inline
assembly. The existing MachineInstr::isRegReDefinedByTwoAddr was very
close to doing what is needed, so this revision makes a few changes to
that method and also renames it to isRegTiedToUseOperand (for consistency
with the very similar isRegTiedToDefOperand and because it handles both
two-address instructions and inline assembly with tied registers).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a24752ff43dc1ad8c18c5d9e78549c45f62b980e 19-Mar-2009 Evan Cheng <evan.cheng@apple.com> Added MachineInstr::isRegTiedToDefOperand to check for two-addressness.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
abab81f42029c5848a6b66ed8594713ac5e3d5f4 06-Mar-2009 Gabor Greif <ggreif@gmail.com> do not close friendship with every odd class

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ab160cf371d6148d49b5401a903dd4ce381b2f8c 28-Jan-2009 Dale Johannesen <dalej@apple.com> Embalm my ideas of how things should work. Not that
anyone will pay attention.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
06efc02854a96a9f92edc3bf46b0451f488cf2e6 28-Jan-2009 Dale Johannesen <dalej@apple.com> Add a DebugLoc field and some simple accessors.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
631bd3cdf39eb099d5d5d279b17b08f119956538 20-Jan-2009 Evan Cheng <evan.cheng@apple.com> Spacing

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
2ce7f2068f13566f5a70ee779e3bb83a6cb8d942 05-Dec-2008 Dan Gohman <gohman@apple.com> Drop the reg argument to isRegReDefinedByTwoAddr, which was redundant.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b3b930a011554fc7566dd4311af3862b01e5fd8f 18-Nov-2008 Dan Gohman <gohman@apple.com> Make some methods const.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
3e4fb70c6af53a2d00e057a7e4a8f93eb2ff2112 24-Sep-2008 Dan Gohman <gohman@apple.com> Add a method to MachineInstr for testing whether it makes
any volatile memory references.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
df3b99381f1c211071cc1daf0cc297666877bbcb 27-Aug-2008 Evan Cheng <evan.cheng@apple.com> Refactor isSafeToReMat out of 2addr pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cb3718832375a581c5ea23f15918f3ea447a446c 21-Aug-2008 Owen Anderson <resistor@mac.com> Use raw_ostream throughout the AsmPrinter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
79e6ed9d4733ef6bfaf6e6ae71a013c8b226b7c9 15-Aug-2008 Owen Anderson <resistor@mac.com> Move MachineInstr::getOpcode inline.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
fed90b6d097d50881afb45e4d79f430db66dd741 28-Jul-2008 Dan Gohman <gohman@apple.com> Fold the useful features of alist and alist_node into ilist, and
a new ilist_node class, and remove them. Unlike alist_node,
ilist_node doesn't attempt to manage storage itself, so it avoids
the associated problems, including being opaque in gdb.

Adjust the Recycler class so that it doesn't depend on alist_node.
Also, change it to use explicit Size and Align parameters, allowing
it to work when the largest-sized node doesn't have the greatest
alignment requirement.

Change MachineInstr's MachineMemOperand list from a pool-backed
alist to a std::list for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cddc11e7570893233af8e84dfb8e7f0f9ab0090d 12-Jul-2008 Dan Gohman <gohman@apple.com> Add a utility function to MachineInstr for testing whether an instruction
has exactly one MachineMemOperand, and change some X86 lowering code to
make use of it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ef0732d25a9882c947984ae3f2afbef5463ba00f 10-Jul-2008 Evan Cheng <evan.cheng@apple.com> - Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply the operand index of def machineoperand and at most one full scan of non-implicit operands is needed.
- Change local register allocator to use the new isRegReDefinedByTwoAddr instead of reinventing the wheel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
8e5f2c6f65841542e2a7092553fe42a00048e4c7 08-Jul-2008 Dan Gohman <gohman@apple.com> Pool-allocation for MachineInstrs, MachineBasicBlocks, and
MachineMemOperands. The pools are owned by MachineFunctions.

This drastically reduces the number of calls to malloc/free made
during the "Emit" phase of scheduling, as well as later phases
in CodeGen. Combined with other changes, this speeds up the
"instruction selection" phase of CodeGen by 10% in some cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9f1c8317a4676945b4961ddb9827ef2412551620 03-Jul-2008 Evan Cheng <evan.cheng@apple.com> - Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc.
- Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4406604047423576e36657c7ede266ca42e79642 01-Jul-2008 Dan Gohman <gohman@apple.com> Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating
the need for a flavor operand, and add a new SDNode subclass,
LabelSDNode, for use with them to eliminate the need for a label id
operand.

Change instruction selection to let these label nodes through
unmodified instead of creating copies of them. Teach the MachineInstr
emitter how to emit a MachineInstr directly from an ISD label node.

This avoids the need for allocating SDNodes for the label id and
flavor value, as well as SDNodes for each of the post-isel label,
label id, and label flavor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1baa88e3de8947b02d9ef4caa73e5860f048ec6e 29-May-2008 Dan Gohman <gohman@apple.com> Prune and tidy #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
703bfe69092e8da79fbef2fc5ca07b805ad9f753 06-May-2008 Dan Gohman <gohman@apple.com> Fix a broken doxygen comment, and reword it for clarity.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
34cd4a484e532cc463fd5a4bf59b88d13c5467c1 05-May-2008 Evan Cheng <evan.cheng@apple.com> Fix more -Wshorten-64-to-32 warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
36b5c1338a03453ba1c110b120269ca972fb65a3 07-Apr-2008 Dan Gohman <gohman@apple.com> Rename MemOperand to MachineMemOperand. This was suggested by
review feedback from Chris quite a while ago. No functionality
change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9180c8e3cfd12abd21242768db05072a209ca6e7 29-Mar-2008 Evan Cheng <evan.cheng@apple.com> Cosmetic change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b27087f5aa574f875598f4a309b7dd687c64a455 13-Mar-2008 Evan Cheng <evan.cheng@apple.com> Refactor some code out of MachineSink into a MachineInstr query.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
6130f66eaae89f8878590796977678afa8448926 05-Mar-2008 Evan Cheng <evan.cheng@apple.com> Refactor code. Remove duplicated functions that basically do the same thing as
findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
6f0d024a534af18d9e60b3ea757376cd8a3a980e 10-Feb-2008 Dan Gohman <gohman@apple.com> Rename MRegisterInfo to TargetRegisterInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
69de1932b350d7cdfc0ed1f4198d6f78c7822a02 06-Feb-2008 Dan Gohman <gohman@apple.com> Re-apply the memory operand changes, with a fix for the static
initializer problem, a minor tweak to the way the
DAGISelEmitter finds load/store nodes, and a renaming of the
new PseudoSourceValue objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
334dc1f58d617dcff969a2e107febaae42bbc883 31-Jan-2008 Evan Cheng <evan.cheng@apple.com> Revert 46556 and 46585. Dan please fix the PseudoSourceValue problem and re-commit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
bb81d97feb396a8bb21d074db1c57e9f66525f40 31-Jan-2008 Evan Cheng <evan.cheng@apple.com> Add an extra operand to LABEL nodes which distinguishes between debug, EH, or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c6c391daddbafa722d9ca87d18f204e9a6e617a3 31-Jan-2008 Dan Gohman <gohman@apple.com> Create a new class, MemOperand, for describing memory references
in the backend. Introduce a new SDNode type, MemOperandSDNode, for
holding a MemOperand in the SelectionDAG IR, and add a MemOperand
list to MachineInstr, and code to manage them. Remove the offset
field from SrcValueSDNode; uses of SrcValueSDNode that were using
it are all all using MemOperandSDNode now.

Also, begin updating some getLoad and getStore calls to use the
PseudoSourceValue objects.

Most of this was written by Florian Brander, some
reorganization and updating to TOT by me.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b487e7215c4f70f3d98f8fbc0a11eb119afc1f37 24-Jan-2008 Owen Anderson <resistor@mac.com> Move some functionality for adding flags to MachineInstr's into methods on MachineInstr rather than LiveVariables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
5080f4d9919d39b367891dc51e739c571a66036c 11-Jan-2008 Chris Lattner <sabre@nondot.org> rename MachineInstr::setInstrDescriptor -> setDesc


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45871 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
749c6f6b5ed301c84aac562e414486549d7b98eb 07-Jan-2008 Chris Lattner <sabre@nondot.org> rename TargetInstrDescriptor -> TargetInstrDesc.
Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
69244300b8a0112efb44b6273ecea4ca6264b8cf 07-Jan-2008 Chris Lattner <sabre@nondot.org> Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects
that it is cheap and efficient to get.

Move a variety of predicates from TargetInstrInfo into
TargetInstrDescriptor, which makes it much easier to query a predicate
when you don't have TII around. Now you can use MI->getDesc()->isBranch()
instead of going through TII, and this is much more efficient anyway. Not
all of the predicates have been moved over yet.

Update old code that used MI->getInstrDescriptor()->Flags to use the
new predicates in many places.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
62ed6b9ade63bf01717ce5274fa11e93e873d245 01-Jan-2008 Chris Lattner <sabre@nondot.org> Implement automatically updated def/use lists for all MachineInstr register
operands. The lists are currently kept in MachineRegisterInfo, but it does
not yet provide an iterator interface to them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
f20c1a497fe3922ac718429d65a5fe396890575e 31-Dec-2007 Chris Lattner <sabre@nondot.org> properly encapsulate the parent field of MBB and MI with get/set accessors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
f73823000e2d5d6e1cf65bdf5a107297e18d35fb 30-Dec-2007 Chris Lattner <sabre@nondot.org> More cleanups for MachineOperand:
- Eliminate the static "print" method for operands, moving it
into MachineOperand::print.
- Change various set* methods for register flags to take a bool
for the value to set it to. Remove unset* methods.
- Group methods more logically by operand flavor in MachineOperand.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e3087890ac7f2fcf4697f8e09091e9a384311b9c 30-Dec-2007 Chris Lattner <sabre@nondot.org> MachineOperand:
- Add getParent() accessors.
- Move SubReg out of the AuxInfo union, to make way for future changes.
- Remove the getImmedValue/setImmedValue methods.
- in some MachineOperand::Create* methods, stop initializing fields that are dead.

MachineInstr:
- Delete one copy of the MachineInstr printing code, now there is only one dump
format and one copy of the code.
- Make MachineOperand use the parent field to get info about preg register names if
no target info is otherwise available.
- Move def/use/kill/dead flag printing to the machineoperand printer, so they are
always printed for an operand.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e12d6abfdfc5141b2001f0c369a0e1525315b9c0 30-Dec-2007 Chris Lattner <sabre@nondot.org> make machine operands fatter: give each one an up-pointer to the
machineinstr that owns it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
103a64318bb716d68a4248996466900411d789be 30-Dec-2007 Chris Lattner <sabre@nondot.org> split machineoperand out into its own header file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ece6737f1510080ff655798cf2256d856ea84797 30-Dec-2007 Chris Lattner <sabre@nondot.org> remove unneeded #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b4e48cb096d6fd0761c95cba013cc230ee62fdeb 30-Dec-2007 Chris Lattner <sabre@nondot.org> remove a bunch of now-dead methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c672a1fb048fafc1fbaa9a900fb56bec3cadc8cc 30-Dec-2007 Chris Lattner <sabre@nondot.org> make offset operand optional.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
39697a83b5ebb857263fc8b9a83ea1834e9d7fe4 30-Dec-2007 Chris Lattner <sabre@nondot.org> Shrinkify the machine operand creation method names.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e86d0d089e787ca5369f7ae013caa976cb1c193e 30-Dec-2007 Chris Lattner <sabre@nondot.org> 1. Make a static MachineOperand::create* method for every
operand type.
2. Move these create methods below the accessors.
3. Simplify all the MachineInstr::add* methods to use these.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a4161ee99478e7f8f9e33481e1c0dc79f0b4bd7d 30-Dec-2007 Chris Lattner <sabre@nondot.org> simplify some code by factoring operand construction better.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7ed47a13356daed2a34cd2209a31f92552e3bdd8 29-Dec-2007 Chris Lattner <sabre@nondot.org> Don't attribute in file headers anymore. See llvmdev for the
discussion of this change. Boy are my fingers tired. ;-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
38b0be01ded327a50ac600dd7710016b2326d841 17-Nov-2007 Evan Cheng <evan.cheng@apple.com> Shrinkfy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c498b0281fa81bc213ad1a1228664d480936c0e6 14-Nov-2007 Evan Cheng <evan.cheng@apple.com> Clean up sub-register implementation by moving subReg information back to
MachineOperand auxInfo. Previous clunky implementation uses an external map
to track sub-register uses. That works because register allocator uses
a new virtual register for each spilled use. With interval splitting (coming
soon), we may have multiple uses of the same register some of which are
of using different sub-registers from others. It's too fragile to constantly
update the information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
fa9457276a2174aaf302240dd32d89900ad021ae 13-Oct-2007 Evan Cheng <evan.cheng@apple.com> Optionally create a MachineInstr without default implicit operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
32dfbeada7292167bb488f36a71a5a6a519ddaff 12-Oct-2007 Evan Cheng <evan.cheng@apple.com> EXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG like
(almost) a register copy. However, it always coalesced to the register of the
RHS (the super-register). All uses of the result of a EXTRACT_SUBREG are sub-
register uses which adds subtle complications to load folding, spiller rewrite,
etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
92dfe2001e96f6e2b6d327e8816f38033f88b295 14-Sep-2007 Dan Gohman <gohman@apple.com> Remove isReg, isImm, and isMBB, and change all their users to use
isRegister, isImmediate, and isMachineBasicBlock, which are equivalent,
and more popular.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cb648f90a26eb05ae8d508d500ca12881df50824 14-Sep-2007 Dan Gohman <gohman@apple.com> Remove spurious consts. This fixes warnings with compilers that
are strict about such things.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
42a0f9a4fb74bf11fdc36a73772b7c9b744cc867 30-Aug-2007 Evan Cheng <evan.cheng@apple.com> Added CreateFrameIndex to create a FrameIndex MachineOperand without a MachineInstr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
6f95014158208ad6cd6f6d1996c821fca61d7915 26-Jul-2007 Christopher Lamb <christopher.lamb@gmail.com> Remove subreg index from MachineInstr's and also keep vregs as unsigned when adding operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ec82dc9a7c7172c6905d242523d13079a3e94427 18-Jun-2007 Dan Gohman <gohman@apple.com> Add keyword explicit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
2d7a47a5dbc04f2dc3857d723ae1983606bf8a69 15-Jun-2007 Evan Cheng <evan.cheng@apple.com> No longer needed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
f277ee4be7edabb759a7f78138b693d72d0c263f 29-May-2007 Evan Cheng <evan.cheng@apple.com> Add missing const qualifiers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1bccb49082a8049d296dcdb2a741929437b6176f 16-May-2007 Evan Cheng <evan.cheng@apple.com> Rename M_PREDICATED to M_PREDICABLE; Move TargetInstrInfo::isPredicatable() to MachineInstr::isPredicable().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
19e3f31f6acd9f5ce3cdd8372d4cb598ed921f95 15-May-2007 Evan Cheng <evan.cheng@apple.com> Added getNumExplicitOperands and findFirstPredOperand.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7bf1c272ab27297a7bbab329de3f17ddb26e02a3 01-May-2007 Nate Begeman <natebegeman@mac.com> llvm bug #1350, parts 1, 2, and 3.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
faa510726f4b40aa4495e60e4d341c6467e3fb01 26-Apr-2007 Evan Cheng <evan.cheng@apple.com> Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cdee1c4272d4c87292116fe3edf1bc85f50d6040 25-Apr-2007 Evan Cheng <evan.cheng@apple.com> Minor speed tweak.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
32eb1f1ca4220d2f24916e587ad7e8574d7d82a1 27-Mar-2007 Evan Cheng <evan.cheng@apple.com> Change findRegisterUseOperand() to return operand index instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
659ba970e3d64465cfa1abc4d7d3f9595b5b0878 27-Feb-2007 Evan Cheng <evan.cheng@apple.com> Pass IsImp, IsKill, and IsDead to ChangeToRegister.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
76d7e76c15c258ec4a71fd75a2a32bca3a5e5e27 23-Feb-2007 Evan Cheng <evan.cheng@apple.com> Use findRegisterUseOperand to find a kill of particular register.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b371f457b0ea4a652a9f526ba4375c80ae542252 19-Feb-2007 Evan Cheng <evan.cheng@apple.com> Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a284cbf667e11660840dc7bae3ee9eeaa3c7cbd2 19-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1207:
Revert patches that caused the problem. Evan, please investigate and reapply
when you've discovered the problem.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
094e3e553f57b877153828e420cd2dacfb2b364c 17-Feb-2007 Evan Cheng <evan.cheng@apple.com> Added findRegisterDefOperand().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
5c7e326585f3a543388ba871c3425f7664cd9143 17-Dec-2006 Bill Wendling <isanbard@gmail.com> Added an automatic cast to "std::ostream*" etc. from OStream. We then can
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4b607748d86b44cc59e5cf3eee194dfd9b0fcd86 16-Dec-2006 Jeff Cohen <jeffc@jolt-lang.org> The best unbreakage yet, addressing Bill's concerns.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c21c5eeb4f56f160e79522df2d3aab5cfe73c05d 15-Dec-2006 Jeff Cohen <jeffc@jolt-lang.org> An even better unbreakage...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
d5c0f439924ec6c839c3c6ba16122e460a296336 15-Dec-2006 Jeff Cohen <jeffc@jolt-lang.org> Complete unbreak of VC++ (Chris identified the simple fix).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e81561909d128c6e2d8033cb5465a49b2596b26a 07-Dec-2006 Bill Wendling <isanbard@gmail.com> Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
now cerr, cout, and NullStream resp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
576d123e130a8291669dd2384a3735cc4933fd00 06-Dec-2006 Evan Cheng <evan.cheng@apple.com> Move copyKillDeadInfo out-of-line. Add findRegisterUseOperand().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
67f660cb080965ea93ed6d7265a67100f2fe38e4 30-Nov-2006 Evan Cheng <evan.cheng@apple.com> - MachineInstr now keeps a ptr to TargetInstrDescriptor instead of Opcode.
- Remove the ugly TargetInstrDescriptors hack.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b5ebf15b2b2ce8989caf1a1114b05d80b0f9bd48 28-Nov-2006 Bill Wendling <isanbard@gmail.com> Added a temporary hack to get the llvm-streams to work for future checkins.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c0f64ffab93d11fb27a3b8a0707b77400918a20e 28-Nov-2006 Evan Cheng <evan.cheng@apple.com> Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead
of opcode and number of operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a138c6c73a9e594d82958af6b9ee01108e05e7ac 20-Nov-2006 Chris Lattner <sabre@nondot.org> setOperand should not zap the operand list or add implicit operands to an
instruction. Doing so breaks the FP stackifier, the alpha branch selector
the sparc fpmover.

This fixes PR1012 and CodeGen/X86/fp-stack-compare.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1ccc4684f3413d1f176a2c7a867545ce03b6414c 18-Nov-2006 Chris Lattner <sabre@nondot.org> Implement operator<< for machine basic blocks to make it easier to dump them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
dbf58837c4f18f54b2871b1cdcbbbc7d631a1c0c 16-Nov-2006 Evan Cheng <evan.cheng@apple.com> ChangeToRegister should clear IsImp bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9a00279988612d0f960fb8d43e4ccfcab89e0e14 15-Nov-2006 Evan Cheng <evan.cheng@apple.com> Add copyKillDeadInfo to copy kill / dead info; other minor updates.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
d7de496b23fca8145f777a56281457bf64e8bbad 14-Nov-2006 Evan Cheng <evan.cheng@apple.com> - Let MachineInstr ctors add implicit def and use operands. Other operands
will be inserted before these operands. If the opcode changes (by
setOpcode), the implicit operands are updated as well.
- Added IsKill, IsDead fields to MachineOperand in preparation for changes
that move kill / dead info to MachineInstr's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
3ba433a7e85c4f5b943ae6585a0327f4ccd461a0 11-Nov-2006 Evan Cheng <evan.cheng@apple.com> Add methods to add implicit def use operands to a MI.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
8097ef3d7b8d429b04e23552d8ab8d0855c41563 10-Nov-2006 Jim Laskey <jlaskey@mac.com> Shut up the warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e7680cef84c42bc2ee68904bc2bd0b30a312da08 10-Nov-2006 Evan Cheng <evan.cheng@apple.com> Add implicit def / use operands to MachineInstr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4976dfb4b9d6dd3c138736e93b17e31e0f8e9be6 28-Oct-2006 Chris Lattner <sabre@nondot.org> add a method for hacking on JTIdx's


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
846c1b49365be588b5aaddd02916e46c2422ae6f 21-Oct-2006 Chris Lattner <sabre@nondot.org> typo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
fcfcb6cb502fd4562b57425a5802dc52f358c451 21-Oct-2006 Chris Lattner <sabre@nondot.org> add isIdenticalTo method to machineinstr/operand.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
986cc38613e7859ab6c9ab8aa9fc2e686f8c2ab4 20-Oct-2006 Chris Lattner <sabre@nondot.org> add method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b6bb7e1ffe7a1324e70ec410b3a06f008f37b072 06-Oct-2006 Chris Lattner <sabre@nondot.org> add an accessor


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
f89e2a941616681c93d4c52da05870f18660cada 05-Sep-2006 Evan Cheng <evan.cheng@apple.com> IsDef can only be accessed / set if operand is a register.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
04957ac67c32538c6a1a9b4eddad65b4ad734b66 05-Sep-2006 Evan Cheng <evan.cheng@apple.com> Initialize IsDef of all non-register MachineOperand to false.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
09e460662a8d7328da1b938d5581a6ef3740b51d 05-Sep-2006 Chris Lattner <sabre@nondot.org> Completely eliminate def&use operands. Now a register operand is EITHER a
def operand or a use operand.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
171ce440aa1eca773a4025362efb2b498c562d71 05-Sep-2006 Chris Lattner <sabre@nondot.org> ADd getImm/setImm methods


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
930ab738c7d323cf9552bba2652af6aa361e9967 05-Sep-2006 Chris Lattner <sabre@nondot.org> Add some short-hand accessors


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
d74ea2bbd8bb630331f35ead42d385249bd42af8 24-May-2006 Chris Lattner <sabre@nondot.org> Patches to make the LLVM sources more -pedantic clean. Patch provided
by Anton Korobeynikov! This is a step towards closing PR786.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
6e994b74921d8519472a087246d7a56731e958d4 04-May-2006 Chris Lattner <sabre@nondot.org> Final pass of minor cleanups for MachineInstr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
943b5e117fe9a087f9aa529a2632c2d32cc22374 04-May-2006 Chris Lattner <sabre@nondot.org> Remove redundancy and a level of indirection when creating machine operands


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
02597f3b8826e9760cee11ea07b4cfc5f260f736 04-May-2006 Chris Lattner <sabre@nondot.org> Move register numbers out of "extra" into "contents". Other minor cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
8b915b4ed2c6e43413937ac71c0cbcf476ad1a98 04-May-2006 Chris Lattner <sabre@nondot.org> Remove and simplify some more machineinstr/machineoperand stuff.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
2d90ac7ca6117d3b160dde8a4f322c1079a6ffce 04-May-2006 Chris Lattner <sabre@nondot.org> Rename MO_VirtualRegister -> MO_Register. Clean up immediate handling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
68ab4c6367f34e6320c5f0ce22b85f800bdcfd81 04-May-2006 Chris Lattner <sabre@nondot.org> remove hasAllocatedReg


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e53f4a055f74bded20d6129b4724ddd17fd199f6 04-May-2006 Chris Lattner <sabre@nondot.org> Move some methods out of MachineInstr into MachineOperand


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
63b3d7113d93fda622c4954c6b1d046ce029044e 04-May-2006 Chris Lattner <sabre@nondot.org> There shalt be only one "immediate" operand type!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ceb408f6a263e319683209ae5c6f8d1e3e4d9b69 04-May-2006 Chris Lattner <sabre@nondot.org> Change "value" in MachineOperand to be a GlobalValue, as that is the only
thing that can be in it. Remove a dead method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4efeab208cf0fe7ae2f68bcdd1264a8fdb18826c 04-May-2006 Chris Lattner <sabre@nondot.org> Remove a bunch more dead V9 specific stuff


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ea50fabfd4e5fad25a25b312f64a9b2a53363586 04-May-2006 Chris Lattner <sabre@nondot.org> Remove a bunch more SparcV9 specific stuff


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
34fb2cad46adb39f3c2cc705fbbf439a383d0f65 04-May-2006 Chris Lattner <sabre@nondot.org> Remove some more V9-specific stuff.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
10f3597c4e0c13ecf0272b7ca0be741a91ade48c 04-May-2006 Chris Lattner <sabre@nondot.org> Remove some more unused stuff from MachineInstr that was leftover from V9.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
37efe6764568a3829fee26aba532283131d1a104 22-Apr-2006 Nate Begeman <natebegeman@mac.com> JumpTable support! What this represents is working asm and jit support for
x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
05b9773300ca01e7d42fdd882ee0a4981e72d986 20-Apr-2006 Chris Lattner <sabre@nondot.org> Remove some of the obvious v9-specific cruft


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
6b560918426182d2b46b899d609911d49f6739f7 17-Apr-2006 Chris Lattner <sabre@nondot.org> Add some convenience methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
404cb4f9fa2df50eac4d84b8a77c84a92188c6d5 25-Feb-2006 Evan Cheng <evan.cheng@apple.com> Added an offset field to ConstantPoolSDNode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
410354fe0c052141dadeca939395743f8dd58e38 22-Feb-2006 Chris Lattner <sabre@nondot.org> Make the LLVM headers "-ansi -pedantic -Wno-long-long" clean.

Patch by Martin Partel!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e84d2066ce4a0d3e753e3171333a69f4081dcd56 01-Aug-2005 Chris Lattner <sabre@nondot.org> Mark these as V9 specific


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
00876a2808f1a8061f7e0852c7949fc5074ecb04 22-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Convert tabs to spaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ea61c358720aa6c7a159d51658b34276316aa841 21-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
3bdfdfd10f73dcf17aa3381679e9be3e08a16d78 11-Apr-2005 Jeff Cohen <jeffc@jolt-lang.org> Eliminate major source of VC++ "possible loss of data" warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9696a90ee66e1c6c818c8de3d9ffc32732d9d82f 10-Apr-2005 Duraid Madina <duraid@octopus.com.au> * store immediate values as int64_t, not int. come on, we should be happy
when there are immediates, let's not worry about the memory overhead of
this :)

* add addU64Imm(uint64_t val) to machineinstrbuilder

(seriously: this seems required to support 64-bit immediates cleanly. if it
_really_ gets on your nerves, feel free to pull it out ;) )

coming up next week: "all your floating point constants are belong to us"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7b55d4fce2c2b8eebbb1fc654400c7d46fd6bfba 19-Nov-2004 Chris Lattner <sabre@nondot.org> Instead of storing std::string's for ExternalSymbol references, rely on the
fact that all ExternalSymbols are actually string literals with static storage.
Thus we don't have to do anything special to hold them and we certainly don't
have to copy string data around.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1fca5ff62bb2ecb5bfc8974f4dbfc56e9d3ca721 27-Oct-2004 Chris Lattner <sabre@nondot.org> Convert 'struct' to 'class' in various places to adhere to the coding standards
and work better with VC++. Patch contributed by Morten Ofstad!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4caf5d563d0e5e6a2ed56bb537cb911d99beaa4c 18-Oct-2004 Chris Lattner <sabre@nondot.org> Fix miscompilations in the SparcV9 backend that were induced by this patch:
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20041011/019311.html


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ca4f6ebefc4dc55d13a0182a0be5b02e92fc63ea 15-Oct-2004 Chris Lattner <sabre@nondot.org> Allow machine operands to represent global variables with offsets. This is
useful when you have a reference like:

int A[100];

void foo() { A[10] = 1; }

In this case, &A[10] is a single constant and should be treated as such.

Only MO_GlobalAddress and MO_ExternalSymbol are allowed to use this field, no
other operand type is.

This is another fine patch contributed by Jeff Cohen!!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
551ccae044b0ff658fe629dd67edd5ffe75d10e8 02-Sep-2004 Reid Spencer <rspencer@reidspencer.com> Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
dc4a4922d32b470acd68498d41e3b8130cf1e74e 31-Jul-2004 Chris Lattner <sabre@nondot.org> Add some machine CFG related stuff


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c49c872a1ac4ccd13ebabd161597aef6de909077 19-Jul-2004 Chris Lattner <sabre@nondot.org> Fix comment


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
81e26ce1dad4f9093ee60aaa09cee839d02d9a91 19-Jul-2004 Chris Lattner <sabre@nondot.org> Delete 4 methods, make clients use hte mark* methods directly


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b140762a45d21aaed054f15adaff0fc2274d939d 25-Jun-2004 Tanya Lattner <tonic@nondot.org> Made a fix so that you can print out MachineInstrs that belong to a MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
0c63e03e04d3982e1913479bba404c3debc9a27e 24-May-2004 Tanya Lattner <tonic@nondot.org> Changed clone to be const.
Changed copy constructor to set parent, prev, and next pointers to null.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b5159ed0cb7943e5938782f7693beb18342165ce 23-May-2004 Tanya Lattner <tonic@nondot.org> Fixed up my changes to add support for cloning Machine Instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
466b534a570f574ed485d875bbca8454f68dcb52 23-May-2004 Tanya Lattner <tonic@nondot.org> Adding support to clone MachineInstr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
5a509c8225063478ee04671570f6975ce29f401d 16-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Include <string> for compatibility with gcc 3.0.x (the system compiler on
Debian.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9cccb8aec7b3ebfa5555322a094fdf6c334512a6 04-Mar-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Fix bug introduced by yesterday's changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c54839573cd9ffa6af33dc5190cc40d498534585 03-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Make MachineOperand's value named 'contents'. Make really, really sure
it is always completely initialized and copied.
Also, fix up many comments and asserts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7598a1a9a8ad9b974e428e24606c108aa3ba1431 29-Feb-2004 Chris Lattner <sabre@nondot.org> Remove unneeded #include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
6a8a9b4413cd595c8322e7ebb7d42cbb04ca6933 29-Feb-2004 Chris Lattner <sabre@nondot.org> Continue Alkis's int64_t cleanup. This makes all of the immediate related
methods take an int or unsigned value instead of int64_t.

Also, add an 'addImm' method to the MachineInstrBuilder class, because the
fact that the hardware sign or zero extends it does not/should not matter
to the code generator. Once the old sparc backend is removed the difference
can be eliminated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
bd16ef84bfecc4b057ab3292b83f830e78760515 27-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Make MachineOperand's immediate value an int and save 4 bytes out of
each MachineOperand. We don't really need an int64_t immediate :-).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
890f92328d5478e050d2eba8f4de24737a04a812 22-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Move MOTy::UseType enum into MachineOperand. This eliminates the
switch statements in the constructors and simplifies the
implementation of the getUseType() member function. You will have to
specify defs using MachineOperand::Def instead of MOTy::Def though
(similarly for Use and UseAndDef).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e33da36cbd138b2921057da966275a76c8792235 22-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Fix silly bug in implementation of getUseType(). Thanks Misha.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
f216421181393fd3993b47960de44ad448710fb9 22-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> When folding memory operands in machine instructions be careful to
leave register operands with the same use/def flags as the original
instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
aad5c0505183a5b7913f1a443a1f0650122551cc 16-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add LeakDetection to MachineInstr.

Move out of line member functions of MachineBasicBlock to
MachineBasicBlock.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
be766c72464116a445a02b542a450c4274bab5d0 13-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Remove getAllocatedRegNum(). Use getReg() instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
94dc07728f091c652f0a8059aba6dce5018485ee 12-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Move ilist_trairs<MachineInstr> in MachineBasicBlock.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ab8672c8bb83e722b856eac67863542ea7e0cbb2 12-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add parent pointer to MachineInstr that points to owning
MachineBasicBlock. Also change opcode to a short and numImplicitRefs
to an unsigned char so that overall MachineInstr's size stays the
same.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
2a90ba60175f93e7438165d8423100aa573c16c5 12-Feb-2004 Chris Lattner <sabre@nondot.org> Rename the opCode instance variable to Opcode


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9fc77d1358b4d5c2d71ce7b94bafacbbb35956c6 12-Feb-2004 Chris Lattner <sabre@nondot.org> Remove a dead field from MachineInstr!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
0eda78a3729a917592a89ede933d7b7df82e0dc3 12-Feb-2004 Brian Gaeke <gaeke@uiuc.edu> Add one more doxygen comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
56aa531f93d7674c534c145180e3902e40602b57 12-Feb-2004 Brian Gaeke <gaeke@uiuc.edu> Express one of MachineOperand's many constructors in terms of another, by means of default arguments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
2d58f0691ec71f5c38b93c969c4bfdcd536491a8 12-Feb-2004 Brian Gaeke <gaeke@uiuc.edu> Remove these MachineOpCodeFlags and their accessor - they are never set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c0b9dc5be79f009d260edb5cd5e1d8346587aaa2 12-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Change MachineBasicBlock's vector of MachineInstr pointers into an
ilist of MachineInstr objects. This allows constant time removal and
insertion of MachineInstr instances from anywhere in each
MachineBasicBlock. It also allows for constant time splicing of
MachineInstrs into or out of MachineBasicBlocks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cd0b3a90aa34bd42d75d8d86f74ca4972145781d 12-Feb-2004 Brian Gaeke <gaeke@uiuc.edu> Remove getOpCode(). Help doxygenify some comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
d6b5e5f637c87c156a5464cf23ecc7419ae7254f 10-Feb-2004 Chris Lattner <sabre@nondot.org> Urg, the X86 backend DOES use virtual register operands. :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
376ad9fa9f66facc7100186f0a1f56c1be858ff5 10-Feb-2004 Chris Lattner <sabre@nondot.org> Remove and simplify some of the bewildering collection of isFOORegister
methods which have strangely different semantics in different backends,
and noone knew what any did.

Getting rid of these ALSO allows the dependence of MachineInstr.h on
MRegisterInfo.h to be removed, which makes me much happier, and probably
alkis too. :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9f42dd5472097c8657eaea829ebd384256d0f669 10-Feb-2004 Chris Lattner <sabre@nondot.org> Eliminate MachineOperand::isPhysicalRegister. The X86 backend should use
MRegisterInfo::isPhysicalRegister(MO.getReg()) and the Sparc backend should
use isMachineRegister()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b2e5db94cfb36da77264d9b063e674e907d8458d 10-Feb-2004 Chris Lattner <sabre@nondot.org> Simplify condition, this does not change the predicate at all though


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
14be64018fb38d1fa535b9cd12d11371f4eba3b5 04-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Modify the two address instruction pass to remove the duplicate
operand of the instruction and thus simplify the register allocation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4e7854407ced8e2160592675918312a20cfb7cde 03-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> When an instruction like: A += B had both A and B virtual registers
spilled, A was loaded from its stack location twice. This fixes the bug.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9fe7602862328c0081106709e0a8f03316dc845b 03-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Revert changes. Will implement this using a different set of primitives


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
782ce955b2553305d9958a17d6482fe87243303d 02-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add MachineOperand::setDef() and MachineOperand::setUse() so that the
TwoAddressInstructionPass can correctly update use/def information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
721b4e5715d97dedce0a4f0206c7d8c0b5af9ca3 14-Dec-2003 Alkis Evlogimenos <alkis@evlogimenos.com> I wonder how this didn't cause any tests to fail...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4d7af65903cbc858464362e70a6adf499982ec8a 14-Dec-2003 Alkis Evlogimenos <alkis@evlogimenos.com> Change interface of MachineOperand as follows:

a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse()
b) add isUse(), isDef()
c) rename opHiBits32() to isHiBits32(),
opLoBits32() to isLoBits32(),
opHiBits64() to isHiBits64(),
opLoBits64() to isLoBits64().

This results to much more readable code, for example compare
"op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used
very often in the code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
786a518f47fca5521d036031f78e3f2470a7a49a 01-Dec-2003 Chris Lattner <sabre@nondot.org> Add some "useful" methods


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
d0fde30ce850b78371fd1386338350591f9ff494 11-Nov-2003 Brian Gaeke <gaeke@uiuc.edu> Put all LLVM code into the llvm namespace, as per bug 109.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
6fbcc26f1460eaee4e0eb8b426fc1ff0c7af11be 20-Oct-2003 John Criswell <criswell@uiuc.edu> Added LLVM copyright header (for lack of a better term).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
48486893f46d2e12e926682a3ecb908716bc66c4 30-Sep-2003 Chris Lattner <sabre@nondot.org> Standardize header file comments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ef6a6a69ff1e1b709d0acb315b9f6c926c67a778 22-Aug-2003 Misha Brukman <brukman+llvm@gmail.com> The word `dependent' has no `a'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
5e8b77e37556ee6ae2cdc49405b074b82b2a1c74 06-Aug-2003 Chris Lattner <sabre@nondot.org> Completely eliminate the per-machine-instruction regsUsed set.

This substantially shrinks the size of each machine instruction, which should
make allocation faster and the cache footprint of the machine code lighter.

Here are some timings for code generation of the larger benchmarks we have.
This are timings of code generation phases of the X86 JIT, when compiled in
debug mode:

Before After Diff
164.gzip:
InstSel 0.0878 0.0722 -21.6%
RegAlloc 0.2031 0.1757 -15.6%
TOTAL 0.5585 0.4999 -11.7%
Ptrdist-bc:
InstSel 0.0878 0.0722 -21.6%
RegAlloc 0.2070 0.1933 - 7.1%
TOTAL 0.6972 0.6464 - 7.9%
197.parser:
InstSel 0.2148 0.2148 - 0.0%
RegAlloc 0.4941 0.4277 -15.5%
TOTAL 1.3749 1.2851 - 7.0%
175.vpr:
InstSel 0.2519 0.2109 -19.4%
RegAlloc 0.5976 0.5663 - 5.5%
TOTAL 1.6933 1.6347 - 3.5%
254.gap:
InstSel 1.1328 0.9921 -14.2%
RegAlloc 2.6933 2.4804 - 8.6%
TOTAL 7.7871 7.2499 - 7.4%


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
610234d5c9582e2645738ad9c347b855962122b7 05-Aug-2003 Chris Lattner <sabre@nondot.org> Do not insert physical regsiters into the regsUsed set


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e057ca61b1571e558a0b02f72570bc859617ecb4 05-Aug-2003 Chris Lattner <sabre@nondot.org> Remove unused method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a2dd745613fdb9deff6037285f4efc20248c7b3d 05-Aug-2003 Chris Lattner <sabre@nondot.org> All callers of these methods actually wanted them to preserve the flags,
so get rid of the def/use parameters that were getting passed in.

**** This now changes the semantics of these methods to preserve the flags,
not clobber them!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b1e6f051108759c26d38ba0f64736f567d46f7a1 25-Jul-2003 Vikram S. Adve <vadve@cs.uiuc.edu> Add an assertion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
627eb31cd791f808eaa048478d01222577a30a1a 10-Jul-2003 Vikram S. Adve <vadve@cs.uiuc.edu> Change interface to MachineInstr::substituteValue to specify more precisely
which args can be substituted: defsOnly, defsAndUses or usesOnly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
daee2b492fdf706697429f036b37a46ecc84c2fc 02-Jul-2003 Vikram S. Adve <vadve@cs.uiuc.edu> Leak fix: delete old objects before reallocation in an assignment operator!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
3889a2cb05c36f30050941679d5fd55d45e6a3ed 22-Jun-2003 Chris Lattner <sabre@nondot.org> Remove a ton of extraneous #includes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
be583b914d8156b99d3da264d5adca37fee8dbc9 11-Jun-2003 John Criswell <criswell@uiuc.edu> Included assert.h so that the code compiles under newer versions of GCC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b05497e0ca1ba2e7f57b792cc160e5d1c8579582 03-Jun-2003 Chris Lattner <sabre@nondot.org> Minor cleanups:
* Document the MOTy namespace correctly for doxygen
* Eliminate usage of the MachineOpCode typedef, which should eventually
be eliminated entirely.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9452b0797a80001920576d7e2ef4af05242cba69 03-Jun-2003 Chris Lattner <sabre@nondot.org> Remove NonCopyable base class to clean up doxygen output


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9f495b54fa94dba4e0be59ba9736c7cf18d996d9 31-May-2003 Vikram S. Adve <vadve@cs.uiuc.edu> Support for annul/pred and other future flags on op codes.
Support for recording the physical register for implcit references.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a22eace55bb17af2728ca494b6d4557bdad82a09 27-May-2003 Vikram S. Adve <vadve@cs.uiuc.edu> Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly()
and related functions and flags. Fixed several bugs where only
"isDef" was being checked, not "isDefAndUse".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b66fdc2934133872db1407bee749b69a4b59b2b7 15-Jan-2003 Chris Lattner <sabre@nondot.org> Remove obsolete ctor


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4d69c8e3691e7e58db0e9f74399490d81f2770b4 15-Jan-2003 Chris Lattner <sabre@nondot.org> Add support for the CC registers for Sparc BE


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cb09cc268b510e99d40b3518c5a390369ae3ffd5 14-Jan-2003 Chris Lattner <sabre@nondot.org> Move annotation to support library


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
3c8cbe6567c94fdd24ec9b2b8b5c5cc1b01a8c58 13-Jan-2003 Chris Lattner <sabre@nondot.org> * Add 3 new types of MachineOperand: ConstantPoolIndex ExternalSymbol and GlobalAddress's
* Add new isPCRelative modifier flag which should be used in place of MO_PCRelativeDisp type.
* Fix a bug in isPhysicalRegister
* Add new setOpcode and RemoveOperand methods


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7ad6be7b01a902f532eebb607306f7b3f4627718 28-Dec-2002 Chris Lattner <sabre@nondot.org> * Frame indices are signed
* Cluster modification methods together


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
56cf63f2f6db6ae47dec06489d09011ef6b0ee02 25-Dec-2002 Chris Lattner <sabre@nondot.org> *** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c583175e720653182d48a6924948df8a49aaa8fd 15-Dec-2002 Chris Lattner <sabre@nondot.org> Add new opIsUse method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
8cbfc75d17ee1c274116dc1aca3bc8e8ed2326c9 15-Dec-2002 Chris Lattner <sabre@nondot.org> Add capability to have a MachineBasicBlock as an operand to a MachineInstr
Add a bunch of methods to MachineOperand is* to reduce usage of MO_foo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
35880f394fd547b9bec1e92e92ac68db9a931a58 22-Nov-2002 Misha Brukman <brukman+llvm@gmail.com> Instead of checking op.getType() against MO_VirtualRegister and
MO_MachineRegister, we no longer distinguish Virtual vs. Machine registers
externally, they're ALL registers, all equal.

Registers are only differentiated whether they are >=
MRegisterInfo::FirstVirtual or not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
ce3d3eadef1c2a72a0a6e16735e5091fb1e6dc16 18-Nov-2002 Chris Lattner <sabre@nondot.org> Add helper method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
af55be15dfa5321f470ce9734fabd858f5af7a88 18-Nov-2002 Chris Lattner <sabre@nondot.org> Print is const!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
23e6bba592af68ba991ee6900978e81eb21a08af 17-Nov-2002 Chris Lattner <sabre@nondot.org> Finish enumating code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7e1a53b404163af0880c2d395f3b579e3fa1392d 17-Nov-2002 Chris Lattner <sabre@nondot.org> Remove unused methods


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
32f3d08cdebd8941f2149a8f32acd45bd224ca8d 17-Nov-2002 Chris Lattner <sabre@nondot.org> Convert to use an enum to access def/use/use&def information. These make
reading code much easier than just seeing "true, false" especially when
default parameters default one but not both arguments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
8f211a4ab013d4a3324162b972a5b4d075cbd20e 30-Oct-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Bug fix in setting an implicit ref.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9cc361579b6a0aad9a71dc617eedd4d909d48acf 30-Oct-2002 Chris Lattner <sabre@nondot.org> Allow BuildMI that helps automate construction of SSA information


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
fa78fbf446b505767e838f9c188707183c57fc9c 30-Oct-2002 Chris Lattner <sabre@nondot.org> Add support for structured printing


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7db458fb0768059f050d3a0f1a26818fa8e22712 30-Oct-2002 Chris Lattner <sabre@nondot.org> Add capability to have machine instruction autoinsert when it is created


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a2bae305fb5a870c4ef753ed290a7ddea73ec82b 29-Oct-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Remove separate vector of implicit refs from MachineInstr, and
instead record them as extra operands in the operands[] vector.
Also, move CallArgsDescriptor into this class instead of making it an
annotation on the machine instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9a8e4121aa4121100fb562134c098aeb38f70b37 28-Oct-2002 Chris Lattner <sabre@nondot.org> Remove all traces of the "Opcode Mask" field in the MachineInstr class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b98a53f201fd3652f4b7e37d1f2cb3b9b0775d45 28-Oct-2002 Chris Lattner <sabre@nondot.org> Remove more default arguments that are never used


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7279122e668816bed0d4f38d3392bbab0140fad0 28-Oct-2002 Chris Lattner <sabre@nondot.org> Remove default operands that are never used


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
413746e9833d97a8b463ef6a788aa326cf3829a2 28-Oct-2002 Chris Lattner <sabre@nondot.org> * Make MachineOperand ctors private, so MachineOperand can only be created
by MachineInstr.
* Add a bunch of new methods to allow incremental addition of operands to the
machine instr instance.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
2f305989b395a0a8bf00c4b9dc140a6df051245e 28-Oct-2002 Chris Lattner <sabre@nondot.org> Remove two arguments that are never specified


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1294a7e9365a97b6447baad3c106814d7fe8abe7 28-Oct-2002 Chris Lattner <sabre@nondot.org> Remove typedef that is unneccesary


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
133f079c8cf966d2222c2dda2de56d2cc600497e 28-Oct-2002 Chris Lattner <sabre@nondot.org> Rename the redundant MachineOperand::getOperandType() to MachineOperand::getType()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
6d6c3f86186333037f2fd3fb001e8b2998c080d9 28-Oct-2002 Chris Lattner <sabre@nondot.org> Add new getOperandType(i) method to MachineInstr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
572f5c8c0cf66cd6f53dda255cd8c4d8f27d8505 28-Oct-2002 Chris Lattner <sabre@nondot.org> Fairly major overhaul of MachineInstr & Operand classes
- Inline methods that are mostly a single line anyway
- Eliminate several methods that were never called
- Group methods a bit more consistently


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
054c1f6cb6f3a680fe4b8447880ed960fd7fe441 28-Oct-2002 Chris Lattner <sabre@nondot.org> Make MachineInstr.h not #include MachineInstrInfo.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4a63b72df95b5c0d4af064cef19377f811ba6060 28-Oct-2002 Chris Lattner <sabre@nondot.org> Don't #include <Support/*>, #include "Support/*"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
27a08935ca4ccf2121c2cf4bfbf148e2382c7762 23-Oct-2002 Chris Lattner <sabre@nondot.org> - Two minor improvements to the MachineInstr class to reduce footprint and
overhead: Merge 3 parallel vectors into 1, change regsUsed hash_set to be a
bitvector. Sped up LLC a little less than 10% in a debug build!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1a33e6eb7477ecc015f3aadbd47f1c1434003a66 22-Oct-2002 Chris Lattner <sabre@nondot.org> Small space optimization: Make MachineOperands take 16 bytes instead of
20 on intel or 24 on sparc


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
756a55000be056a8c6e11adaa8c19d5a06d03291 21-Oct-2002 Chris Lattner <sabre@nondot.org> Remove a 'using' directives from a header file. Using directives cause
global changes, so aren't good for headers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e8b57ef2603ed522083dc18e559ca4e20abf22ae 20-Sep-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Add method MachineInstr::replace to rewrite a machine instruction in place.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
504fc5b7b5a9ffa9f82e95e7212015575030c7a7 16-Sep-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Add method MachineOperand::hasAllocatedReg().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a7710518dacb30dabf0c2f057b546dc7bcf37071 14-Aug-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Add method MachineInstr::substituteValue() which substitutes
one Value with another one in all operands and implicit references
of the machine instruction.

Also add method MachineOperand::getVRegValueOrNull().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cc367a3ea0d593aa1f70305316d3290dcf4bda02 09-Aug-2002 Chris Lattner <sabre@nondot.org> Do not add an extra vtable to EVERY machineinstr created.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3280 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
39d69009d015a5177303c9d8865143531e099314 25-Jul-2002 Chris Lattner <sabre@nondot.org> *** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3067 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
09ff1126dab045d68be7d9e8ae7ad0601002a718 24-Jul-2002 Chris Lattner <sabre@nondot.org> *** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
69cacd471093e38a51e0e637fca1a1768b935136 10-Jul-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Add support for marking each operand as a %hh, %hm, %lm or %lo.
Represent previous bools and these ones with flags in a single byte
per operand.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e086f4e8978ffa8cfa0fd172c3ef2a056c02c6f5 09-Jul-2002 Anand Shukla <ashukla@cs.uiuc.edu> added std:: to hash_set


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
53e9983790f497519919385e60fd2a942d75f652 09-Jul-2002 Chris Lattner <sabre@nondot.org> Include header in the compiler-neutral location


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7a4be9580e095ca4bffd16ec6ec4882f6270fb09 09-Jul-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.{cpp,h}.
An (explicit or implicit) operand may now be both a def and a use.
Also add a set of regs used by each instruction.
dump() no longer takes an optional argument, which doesn't work in gdb.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
8eb04905e84470a0baff867fa99b0de097f49a3b 19-May-2002 Vikram S. Adve <vadve@cs.uiuc.edu> MachineInstr now inherits from Annotable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
8929cc230a2eec305f2c8f64ee0cb57c0cb3cc48 09-Apr-2002 Chris Lattner <sabre@nondot.org> Rewrite MachineCodeForBasicBlock in terms of containment rather than
inheritance.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e7506a366e8bd56c97d10beb68e4db953aebaeca 23-Mar-2002 Chris Lattner <sabre@nondot.org> Rename Method to Function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9558b4a29290d951b339424a9205610015451c9a 18-Mar-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Bug fix in setting CC register.
Also use distinct names for the three types of SetMachineOperand
to avoid painful overloading problems and errors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
2f898d207466bf233b55607e404baca302bc7b5e 05-Feb-2002 Chris Lattner <sabre@nondot.org> Convert operand iterator over to work like an STL iterator


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a730c864227b287cdfad5f5f3d5d0808c9f422bb 03-Feb-2002 Chris Lattner <sabre@nondot.org> * Prune many #includes
* Remove MachineCodeForVMInstr -> MachineCodeForInstruction.h
* Remove MachineCodeForMethod -> MachineCodeForMethod.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
697954c15da58bd8b186dbafdedd8b06db770201 20-Jan-2002 Chris Lattner <sabre@nondot.org> Changes to build successfully with GCC 3.02


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7a1767520611d9ff6face702068de858e1cadf2c 04-Dec-2001 Chris Lattner <sabre@nondot.org> Renamed inst_const_iterator -> const_inst_iterator
Renamed op_const_iterator -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
e9bb2df410f7a22decad9a883f7139d5857c1520 03-Dec-2001 Chris Lattner <sabre@nondot.org> Rename ConstPoolVal -> Constant
Rename ConstPool* -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cee8f9ae67104576b2028125b56e9ba4856a1d66 27-Nov-2001 Chris Lattner <sabre@nondot.org> Create a new #include "Support/..." directory structure to move things
from "llvm/Support/..." that are not llvm dependant.

Move files and fix #includes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
360e17eaf1a2abda82b02235dc57d26d8f83c937 27-Nov-2001 Chris Lattner <sabre@nondot.org> Move DataTypes.h from llvm/Support to just Support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
3ee997ba4243efabe6a810aa4a02e2755256725d 26-Nov-2001 Chris Lattner <sabre@nondot.org> Fix field initialization order problem


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
abf73cedd4f1100fae3e4bfe969649e1643e5254 15-Nov-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Modify method AllocateLocalVar to take size argument.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
be49526193c5d8856d0b3c2721dfa6a4c4010d6d 08-Nov-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Major overhaul of stack frame management.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
df1c3b8398d1df253ebd389ac1068ec732a2f28f 05-Nov-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Make reg. numbers signed ints.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
3259a3237d6213002991d62ab1a0ff1f9d460846 29-Oct-2001 Chris Lattner <sabre@nondot.org> Systems headers use <> not ""


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
dd52255e9a26fbc9b7e0cd22a2dd99b0b6bae991 28-Oct-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Added a constant pool to record values that need to be emitted
in the assembly code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1876f92599b90f0a4b276aae413a1b965954174d 22-Oct-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Added class MachineCodeForMethod to provide method-level information
about the generated native code (e.g., frame layout information).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
33eb292e127a75d51587c390241817d8c355a18b 19-Oct-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> Added code to Initialize (MachineOperand) to initialize regNum to -1 -- Ruchira


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@919 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
618155f6c830af9b2abb587b6d1cb5bea3dcc4f9 16-Oct-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> added initializing regNum to -1 in both constructors of MachineOperand


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
21721b63c3b5a314dfa0be14823b10273860787c 15-Oct-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> fixed a coalscing bug


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
704037f0248793be829df9e185bd889ca41beaf7 13-Oct-2001 Chris Lattner <sabre@nondot.org> Dang, I screwed up the merge. This should be better


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
da47526737c111128e34b9627a3beea1a68bd93e 13-Oct-2001 Chris Lattner <sabre@nondot.org> Clean up initializers for GCC 2.96


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
a995e6086deca9cbd9aab9d6e1e94b36964b66da 11-Oct-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Record implicitRefs for each machine instruction instead of
each VM instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
593da4acc56d4c591ad688e6605b04d0825c867e 10-Oct-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Moved code generation support routines to InstrSelectionSupport.{h,cpp}.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
9636a91649f168f41b477cba705287665e054f79 01-Oct-2001 Chris Lattner <sabre@nondot.org> Add support for new style casts


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
2a97dd1fc335cb8fd87c1fe6fada5f64006712c8 01-Oct-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Add vector `implicitUses' to class MachineCodeForVMInstr to hold values
that are used by the VM instruction but not explicit operands of the
m/c instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
eda6806f6aaec9a64707a8e5609ae21b15e1440a 19-Sep-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> --added methods to operand class to set/get registers after register allocation


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4bc86976bb14ce66b734a534351a4e9fb027d17d 18-Sep-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Minor fixes: renamed target machine files; fold sched info into TargetMachine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
475253b430649ccaf3c954714164821883aba9ac 15-Sep-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> added a method to get reg num after register allocation


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
427a5273113274ee35cff78534dba2ae812c79ce 15-Sep-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> -modified machine operand class - took regNum out of union to set regNum after
retister allocation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1bf6d645cd8e167851660e841276dcc53be0e344 15-Sep-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> --reg alloc code added


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
46cbff625eb9593cf9ddac415c39311a54aa27fa 14-Sep-2001 Chris Lattner <sabre@nondot.org> Chris seems fond of #include <vector>. Fix these. Also convert use list in
Value to a vector instead of a list.

Move SchedGraph.h & SchedPriorities.h into lib/CodeGen/InstrScheduling


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
b26bcc5087029ffe8037ed9036ff74430c6054cf 14-Sep-2001 Chris Lattner <sabre@nondot.org> Make a new llvm/Target #include directory.
Move files from lib/CodeGen/TargetMachine to lib/Target
Move TargetData.h and TargetMachine.h to Target/{Data.h|Machine.h}
Prepare to split TargetMachine.h into several smaller files


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
746e0014a6c59f285ffefc30c722ef2cf69eb95d 10-Sep-2001 Chris Lattner <sabre@nondot.org> Update assertion to allow extra case


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
56786d268feeb6d0e895b6c4cba60139285c47d6 09-Sep-2001 Chris Lattner <sabre@nondot.org> Fix build breakage. :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
c866fe19492fc8958f7579c8462cde5bc03dc3b2 08-Sep-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> *** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
0286ade27f9bff026ec64fe81dfd1050f530d10d 08-Sep-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> *** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7cd2ca13c1920e9db68695a364048cb6586bb324 08-Sep-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> Committed for compliation. Not yet final.
--Ruchira


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
136c9f4062b0fe6d864ebc2bc2b0cbada931a28e 29-Aug-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Added function MachineInstr::operandIsDefined(i) and decl for
function PrintMachineInstructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
cc3a0dbb85ee9ca3c694ee6de96bcb3b72f8dd6c 13-Aug-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> Corrected the compilation error by making the ValOperator class a friend of
MachineOperand class - Ruchira


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4f01c1ee9920e25bb9695189439ed5e29fc9128d 09-Aug-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Can't use ref to stack value!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
98f2f8053bebaad7683de074bfb74239364098d2 09-Aug-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Needed old conditions as well as new in skipToNextVal()!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7c02601b5889d0ec6f2cfc58a3d5b2a0c0d65665 08-Aug-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Bug fix in ValOpIterator: not moving past operand with NULL Value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
0b03c6a492a0e09049b6c0bd127bd0ede7732aa5 07-Aug-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> *** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
773fc471bdc36a221ff9302a07e58f8f7210d87d 07-Aug-2001 Ruchira Sasanka <sasanka@students.uiuc.edu> Added isDef field to MachineOperand class - Ruchira


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
1885da4f49cf32efde2d4c840365c4333a0c8579 31-Jul-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Allow machine instructions with variable numbers of arguments.
This is used only by Phi for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
f6445837e9733e5657884f529879c5db2ca51f50 30-Jul-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Added class MachineCodeForBasicBlock.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
6a175e01eb164baac5cc16311c474ff644ce17c1 28-Jul-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Eliminate separate enum for operand register type.
Use union for alternative data for different operand types.
Add iterator over Value* operands in a MachineInstr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
4bc3daaa3f3c9f22d5dd695e987e8d20f999791c 23-Jul-2001 Chris Lattner <sabre@nondot.org> Eliminated the Unique class in favor of NonCopyable and NonCopyableV


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
57dbb3ad63b6a0e77798edb156ef43daa3bfc67e 23-Jul-2001 Chris Lattner <sabre@nondot.org> Moved inline/llvm/Tools/* to include/llvm/Support/*


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
d8fa8e2aa1fe30747bf2860cc9f7f226eda42666 23-Jul-2001 Chris Lattner <sabre@nondot.org> Nonpolymorphic class, doesn't need a virtual dtor!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
68498cefe602bf5364168b4acd0bd5806cdd72ec 22-Jul-2001 Chris Lattner <sabre@nondot.org> Eliminate lots of unnecessary #includes and forward decls
there are probably more to kill


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
7e583cfafeb07713e5ceadcfe28b70111a528d97 21-Jul-2001 Chris Lattner <sabre@nondot.org> Renamed include/llvm/Codegen to include/llvm/CodeGen


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h
23ee550765232e22d0daf6407141ecef4c55c06f 21-Jul-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Header files for the target architecture description and for instruction
selection, and instances of these for the SPARC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineInstr.h