summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/TargetInstrInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* rename TargetInstrDescriptor -> TargetInstrDesc.Chris Lattner2008-01-071-7/+7
| | | | | | | Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. llvm-svn: 45695
* Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptorChris Lattner2008-01-071-1/+1
| | | | llvm-svn: 45680
* Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflectsChris Lattner2008-01-071-10/+9
| | | | | | | | | | | | | | | 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. llvm-svn: 45674
* Fix a problem where lib/Target/TargetInstrInfo.h would include and useChris Lattner2008-01-011-42/+0
| | | | | | | | | | a header file from libcodegen. This violates a layering order: codegen depends on target, not the other way around. The fix to this is to split TII into two classes, TII and TargetInstrInfoImpl, which defines stuff that depends on libcodegen. It is defined in libcodegen, where the base is not. llvm-svn: 45475
* Add new shorter predicates for testing machine operands for various types: Chris Lattner2007-12-301-4/+4
| | | | | | | | | | | | e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. llvm-svn: 45464
* More cleanups for MachineOperand:Chris Lattner2007-12-301-8/+2
| | | | | | | | | | - 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 llvm-svn: 45461
* Use MachineOperand::getImm instead of MachineOperand::getImmedValue. ↵Chris Lattner2007-12-301-1/+1
| | | | | | Likewise setImmedValue -> setImm llvm-svn: 45453
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Remove isReg, isImm, and isMBB, and change all their users to use Dan Gohman2007-09-141-3/+3
| | | | | | | isRegister, isImmediate, and isMachineBasicBlock, which are equivalent, and more popular. llvm-svn: 41958
* isUnpredicatedTerminator should treat conditional branches as unpredicated ↵Evan Cheng2007-07-061-1/+4
| | | | | | terminator. llvm-svn: 37960
* Do not check isPredicated() on non-predicable instructions.Evan Cheng2007-07-051-1/+4
| | | | llvm-svn: 37891
* Add a utility routine to check for unpredicated terminator instruction.Evan Cheng2007-06-081-0/+7
| | | | llvm-svn: 37528
* Add missing const qualifiers.Evan Cheng2007-05-291-1/+1
| | | | llvm-svn: 37341
* Rename a parameter.Evan Cheng2007-05-231-4/+4
| | | | llvm-svn: 37307
* Remove. Not needed.Evan Cheng2007-05-171-4/+0
| | | | llvm-svn: 37139
* Default implementation of TargetInstrInfo::getBlockSize().Evan Cheng2007-05-161-0/+4
| | | | llvm-svn: 37138
* PredicateInstruction returns true if the operation was successful.Evan Cheng2007-05-161-14/+19
| | | | llvm-svn: 37124
* Add default implementation of PredicateInstruction().Evan Cheng2007-05-161-0/+20
| | | | llvm-svn: 37123
* Move findTiedToSrcOperand to TargetInstrDescriptor.Evan Cheng2006-12-081-12/+11
| | | | llvm-svn: 32366
* Use MI's TargetInstrDescriptor.Evan Cheng2006-12-081-5/+4
| | | | llvm-svn: 32352
* Match TargetInstrInfo changes.Evan Cheng2006-12-011-1/+1
| | | | llvm-svn: 32098
* Remove the ugly SPARCV9 TargetInstrDescriptors hack.Evan Cheng2006-11-301-13/+0
| | | | llvm-svn: 32033
* commuteInstruction should propagate kill / dead info.Evan Cheng2006-11-151-0/+10
| | | | llvm-svn: 31763
* RenameEvan Cheng2006-11-011-1/+3
| | | | llvm-svn: 31364
* Added getTiedToSrcOperand() to check for two-address'ness.Evan Cheng2006-11-011-0/+12
| | | | llvm-svn: 31360
* Typo! How did we commute nodes before?!Evan Cheng2006-05-121-1/+1
| | | | llvm-svn: 28229
* Move some methods out of MachineInstr into MachineOperandChris Lattner2006-05-041-2/+2
| | | | llvm-svn: 28102
* remove some v9 specific codeChris Lattner2006-04-201-20/+0
| | | | llvm-svn: 27900
* Convert tabs to spacesMisha Brukman2005-04-221-6/+6
| | | | llvm-svn: 21452
* Remove trailing whitespaceMisha Brukman2005-04-211-5/+5
| | | | llvm-svn: 21422
* Finegrainify namespacificationChris Lattner2005-01-191-7/+20
| | | | | | | Add default impl of commuteInstruction Add notes about ugly V9 code. llvm-svn: 19684
* ConstantTypeMustBeLoaded has been incorporated into SparcV9PreSelection, itsBrian Gaeke2004-07-271-5/+0
| | | | | | only user. llvm-svn: 15294
* Adjust to change in TII ctor argumentsChris Lattner2004-02-291-3/+2
| | | | llvm-svn: 11987
* Make this assertion more self-explanatory.Brian Gaeke2004-01-151-2/+2
| | | | llvm-svn: 10879
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | 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
* Nice tasty llc fixes. These should fix LLC for x86 for everything inBrian Gaeke2003-06-271-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SingleSource except oopack and Oscar. (Sorry, Oscar.) include/llvm/Target/TargetInstrInfo.h: Remove virtual print method. Add accessors for ImplicitUses/Defs. lib/Target/TargetInstrInfo.cpp: Remove virtual print method. If you really wanted this, just use MI->print(O, TM); instead... lib/Target/X86: FloatingPoint.cpp: ...like this. X86InstrInfo.h: Remove virtual print method. Define the PrintImplUses target-specific flag bit. X86InstrInfo.def: Add the PrintImplUses flag to all the instructions which implicitly use CL, because the assembler needs to see the CL in order to generate the right instruction. Printer.cpp: Ditch fnIndex at Chris's request. Now we use CurrentFnName to name constants in the constant pool for each function instead. This avoids keeping state between runOnMachineFunction() invocations, which is a no-no. Having MangledGlobals be global is a bogon I'd like to get rid of too, but making it a static member of Printer causes link errors (why???). Make NumberForBB into a member of Printer instead of a global, too. Make printOp and printMemReference into methods of Printer. X86InstrInfo::print is now Printer::printMachineInstruction, because TargetInstrInfo::print is history. (Because of this, we have to qualify the names of some TargetInstrInfo methods we call.) Print out the ImplicitUses field of any instruction we print that has the PrintImplUses bit set. llvm-svn: 6924
* Rename MachineInstrInfo -> TargetInstrInfoChris Lattner2003-01-141-1/+1
| | | | llvm-svn: 5272
* Start renaming MachineInstrInfo -> TargetInstrInfoChris Lattner2003-01-131-16/+11
| | | | llvm-svn: 5221
* Pass on a targetmachineChris Lattner2002-11-171-2/+3
| | | | llvm-svn: 4736
* Add default implementation of printing interfaceChris Lattner2002-11-171-3/+5
| | | | llvm-svn: 4727
* Move TargetInstrDescriptors to MachineInstrInfo.cppChris Lattner2002-10-291-0/+6
| | | | llvm-svn: 4391
* MachineInstrInfo doesn't need a TargetMachineChris Lattner2002-10-291-3/+2
| | | | llvm-svn: 4372
* Seperate code out of TargetMachine into MachineInstrInfoChris Lattner2002-10-281-0/+56
llvm-svn: 4368
OpenPOWER on IntegriCloud