| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
For one, converting register numbers based on class in the code emitter.
llvm-svn: 6447
|
| |
|
|
|
|
| |
changed.
llvm-svn: 6380
|
| |
|
|
|
|
|
|
| |
Also, added annotations to how instructions are modified (reg/imm operands).
Added prototype for adding register numbers to values pass for interfacing with
the target-independent register allocators in the JIT.
llvm-svn: 6366
|
| |
|
|
|
|
|
|
| |
Fixed spilling of %fcc[0-3] which are part of %fsr.
Moved some machine-independent reg-class code to class TargetRegInfo
from SparcReg{Class,}Info.
llvm-svn: 6339
|
| |
|
|
| |
llvm-svn: 6325
|
| |
|
|
| |
llvm-svn: 6323
|
| |
|
|
| |
llvm-svn: 6320
|
| |
|
|
| |
llvm-svn: 6249
|
| |
|
|
| |
llvm-svn: 5317
|
| |
|
|
|
|
| |
Eliminate dependency on RegClass.h
llvm-svn: 5315
|
| |
|
|
| |
llvm-svn: 5272
|
| |
|
|
| |
llvm-svn: 5204
|
| |
|
|
|
|
| |
Rename MachineCacheInfo to TargetCacheInfo
llvm-svn: 5202
|
| |
|
|
| |
llvm-svn: 5199
|
| |
|
|
|
|
| |
* Move some sparc specific code here from Target files
llvm-svn: 5176
|
| |
|
|
| |
llvm-svn: 4420
|
| |
|
|
| |
llvm-svn: 4415
|
| |
|
|
| |
llvm-svn: 4372
|
| |
|
|
| |
llvm-svn: 4359
|
| |
|
|
|
|
| |
really is sparc specific.
llvm-svn: 4308
|
| |
|
|
| |
llvm-svn: 4301
|
| |
|
|
| |
llvm-svn: 4129
|
| |
|
|
|
|
| |
needs the RegClass list to be passed in.
llvm-svn: 3964
|
| |
|
|
| |
llvm-svn: 3960
|
| |
|
|
|
|
|
| |
routines supporting machine code optimization.
Also added method MachineInstrInfo::getNOPOpCode().
llvm-svn: 3845
|
| |
|
|
|
|
|
|
| |
TargetMachine.cpp, since it is entirely machine-independent.
Also, add options to disable optional back-end passes (preselection and
instr. scheduling).
llvm-svn: 3740
|
| |
|
|
| |
llvm-svn: 3581
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Eliminate Sparc*Order classes, moving contents to Sparc*Class classes
- get register name methods now return const char * const pointers instead
of std::string's.
- Added file header comments to SparcRegClassInfo.(cpp|h)
- Moved BIG constant arrays out of SparcRegClassInfo.h, into
SparcRegInfo.cpp. This should allow a LOT of std::string constructors to
not have to be called.
llvm-svn: 3295
|
| |
|
|
|
|
|
| |
* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes
llvm-svn: 3278
|
| |
|
|
|
|
| |
directory is built.
llvm-svn: 3073
|
| |
|
|
| |
llvm-svn: 2874
|
| |
|
|
| |
llvm-svn: 2859
|
| |
|
|
|
|
|
|
| |
changes in class MachineRegInfo (see MachineRegInfo.h for details).
Added {LD,ST}[X]FSR instructions.
llvm-svn: 2839
|
| |
|
|
| |
llvm-svn: 2808
|
| |
|
|
| |
llvm-svn: 2791
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-- 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
|
| |
|
|
| |
llvm-svn: 2397
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Rename runOnMethod to runOnFunction
* Transform getAnalysisUsageInfo into getAnalysisUsage
- Method is now const
- It now takes one AnalysisUsage object to fill in instead of 3 vectors
to fill in
- Pass's now specify which other passes they _preserve_ not which ones
they modify (be conservative!)
- A pass can specify that it preserves all analyses (because it never
modifies the underlying program)
* s/Method/Function/g in other random places as well
llvm-svn: 2333
|
| |
|
|
|
|
| |
for a particular argument in a list of arguments.
llvm-svn: 2315
|
| |
|
|
| |
llvm-svn: 2192
|
| |
|
|
| |
llvm-svn: 2180
|
| |
|
|
|
|
| |
for that value.
llvm-svn: 2074
|
| |
|
|
| |
llvm-svn: 2035
|
| |
|
|
| |
llvm-svn: 1890
|
| |
|
|
|
|
| |
Silence warning
llvm-svn: 1790
|
| |
|
|
| |
llvm-svn: 1728
|
| |
|
|
|
|
|
|
|
|
| |
* Reduce number of #includes
* Remove blatently misleading qualifiers (how do you have an inlined pure virtual function?)
* Remove unnecesary & ignored qualifiers (const int argument vs int argument)
* SparcInternals.h now no longer #includes RegClass.h or SparcRegClassInfo.h
* Pull inlined functions out of .h file if they are virtual and interfere with dependencies
llvm-svn: 1677
|
| |
|
|
|
|
|
| |
Eventually they will probably get moved again, but at least now they aren't
having to be compiled by 7 different .cpp files...
llvm-svn: 1666
|
| |
|
|
|
|
| |
Try to decouple stuff as much as possible.
llvm-svn: 1664
|