aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineInstr.cpp
AgeCommit message (Collapse)AuthorFilesLines
2006-06-15Instructions with variable operands (variable_ops) can have a number requiredEvan Cheng1-1/+2
operands. e.g. def CALL32r : I<0xFF, MRM2r, (ops GR32:$dst, variable_ops), "call {*}$dst", [(X86call GR32:$dst)]>; TableGen should emit operand informations for the "required" operands. Added a target instruction info flag M_VARIABLE_OPS to indicate the target instruction may have more operands in addition to the minimum required operands. llvm-svn: 28791
2006-05-26Remove a bogus cast.Evan Cheng1-1/+1
llvm-svn: 28492
2006-05-04Final pass of minor cleanups for MachineInstrChris Lattner1-4/+0
llvm-svn: 28110
2006-05-04Remove redundancy and a level of indirection when creating machine operandsChris Lattner1-21/+5
llvm-svn: 28107
2006-05-04Remove and simplify some more machineinstr/machineoperand stuff.Chris Lattner1-1/+1
llvm-svn: 28105
2006-05-04Rename MO_VirtualRegister -> MO_Register. Clean up immediate handling.Chris Lattner1-2/+2
llvm-svn: 28104
2006-05-04Move some methods out of MachineInstr into MachineOperandChris Lattner1-19/+0
llvm-svn: 28102
2006-05-04There shalt be only one "immediate" operand type!Chris Lattner1-8/+2
llvm-svn: 28099
2006-05-04Change "value" in MachineOperand to be a GlobalValue, as that is the onlyChris Lattner1-14/+3
thing that can be in it. Remove a dead method. llvm-svn: 28098
2006-05-04Remove a bunch more dead V9 specific stuffChris Lattner1-25/+2
llvm-svn: 28094
2006-05-04Remove a bunch more SparcV9 specific stuffChris Lattner1-7/+1
llvm-svn: 28093
2006-05-04Remove some more V9-specific stuff.Chris Lattner1-32/+2
llvm-svn: 28092
2006-05-04Remove some more unused stuff from MachineInstr that was leftover from V9.Chris Lattner1-38/+0
llvm-svn: 28091
2006-04-22JumpTable support! What this represents is working asm and jit support forNate Begeman1-0/+6
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. llvm-svn: 27947
2006-04-20This field no longer existsChris Lattner1-2/+0
llvm-svn: 27899
2006-04-20Remove some of the obvious V9-specific cruftChris Lattner1-101/+2
llvm-svn: 27893
2006-04-17Add a MachineInstr::eraseFromParent convenience method.Chris Lattner1-0/+9
llvm-svn: 27775
2005-04-21Remove trailing whitespaceMisha Brukman1-18/+18
llvm-svn: 21420
2004-10-15Allow machine operands to represent global variables with offsets. This isChris Lattner1-5/+9
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!! llvm-svn: 17007
2004-09-01Changes For Bug 352Reid Spencer1-1/+1
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/. llvm-svn: 16137
2004-07-09* Doxygenify commentsMisha Brukman1-104/+96
* Fix spacing, grammar in comment * Make code layout consistent * Wrap code at 80 cols * Delete spurious blank lines No functional changes. llvm-svn: 14721
2004-07-04Add #include <iostream> since Value.h does not #include it any more.Reid Spencer1-0/+2
llvm-svn: 14622
2004-06-25Made a fix so that you can print out MachineInstrs that belong to a ↵Tanya Lattner1-5/+18
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. llvm-svn: 14389
2004-06-17Make debugging dumps w/ multiple MachineBBs for a given LLVM BB readable.Brian Gaeke1-4/+4
llvm-svn: 14205
2004-06-02Adjust to new TargetMachine interfaceChris Lattner1-1/+1
llvm-svn: 13956
2004-05-24Changed clone to be const.Tanya Lattner1-1/+7
Changed copy constructor to set parent, prev, and next pointers to null. llvm-svn: 13706
2004-05-23Fixed up my changes to add support for cloning Machine Instructions.Tanya Lattner1-2/+3
llvm-svn: 13665
2004-05-23Adding support to clone MachineInstrTanya Lattner1-0/+19
llvm-svn: 13661
2004-03-03Make MachineOperand's value named 'contents'. Make really, really sureBrian Gaeke1-6/+6
it is always completely initialized and copied. Also, fix up many comments and asserts. llvm-svn: 12100
2004-02-29int64_t -> intChris Lattner1-1/+1
llvm-svn: 11977
2004-02-27Fix crash caused by passing register 0 toAlkis Evlogimenos1-1/+1
MRegisterInfo::isPhysicalRegister(). llvm-svn: 11894
2004-02-23Fix bugs in finegrainificationChris Lattner1-1/+3
llvm-svn: 11758
2004-02-23Finegrainify namespacificationChris Lattner1-9/+7
llvm-svn: 11757
2004-02-19Fix a __LONG__ term annoyance of mine: symbolic registers weren't being printedChris Lattner1-6/+16
by operator<< on MachineInstr's, and looking up what register "24" is all of the time was greatly annoying. llvm-svn: 11623
2004-02-16Add LeakDetection to MachineInstr.Alkis Evlogimenos1-0/+12
Move out of line member functions of MachineBasicBlock to MachineBasicBlock.cpp. llvm-svn: 11497
2004-02-13Remove getAllocatedRegNum(). Use getReg() instead.Alkis Evlogimenos1-5/+5
llvm-svn: 11393
2004-02-13Add head-of-file comments and Doxygen comments. Tighten up a lot of whitespace.Brian Gaeke1-36/+32
Rename SetMachineOperandConst's formal parameters to match other methods here. Mark some methods as being used only by the SPARC back-end. Fix a missing-paren bug in OutputValue(). llvm-svn: 11363
2004-02-12Add parent pointer to MachineInstr that points to owningAlkis Evlogimenos1-7/+14
MachineBasicBlock. Also change opcode to a short and numImplicitRefs to an unsigned char so that overall MachineInstr's size stays the same. llvm-svn: 11357
2004-02-12Rename the opCode instance variable to OpcodeChris Lattner1-29/+15
llvm-svn: 11348
2004-02-12This field is never readChris Lattner1-3/+0
llvm-svn: 11346
2004-02-04Modify the two address instruction pass to remove the duplicateAlkis Evlogimenos1-18/+0
operand of the instruction and thus simplify the register allocation. llvm-svn: 11124
2004-02-03When an instruction like: A += B had both A and B virtual registersAlkis Evlogimenos1-0/+18
spilled, A was loaded from its stack location twice. This fixes the bug. llvm-svn: 11093
2003-12-14Change interface of MachineOperand as follows:Alkis Evlogimenos1-28/+33
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. llvm-svn: 10461
2003-11-11Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke1-2/+6
llvm-svn: 9903
2003-10-20Added LLVM project notice to the top of every C++ source file.John Criswell1-0/+7
Header files will be on the way. llvm-svn: 9298
2003-09-17Fixed spelling.Misha Brukman1-5/+5
llvm-svn: 8588
2003-08-07Fix assertion in MachineInstr::substituteValue().Vikram S. Adve1-2/+2
llvm-svn: 7675
2003-08-05Do not insert physical regsiters into the regsUsed setChris Lattner1-3/+0
llvm-svn: 7617
2003-08-05All callers of these methods actually wanted them to preserve the flags,Chris Lattner1-26/+5
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! llvm-svn: 7602
2003-08-03Simplify code, eliminating the need for the X86 isVoid target instr flagChris Lattner1-3/+4
llvm-svn: 7534