summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineInstr.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Instructions with variable operands (variable_ops) can have a number requiredEvan Cheng2006-06-151-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
* Remove a bogus cast.Evan Cheng2006-05-261-1/+1
| | | | llvm-svn: 28492
* Final pass of minor cleanups for MachineInstrChris Lattner2006-05-041-4/+0
| | | | llvm-svn: 28110
* Remove redundancy and a level of indirection when creating machine operandsChris Lattner2006-05-041-21/+5
| | | | llvm-svn: 28107
* Remove and simplify some more machineinstr/machineoperand stuff.Chris Lattner2006-05-041-1/+1
| | | | llvm-svn: 28105
* Rename MO_VirtualRegister -> MO_Register. Clean up immediate handling.Chris Lattner2006-05-041-2/+2
| | | | llvm-svn: 28104
* Move some methods out of MachineInstr into MachineOperandChris Lattner2006-05-041-19/+0
| | | | llvm-svn: 28102
* There shalt be only one "immediate" operand type!Chris Lattner2006-05-041-8/+2
| | | | llvm-svn: 28099
* Change "value" in MachineOperand to be a GlobalValue, as that is the onlyChris Lattner2006-05-041-14/+3
| | | | | | thing that can be in it. Remove a dead method. llvm-svn: 28098
* Remove a bunch more dead V9 specific stuffChris Lattner2006-05-041-25/+2
| | | | llvm-svn: 28094
* Remove a bunch more SparcV9 specific stuffChris Lattner2006-05-041-7/+1
| | | | llvm-svn: 28093
* Remove some more V9-specific stuff.Chris Lattner2006-05-041-32/+2
| | | | llvm-svn: 28092
* Remove some more unused stuff from MachineInstr that was leftover from V9.Chris Lattner2006-05-041-38/+0
| | | | llvm-svn: 28091
* JumpTable support! What this represents is working asm and jit support forNate Begeman2006-04-221-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
* This field no longer existsChris Lattner2006-04-201-2/+0
| | | | llvm-svn: 27899
* Remove some of the obvious V9-specific cruftChris Lattner2006-04-201-101/+2
| | | | llvm-svn: 27893
* Add a MachineInstr::eraseFromParent convenience method.Chris Lattner2006-04-171-0/+9
| | | | llvm-svn: 27775
* Remove trailing whitespaceMisha Brukman2005-04-211-18/+18
| | | | llvm-svn: 21420
* Allow machine operands to represent global variables with offsets. This isChris Lattner2004-10-151-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
* Changes For Bug 352Reid Spencer2004-09-011-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
* * Doxygenify commentsMisha Brukman2004-07-091-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
* Add #include <iostream> since Value.h does not #include it any more.Reid Spencer2004-07-041-0/+2
| | | | llvm-svn: 14622
* Made a fix so that you can print out MachineInstrs that belong to a ↵Tanya Lattner2004-06-251-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
* Make debugging dumps w/ multiple MachineBBs for a given LLVM BB readable.Brian Gaeke2004-06-171-4/+4
| | | | llvm-svn: 14205
* Adjust to new TargetMachine interfaceChris Lattner2004-06-021-1/+1
| | | | llvm-svn: 13956
* Changed clone to be const.Tanya Lattner2004-05-241-1/+7
| | | | | | Changed copy constructor to set parent, prev, and next pointers to null. llvm-svn: 13706
* Fixed up my changes to add support for cloning Machine Instructions.Tanya Lattner2004-05-231-2/+3
| | | | llvm-svn: 13665
* Adding support to clone MachineInstrTanya Lattner2004-05-231-0/+19
| | | | llvm-svn: 13661
* Make MachineOperand's value named 'contents'. Make really, really sureBrian Gaeke2004-03-031-6/+6
| | | | | | | it is always completely initialized and copied. Also, fix up many comments and asserts. llvm-svn: 12100
* int64_t -> intChris Lattner2004-02-291-1/+1
| | | | llvm-svn: 11977
* Fix crash caused by passing register 0 toAlkis Evlogimenos2004-02-271-1/+1
| | | | | | MRegisterInfo::isPhysicalRegister(). llvm-svn: 11894
* Fix bugs in finegrainificationChris Lattner2004-02-231-1/+3
| | | | llvm-svn: 11758
* Finegrainify namespacificationChris Lattner2004-02-231-9/+7
| | | | llvm-svn: 11757
* Fix a __LONG__ term annoyance of mine: symbolic registers weren't being printedChris Lattner2004-02-191-6/+16
| | | | | | | by operator<< on MachineInstr's, and looking up what register "24" is all of the time was greatly annoying. llvm-svn: 11623
* Add LeakDetection to MachineInstr.Alkis Evlogimenos2004-02-161-0/+12
| | | | | | | Move out of line member functions of MachineBasicBlock to MachineBasicBlock.cpp. llvm-svn: 11497
* Remove getAllocatedRegNum(). Use getReg() instead.Alkis Evlogimenos2004-02-131-5/+5
| | | | llvm-svn: 11393
* Add head-of-file comments and Doxygen comments. Tighten up a lot of whitespace.Brian Gaeke2004-02-131-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
* Add parent pointer to MachineInstr that points to owningAlkis Evlogimenos2004-02-121-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
* Rename the opCode instance variable to OpcodeChris Lattner2004-02-121-29/+15
| | | | llvm-svn: 11348
* This field is never readChris Lattner2004-02-121-3/+0
| | | | llvm-svn: 11346
* Modify the two address instruction pass to remove the duplicateAlkis Evlogimenos2004-02-041-18/+0
| | | | | | operand of the instruction and thus simplify the register allocation. llvm-svn: 11124
* When an instruction like: A += B had both A and B virtual registersAlkis Evlogimenos2004-02-031-0/+18
| | | | | | spilled, A was loaded from its stack location twice. This fixes the bug. llvm-svn: 11093
* Change interface of MachineOperand as follows:Alkis Evlogimenos2003-12-141-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
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-2/+6
| | | | llvm-svn: 9903
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-201-0/+7
| | | | | | Header files will be on the way. llvm-svn: 9298
* Fixed spelling.Misha Brukman2003-09-171-5/+5
| | | | llvm-svn: 8588
* Fix assertion in MachineInstr::substituteValue().Vikram S. Adve2003-08-071-2/+2
| | | | llvm-svn: 7675
* Do not insert physical regsiters into the regsUsed setChris Lattner2003-08-051-3/+0
| | | | llvm-svn: 7617
* All callers of these methods actually wanted them to preserve the flags,Chris Lattner2003-08-051-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
* Simplify code, eliminating the need for the X86 isVoid target instr flagChris Lattner2003-08-031-3/+4
| | | | llvm-svn: 7534
OpenPOWER on IntegriCloud