summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/InstrSelection/InstrSelectionSupport.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
* All constant-evaluation code now unified intoVikram S. Adve2003-07-291-31/+8
| | | | | | TargetInstrInfo::ConvertConstantToIntType(). llvm-svn: 7390
* Remove unnecessary castsChris Lattner2003-07-231-2/+2
| | | | llvm-svn: 7250
* Remove using declChris Lattner2003-07-231-7/+4
| | | | llvm-svn: 7246
* Choose register instead of immediate for ConstantExpr in ChooseRegOrImmed.Vikram S. Adve2003-07-061-3/+4
| | | | llvm-svn: 7112
* 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. llvm-svn: 6662
* 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. llvm-svn: 6602
* Moved code to modify the opcode from 'reg' to 'imm' form to a more logical ↵Misha Brukman2003-06-031-15/+6
| | | | | | place. llvm-svn: 6563
* Added MachineCodeForInstruction object as an argument toVikram S. Adve2003-05-311-2/+1
| | | | | | | | TmpInstruction constructors because every TmpInstruction object has to be registered with a MachineCodeForInstruction to prevent leaks. This simplifies the user's code. llvm-svn: 6469
* When converting virtual registers to immediate constants, change the opcode.Misha Brukman2003-05-301-0/+14
| | | | llvm-svn: 6452
* Move sparc specific code into the Sparc backendChris Lattner2003-01-151-256/+2
| | | | llvm-svn: 5317
* Fix bug in previous checkinChris Lattner2003-01-151-1/+2
| | | | llvm-svn: 5310
* Minor changesChris Lattner2003-01-151-21/+16
| | | | llvm-svn: 5302
* Remove dead codeChris Lattner2003-01-151-67/+0
| | | | llvm-svn: 5298
* Rename MachineInstrInfo -> TargetInstrInfoChris Lattner2003-01-141-2/+2
| | | | llvm-svn: 5272
* More renamings of Target/Machine*Info to Target/Target*InfoChris Lattner2002-12-291-1/+1
| | | | llvm-svn: 5204
* Use higher level methodChris Lattner2002-10-291-2/+2
| | | | llvm-svn: 4386
* MachineInstrInfo no longer #includes this header, so we mustChris Lattner2002-10-281-1/+1
| | | | llvm-svn: 4366
* Rename the redundant MachineOperand::getOperandType() to ↵Chris Lattner2002-10-281-8/+8
| | | | | | MachineOperand::getType() llvm-svn: 4331
* Add #includes now that MachineInstr.h doesn't include ↵Chris Lattner2002-10-281-0/+1
| | | | | | llvm/Target/MachineInstrInfo.h llvm-svn: 4327
* Changed `MachineCodeForMethod' to `MachineFunction'.Misha Brukman2002-10-281-1/+1
| | | | llvm-svn: 4301
* 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). llvm-svn: 4168
* 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. llvm-svn: 3982
* Sign-extend integer constants from original type size to 64 bits!Vikram S. Adve2002-09-271-5/+9
| | | | llvm-svn: 3958
* Add support for GCC 2.96Chris Lattner2002-09-171-2/+2
| | | | llvm-svn: 3777
* Add a version of ChooseRegOrImmed to handle numerical constantsVikram S. Adve2002-09-161-83/+118
| | | | | | introduced by InstrSelection. llvm-svn: 3735
* Fix a bug I introduced into the code generator. :(Chris Lattner2002-09-121-1/+1
| | | | llvm-svn: 3694
* - Change getelementptr instruction to use long indexes instead of uintChris Lattner2002-09-111-8/+8
| | | | | | indexes for sequential types. llvm-svn: 3681
* - 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. llvm-svn: 3574
* 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. llvm-svn: 3500
* Eliminated the MemAccessInst class, folding contents into GEP class.Chris Lattner2002-08-221-5/+5
| | | | llvm-svn: 3487
* * Removed extraneous #includesChris Lattner2002-08-091-11/+5
| | | | | | | * Fixed file headers to be consistent with the rest of LLVM * Other minor fixes llvm-svn: 3278
* Add function GetConstantValueAsUnsignedInt.Vikram S. Adve2002-08-041-52/+49
| | | | | | | | Fix 2 bugs in FoldGetElemChain so index vector is not modified when no GEPs are folded in, and so a hasLeadingZero is computed only for the last folded GEP, not the one after that if any. llvm-svn: 3244
* Remove unused vectorChris Lattner2002-07-301-3/+0
| | | | llvm-svn: 3143
* Better folding getelementptr operations with mixedVikram S. Adve2002-05-191-41/+61
| | | | | | | | array and struct indexes. Update operand values in CallArgsDescriptor (a new class) when replacing constant values with immediates. llvm-svn: 2645
* Replace all usages of Type::isPointerType with isa<PointerType>Chris Lattner2002-05-061-2/+2
| | | | llvm-svn: 2486
* Eliminate duplicate or unneccesary #include'sChris Lattner2002-04-291-1/+0
| | | | llvm-svn: 2397
* Split ConstantVals.h into Constant.h and Constants.hChris Lattner2002-04-281-1/+1
| | | | llvm-svn: 2378
* Change references to the Method class to be references to the FunctionChris Lattner2002-04-071-7/+8
| | | | | | | class. The Method class is obsolete (renamed) and all references to it are being converted over to Function. llvm-svn: 2144
* Fix a bug in previous bug fix.Vikram S. Adve2002-03-311-6/+14
| | | | llvm-svn: 2069
* Major overhaul to FoldGetElemPtr to handle mixed array and struct refs.Vikram S. Adve2002-03-241-10/+35
| | | | llvm-svn: 1968
* Constants are now added to the constant pool only when a loadVikram S. Adve2002-03-181-25/+17
| | | | | | | instruction is actually generated for them. Rename the different versions of SetMachineOperand. llvm-svn: 1903
* * Switch over to cleaner TmpInstruction modelChris Lattner2002-02-031-5/+7
| | | | llvm-svn: 1648
* Changes to build successfully with GCC 3.02Chris Lattner2002-01-201-1/+1
| | | | llvm-svn: 1503
* Eliminate all uses of memInst->getIndicesBROKEN().Vikram S. Adve2001-12-151-3/+3
| | | | llvm-svn: 1485
* Rename ConstPoolVal -> ConstantChris Lattner2001-12-031-20/+16
| | | | | | | Rename ConstPool* -> Constant* Rename ConstPoolVals.h -> ConstantVals.h llvm-svn: 1407
* The old getIndices has been deprecated, because it no longer works. It nowChris Lattner2001-11-261-2/+2
| | | | | | | is named getIndicesBROKEN() and shall be removed when the codebase is updated to not call it llvm-svn: 1338
* Don't assume constant operand can only be in position 1!Vikram S. Adve2001-11-141-2/+2
| | | | llvm-svn: 1308
* Idiotic error in last fix.Vikram S. Adve2001-11-141-1/+1
| | | | llvm-svn: 1306
* Don't need to load a NULL pointer constant from memory!Vikram S. Adve2001-11-141-2/+10
| | | | llvm-svn: 1305
OpenPOWER on IntegriCloud