aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/InstrSelection
Commit message (Collapse)AuthorAgeFilesLines
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-203-0/+21
| | | | | | | Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the Opcode enum for PHI nodes from "Instruction::PHINode" to ↵Chris Lattner2003-10-191-2/+2
| | | | | | "Instruction::PHI" to be more consistent with the other instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9269 91177308-0d34-0410-b5e6-96231b3b80d8
* Decrease usage of use_size()Chris Lattner2003-10-151-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9135 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed spelling.Misha Brukman2003-09-172-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8588 91177308-0d34-0410-b5e6-96231b3b80d8
* The word `dependent' has no `a'.Misha Brukman2003-08-211-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8030 91177308-0d34-0410-b5e6-96231b3b80d8
* Factory methods for function passes now return type FunctionPass *.Brian Gaeke2003-08-141-5/+2
| | | | | | | Get rid of RegisterLLC, which can't handle FunctionPasses anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7836 91177308-0d34-0410-b5e6-96231b3b80d8
* All constant-evaluation code now unified intoVikram S. Adve2003-07-291-31/+8
| | | | | | | TargetInstrInfo::ConvertConstantToIntType(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7390 91177308-0d34-0410-b5e6-96231b3b80d8
* Making this code const-correct would be a pain, so I'll hack it.Chris Lattner2003-07-261-4/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7350 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unnecessary castsChris Lattner2003-07-231-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7250 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove using declChris Lattner2003-07-231-7/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7246 91177308-0d34-0410-b5e6-96231b3b80d8
* Choose register instead of immediate for ConstantExpr in ChooseRegOrImmed.Vikram S. Adve2003-07-061-3/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7112 91177308-0d34-0410-b5e6-96231b3b80d8
* Merged in autoconf branch. This provides configuration via the autoconfJohn Criswell2003-06-301-0/+1
| | | | | | | system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7014 91177308-0d34-0410-b5e6-96231b3b80d8
* Actually, change it to use explicit new/delete, which is more likely to beChris Lattner2003-06-161-2/+3
| | | | | | | optimized INTO an alloca git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6727 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove two using declsChris Lattner2003-06-161-18/+14
| | | | | | | Remove usage of alloca git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6725 91177308-0d34-0410-b5e6-96231b3b80d8
* Isolate machine-dependent use of <alloca.h> in "Support/Alloca.h",Brian Gaeke2003-06-161-1/+1
| | | | | | | | so that we can easily change its use to be conditional on the result of an autoconf test later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6723 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not hastily change the Opcode from 'r' to 'i' type if we're not actuallyMisha Brukman2003-06-071-7/+6
| | | | | | | | | SETTING the operand to be an immediate or have verified that one of the operands is really a SignExtended or Unextended immediate value already, which warrants an 'i' opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6662 91177308-0d34-0410-b5e6-96231b3b80d8
* I have finally seen the light. The code to change the opcode must live higher inMisha Brukman2003-06-041-4/+13
| | | | | | | | | | | | the loop, and in both cases. In the first case, it is a VReg that is a constant so it may be actually converted to a constant. In the second case, it is already a constant, but then if it doesn't change its type (e.g. to become a register and have the value loaded from memory if it is too large to live in its instruction field), we must change the opcode BEFORE the 'continue', otherwise we miss the opportunity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6602 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved code to modify the opcode from 'reg' to 'imm' form to a more logical ↵Misha Brukman2003-06-031-15/+6
| | | | | | place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6563 91177308-0d34-0410-b5e6-96231b3b80d8
* Added MachineCodeForInstruction object as an argument toVikram S. Adve2003-05-312-6/+13
| | | | | | | | | TmpInstruction constructors because every TmpInstruction object has to be registered with a MachineCodeForInstruction to prevent leaks. This simplifies the user's code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6469 91177308-0d34-0410-b5e6-96231b3b80d8
* When converting virtual registers to immediate constants, change the opcode.Misha Brukman2003-05-301-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6452 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unneccesary &*Chris Lattner2003-04-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5871 91177308-0d34-0410-b5e6-96231b3b80d8
* Move sparc specific code into the Sparc backendChris Lattner2003-01-151-256/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5317 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug in previous checkinChris Lattner2003-01-151-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5310 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor changesChris Lattner2003-01-152-30/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5302 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead codeChris Lattner2003-01-151-67/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5298 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename MachineInstrInfo -> TargetInstrInfoChris Lattner2003-01-141-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5272 91177308-0d34-0410-b5e6-96231b3b80d8
* More renamings of Target/Machine*Info to Target/Target*InfoChris Lattner2002-12-292-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5204 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix warningChris Lattner2002-11-091-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4649 91177308-0d34-0410-b5e6-96231b3b80d8
* Use higher level methodChris Lattner2002-10-291-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4386 91177308-0d34-0410-b5e6-96231b3b80d8
* MachineInstrInfo no longer #includes this header, so we mustChris Lattner2002-10-281-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4366 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove usage of MachineBasicBlock::getChris Lattner2002-10-281-14/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4342 91177308-0d34-0410-b5e6-96231b3b80d8
* Change MachineBasicBlock's to not be Annotations, instead they are kept asChris Lattner2002-10-281-4/+10
| | | | | | | | part of a linked list tracked by MachineFunction. MachineBasicBlock::get is now linear time instead of constant time, and thus is deprecated! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4337 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename the redundant MachineOperand::getOperandType() to ↵Chris Lattner2002-10-281-8/+8
| | | | | | MachineOperand::getType() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4331 91177308-0d34-0410-b5e6-96231b3b80d8
* Add #includes now that MachineInstr.h doesn't include ↵Chris Lattner2002-10-281-0/+1
| | | | | | llvm/Target/MachineInstrInfo.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4327 91177308-0d34-0410-b5e6-96231b3b80d8
* *** empty log message ***Chris Lattner2002-10-281-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4323 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename MachineCodeForBasicBlock to MachineBasicBlockChris Lattner2002-10-281-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4318 91177308-0d34-0410-b5e6-96231b3b80d8
* Changed `MachineCodeForMethod' to `MachineFunction'.Misha Brukman2002-10-282-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4301 91177308-0d34-0410-b5e6-96231b3b80d8
* Tell PassManager that this pass does not invalidate the CFG so that dominatorChris Lattner2002-10-231-0/+4
| | | | | | | information and Loop info will not have to be recomputed after this runs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4269 91177308-0d34-0410-b5e6-96231b3b80d8
* Significant improvement: GEP used by a load or store no longer generatesVikram S. Adve2002-10-141-36/+74
| | | | | | | | | | a separate ADD; instead just use the indexed load/store instruction! Also, a bug fix: folding a GEP with a leading non-zero index with its predecessor was incorrect: now it only happens if the predecessor is pointing to an indexable type (aka SequentialType). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4168 91177308-0d34-0410-b5e6-96231b3b80d8
* Bug fix in folding getElementPtr instructions: don't fold one intoVikram S. Adve2002-09-291-27/+45
| | | | | | | | a predecessor if it has a non-zero first index and the predecessor ends with a struct index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3982 91177308-0d34-0410-b5e6-96231b3b80d8
* Sign-extend integer constants from original type size to 64 bits!Vikram S. Adve2002-09-271-5/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3958 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for GCC 2.96Chris Lattner2002-09-171-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3777 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a version of ChooseRegOrImmed to handle numerical constantsVikram S. Adve2002-09-161-83/+118
| | | | | | | introduced by InstrSelection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3735 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug I introduced into the code generator. :(Chris Lattner2002-09-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3694 91177308-0d34-0410-b5e6-96231b3b80d8
* - Change getelementptr instruction to use long indexes instead of uintChris Lattner2002-09-111-8/+8
| | | | | | | indexes for sequential types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3681 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure the leakdetector is told about temporary Phi nodes also, so it doesn'tChris Lattner2002-09-081-1/+6
| | | | | | | erroneously report them as leaks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3624 91177308-0d34-0410-b5e6-96231b3b80d8
* Inform the memory leak detector that TmpInstruction objects should not beChris Lattner2002-09-081-0/+24
| | | | | | | subject to memory leak checking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3623 91177308-0d34-0410-b5e6-96231b3b80d8
* - Renamed Type::isIntegral() to Type::isInteger()Chris Lattner2002-09-031-7/+7
| | | | | | | | - Added new method Type::isIntegral() that is the same as isInteger, but also accepts bool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3574 91177308-0d34-0410-b5e6-96231b3b80d8
* Use newly-added type inspection support in InstTreeNode subclasses.Vikram S. Adve2002-08-241-5/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3501 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved code here to extract memory instruction indices and to checkVikram S. Adve2002-08-241-17/+96
| | | | | | | | whether FoldGetElemNodes should be called. This is machine-independent but was in the Sparc directory. This is in a new function: GetMemInstArgs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3500 91177308-0d34-0410-b5e6-96231b3b80d8