aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Target/TargetInstrInfo.h
Commit message (Collapse)AuthorAgeFilesLines
* Added getNumDefs().Evan Cheng2007-09-131-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41901 91177308-0d34-0410-b5e6-96231b3b80d8
* Added TargetInstrDescriptor::numDefs - num of results.Evan Cheng2007-08-021-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40709 91177308-0d34-0410-b5e6-96231b3b80d8
* Add target independent MachineInstr's to represent subreg insert/extract in ↵Christopher Lamb2007-07-261-1/+3
| | | | | | MBB's. PR1350 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40518 91177308-0d34-0410-b5e6-96231b3b80d8
* Add OptionalDefOperand. Remove clobbersPred. Also add DefinesPredicate to be ↵Evan Cheng2007-07-101-9/+21
| | | | | | used by if-converter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38499 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a typo in a comment.Dan Gohman2007-07-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38456 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert the earlier change that removed the M_REMATERIALIZABLE machineDan Gohman2007-06-261-10/+26
| | | | | | | | | | instruction flag, and use the flag along with a virtual member function hook for targets to override if there are instructions that are only trivially rematerializable with specific operands (i.e. constant pool loads). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37728 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace M_REMATERIALIZIBLE and the newly-added isOtherReMaterializableLoadDan Gohman2007-06-191-12/+4
| | | | | | | | | | | with a general target hook to identify rematerializable instructions. Some instructions are only rematerializable with specific operands, such as loads from constant pools, while others are always rematerializable. This hook allows both to be identified as being rematerializable with the same mechanism. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37644 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace CanBeDuplicated() with a M_NOT_DUPLICABLE bit.Evan Cheng2007-06-191-16/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37642 91177308-0d34-0410-b5e6-96231b3b80d8
* Added CanBeDuplicated(). It returns true if an instruction can be safely ↵Evan Cheng2007-06-151-0/+7
| | | | | | duplicated (e.g. during ifcvt). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37605 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not treat FP_REG_KILL as terminator in branch analysis (X86).Dale Johannesen2007-06-141-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37578 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a target hook to allow loads from constant pools to be rematerialized, ↵Dan Gohman2007-06-141-0/+10
| | | | | | | | | and an implementation for x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37576 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a utility routine to check for unpredicated terminator instruction.Evan Cheng2007-06-081-2/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37528 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a machine instruction flag indicating the instruction can clobber ↵Evan Cheng2007-06-061-0/+6
| | | | | | condition code / register(s) used to predicate instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37464 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing const qualifiers.Evan Cheng2007-05-291-5/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37341 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a couple of target hooks for predication.Evan Cheng2007-05-231-1/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37306 91177308-0d34-0410-b5e6-96231b3b80d8
* Consistency.Evan Cheng2007-05-221-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37274 91177308-0d34-0410-b5e6-96231b3b80d8
* RemoveBranch() and InsertBranch() now returns number of instructions deleted ↵Evan Cheng2007-05-181-4/+8
| | | | | | / inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37192 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove. Not needed.Evan Cheng2007-05-171-5/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37139 91177308-0d34-0410-b5e6-96231b3b80d8
* Add target hook to specify block size limit for if-conversion.Evan Cheng2007-05-161-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37134 91177308-0d34-0410-b5e6-96231b3b80d8
* PredicateInstruction returns true if the operation was successful.Evan Cheng2007-05-161-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37124 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename M_PREDICATED to M_PREDICABLE; Move TargetInstrInfo::isPredicatable() ↵Evan Cheng2007-05-161-15/+6
| | | | | | to MachineInstr::isPredicable(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37115 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix comments.Evan Cheng2007-05-161-4/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37096 91177308-0d34-0410-b5e6-96231b3b80d8
* Add TargetInstrInfo predication hooks.Evan Cheng2007-05-161-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37091 91177308-0d34-0410-b5e6-96231b3b80d8
* All operands that made up of the predicate operands are maked ↵Evan Cheng2007-05-151-2/+2
| | | | | | M_PREDICATE_OPERAND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37062 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a TargetInstrDescriptor flag to mark an instruction as "re-materializable".Evan Cheng2007-03-191-0/+7
| | | | | | | | It means the instruction can be easily re-materialized at any point. e.g. constant generation, load from constantpool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35158 91177308-0d34-0410-b5e6-96231b3b80d8
* These forward declarations are not needed.Evan Cheng2007-03-161-5/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35120 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix for VS 2005 problem supplied by Morten Ofstad.Jeff Cohen2007-03-141-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35098 91177308-0d34-0410-b5e6-96231b3b80d8
* Make LABEL a builtin opcode.Jim Laskey2007-01-261-8/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33537 91177308-0d34-0410-b5e6-96231b3b80d8
* Silly assertion. Forgot variable_ops instructions can have arbitrary number ofEvan Cheng2006-12-151-2/+4
| | | | | | | operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32592 91177308-0d34-0410-b5e6-96231b3b80d8
* Move findTiedToSrcOperand to TargetInstrDescriptor.Evan Cheng2006-12-081-5/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32366 91177308-0d34-0410-b5e6-96231b3b80d8
* Use MI's TargetInstrDescriptor.Evan Cheng2006-12-081-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32352 91177308-0d34-0410-b5e6-96231b3b80d8
* - Add getOperandConstraint() to TargetInstrDescriptor.Evan Cheng2006-12-011-17/+28
| | | | | | | | - convertToThreeAddress() change to allow single two-address MI to be converted into one or more 3-address MIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32094 91177308-0d34-0410-b5e6-96231b3b80d8
* Add opcode to TargetInstrDescriptor.Evan Cheng2006-11-171-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31802 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove M_2_ADDR_FLAG.Evan Cheng2006-11-091-13/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31583 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new operand flag to mark which operand is the first predicate operandChris Lattner2006-11-061-0/+5
| | | | | | | of an M_PREDICATED instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31482 91177308-0d34-0410-b5e6-96231b3b80d8
* add a flag so that predicated instructions can be recognized by branchChris Lattner2006-11-061-0/+8
| | | | | | | folding git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31479 91177308-0d34-0410-b5e6-96231b3b80d8
* RenameEvan Cheng2006-11-011-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31364 91177308-0d34-0410-b5e6-96231b3b80d8
* Added getTiedToSrcOperand() to check for two-address'ness.Evan Cheng2006-11-011-1/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31360 91177308-0d34-0410-b5e6-96231b3b80d8
* Add operand constraints to TargetInstrInfo.Evan Cheng2006-11-011-0/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31333 91177308-0d34-0410-b5e6-96231b3b80d8
* add another target hook for branch folding.Chris Lattner2006-10-281-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31262 91177308-0d34-0410-b5e6-96231b3b80d8
* update commentChris Lattner2006-10-241-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31165 91177308-0d34-0410-b5e6-96231b3b80d8
* fix assert commentRafael Espindola2006-10-241-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31154 91177308-0d34-0410-b5e6-96231b3b80d8
* expose DWARF_LABEL opcode# so the branch folder can update debug info properly.Chris Lattner2006-10-171-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31024 91177308-0d34-0410-b5e6-96231b3b80d8
* update commentChris Lattner2006-10-171-2/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31023 91177308-0d34-0410-b5e6-96231b3b80d8
* it is easier to implement these when they are virtualChris Lattner2006-10-131-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30944 91177308-0d34-0410-b5e6-96231b3b80d8
* allow branch reversal to failChris Lattner2006-10-131-4/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30943 91177308-0d34-0410-b5e6-96231b3b80d8
* replace the existing branch inspection/modification APIs with something moreChris Lattner2006-10-131-17/+44
| | | | | | | useful and general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30940 91177308-0d34-0410-b5e6-96231b3b80d8
* Use an enumeration to eliminate data relocations.Jim Laskey2006-07-211-15/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29249 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean upEvan Cheng2006-06-171-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28851 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid undesirable behavior when assert is not enabled.Evan Cheng2006-06-151-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28793 91177308-0d34-0410-b5e6-96231b3b80d8