summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc/SparcInstrInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename SPARC V8 target to be the LLVM SPARC target.Chris Lattner2006-02-051-0/+98
| | | | llvm-svn: 25985
* Great renaming: Sparc --> SparcV9Brian Gaeke2004-02-251-799/+0
| | | | llvm-svn: 11826
* Reorganized the Sparc backend to be more modular -- each differentMisha Brukman2003-12-171-21/+22
| | | | | | | | | | | | | implementation of a Target{RegInfo, InstrInfo, Machine, etc} now has a separate header and a separate implementation file. This means that instead of a massive SparcInternals.h that forces a recompilation of the whole target whenever a minor detail is changed, you should only recompile a few files. Note that SparcInternals.h is still around; its contents should be minimized. llvm-svn: 10500
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | llvm-svn: 9903
* * Use the MachineConstantPool for storing constants instead of a hash_set;Misha Brukman2003-11-071-17/+41
| | | | | | | | * Do not create new globals for constants! Also, order #includes as per coding style guide llvm-svn: 9772
* Hrm, unbreak stuph :(Chris Lattner2003-10-211-0/+1
| | | | llvm-svn: 9334
* Fix preselection/lowerswitches bugChris Lattner2003-10-211-0/+3
| | | | llvm-svn: 9333
* 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
* Change the Opcode enum for PHI nodes from "Instruction::PHINode" to ↵Chris Lattner2003-10-191-1/+1
| | | | | | "Instruction::PHI" to be more consistent with the other instructions. llvm-svn: 9269
* Don't include "Config/stdlib.h".Brian Gaeke2003-10-101-1/+0
| | | | llvm-svn: 9037
* Unify all constant evaluations that depend on register sizeVikram S. Adve2003-07-291-66/+92
| | | | | | in ConvertConstantToIntType. llvm-svn: 7395
* Simplify code by using ConstantInt::getRawValue instead of checking to seeChris Lattner2003-07-231-11/+5
| | | | | | whether the constant is signed or unsigned, then casting llvm-svn: 7252
* Bug fix in creating constants: need 1U << 31, not 1 << 31.Vikram S. Adve2003-07-101-1/+1
| | | | llvm-svn: 7158
* Merged in autoconf branch. This provides configuration via the autoconfJohn Criswell2003-06-301-1/+1
| | | | | | system. llvm-svn: 7014
* * Changed Bcc instructions to behave like BPcc instructionsMisha Brukman2003-06-061-2/+2
| | | | | | | | | * BPA and BPN do not take a %cc register as a parameter * SLL/SRL/SRA{r,i}5 are there for a reason - they are ONLY 32-bit instructions * Likewise, SLL/SRL/SRAX{r,i}6 are only 64-bit * Added WRCCR{r,i} opcodes llvm-svn: 6655
* Convert load/store opcodes from register to immediate forms, if necessary.Misha Brukman2003-06-031-4/+13
| | | | llvm-svn: 6565
* Extensive changes to the way code generation occurs for functionVikram S. Adve2003-05-311-20/+25
| | | | | | | | | | | | | | call arguments and return values: Now all copy operations before and after a call are generated during selection instead of during register allocation. The values are copied to virtual registers (or to the stack), but in the former case these operands are marked with the correct physical registers according to the calling convention. Although this complicates scheduling and does not work well with live range analysis, it simplifies the machine-dependent part of register allocation. llvm-svn: 6465
* Added 'r' or 'i' annotations to instructions, as SparcInstr.def has changed.Misha Brukman2003-05-271-16/+16
| | | | llvm-svn: 6373
* Bug fix: sign-extension was not happening for C = -MININT since C == -C!Vikram S. Adve2003-05-251-2/+3
| | | | llvm-svn: 6332
* Cleaned up code layout, spacing, etc. for readability purposes and to be moreMisha Brukman2003-05-211-115/+100
| | | | | | | | | consistent with the style of LLVM's code base (and itself! it's inconsistent in some places.) No functional changes were made. llvm-svn: 6265
* Sparc instruction opcodes now all live under the `V9' namespace.Misha Brukman2003-05-201-74/+76
| | | | llvm-svn: 6249
* IntegerRegSize is always 8 for sparcChris Lattner2003-04-261-3/+1
| | | | llvm-svn: 5961
* Fix obvious type-oChris Lattner2003-04-251-1/+1
| | | | llvm-svn: 5932
* Move sparc specific code into the Sparc backendChris Lattner2003-01-151-0/+47
| | | | llvm-svn: 5317
* Use BuildMI moreChris Lattner2003-01-151-26/+15
| | | | llvm-svn: 5299
* Use BuildMI more, Create*Instruction lessChris Lattner2003-01-151-21/+17
| | | | llvm-svn: 5291
* * Elimiante a bunch of functions from InstrSelectionSupport.h, replacing usersChris Lattner2003-01-151-33/+26
| | | | | | | of them with BUildMI calls instead. * Fix def information in instructions generated by prologepilog inserter llvm-svn: 5287
* Rename MachineInstrInfo -> TargetInstrInfoChris Lattner2003-01-141-4/+4
| | | | llvm-svn: 5272
* * TargetData is no longer directly accessable from TargetMachineChris Lattner2002-12-281-8/+9
| | | | | | * Constpool & frame info is no longer directly in MachineFunction llvm-svn: 5174
* MachineInstrInfo doesn't need a TargetMachineChris Lattner2002-10-291-2/+2
| | | | llvm-svn: 4372
* Changed `MachineCodeForMethod' to `MachineFunction'.Misha Brukman2002-10-281-10/+10
| | | | llvm-svn: 4301
* - Rename Instruction::First*Op to *OpsBegin, and Num*Ops to *OpsEnd toChris Lattner2002-10-131-8/+8
| | | | | | reflect the fact that it's a range being defined. llvm-svn: 4147
* Make sure to handle small negative values hiding as large unsigned longs --Vikram S. Adve2002-10-131-4/+10
| | | | | | this is a common case created by the front-end. llvm-svn: 4127
* Modify operand order for Create{Sign,Zero}ExtensionInstructions.Vikram S. Adve2002-09-271-17/+17
| | | | llvm-svn: 3960
* Add methods to query about the representation of LLVM quantities (e.g.,Vikram S. Adve2002-09-161-0/+79
| | | | | | | constants). Useful for target-dependent LLVM transformations like Preselection. llvm-svn: 3743
* Bug fixes in casting between floats and ints smaller than 64 bits.Vikram S. Adve2002-09-051-48/+102
| | | | | | Add UltraSparcInstrInfo::CreateZeroExtensionInstructions to help with that. llvm-svn: 3580
* - Renamed Type::isIntegral() to Type::isInteger()Chris Lattner2002-09-031-5/+5
| | | | | | | - Added new method Type::isIntegral() that is the same as isInteger, but also accepts bool. llvm-svn: 3574
* Several bug fixes in casting to signed int values.Vikram S. Adve2002-08-131-69/+141
| | | | llvm-svn: 3301
* * Removed extraneous #includesChris Lattner2002-08-091-26/+14
| | | | | | | * Fixed file headers to be consistent with the rest of LLVM * Other minor fixes llvm-svn: 3278
* Bug fix in CreateCodeToLoadConst(): use sign of dest, not operand,Vikram S. Adve2002-08-041-29/+7
| | | | | | in choosing how to create int-set instructions. llvm-svn: 3248
* Just improved comments and assertions.Vikram S. Adve2002-07-311-14/+18
| | | | llvm-svn: 3191
* GCC 3.1 changes, finally the burm file builds the FIRST time a clean ↵Chris Lattner2002-07-251-1/+1
| | | | | | directory is built. llvm-svn: 3073
* Major overhaul to stop using pseudo-instructions (SETX, SETUW, SETSW)Vikram S. Adve2002-07-101-110/+207
| | | | | | | | | | | and generate actual machine instruction sequences directly. Also a couple of bug fixes in code for putting constants into registers: -- Do *not* sign-extend unsigned constant that is shorter than int reg size -- Fix handling of address constant (a GlobalValue) vs. constant that must be loaded. llvm-svn: 2856
* Remove diff-cluttering tagsChris Lattner2002-06-301-1/+0
| | | | llvm-svn: 2808
* changes to make it compatible with 64bit gccAnand Shukla2002-06-251-1/+1
| | | | llvm-svn: 2791
* Numerous bug fixes:Vikram S. Adve2002-05-191-85/+212
| | | | | | | | | | | | | | | | | | | | | | | | -- correct sign extensions for integer casts and for shift-by-constant instructions generated for integer multiply -- passing FP arguments to functions with more than 6 arguments -- passing FP arguments to varargs functions -- passing FP arguments to functions with no prototypes -- incorrect stack frame size when padding a section -- folding getelementptr operations with mixed array and struct indexes -- use uint64_t instead of uint for constant offsets in mem operands -- incorrect coloring for CC registers (both int and FP): interferences were being completely ignored for int CC and were considered but no spills were marked for fp CC! Also some code improvements: -- better interface to generating machine instr for common cases (many places still need to be updated to use this interface) -- annotations on MachineInstr to communicate information from one codegen phase to another (now used to pass information about CALL/JMPLCALL operands from selection to register allocation) -- all sizes and offests in class TargetData are uint64_t instead of uint llvm-svn: 2640
* Replace all usages of Type::isPointerType with isa<PointerType>Chris Lattner2002-05-061-4/+4
| | | | 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-15/+15
| | | | | | | class. The Method class is obsolete (renamed) and all references to it are being converted over to Function. llvm-svn: 2144
OpenPOWER on IntegriCloud