| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 3301
|
| |
|
|
|
|
| |
Bug fixes in casting to signed int values.
llvm-svn: 3297
|
| |
|
|
|
|
| |
-Chris
llvm-svn: 3296
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
| |
llvm-svn: 3259
|
| |
|
|
| |
llvm-svn: 3258
|
| |
|
|
| |
llvm-svn: 3251
|
| |
|
|
|
|
| |
in choosing how to create int-set instructions.
llvm-svn: 3248
|
| |
|
|
|
|
| |
when folding or not folding GEPs.
llvm-svn: 3245
|
| |
|
|
| |
llvm-svn: 3243
|
| |
|
|
| |
llvm-svn: 3236
|
| |
|
|
| |
llvm-svn: 3198
|
| |
|
|
| |
llvm-svn: 3191
|
| |
|
|
| |
llvm-svn: 3188
|
| |
|
|
|
|
| |
shared by backends.
llvm-svn: 3146
|
| |
|
|
| |
llvm-svn: 3089
|
| |
|
|
|
|
| |
directory is built.
llvm-svn: 3073
|
| |
|
|
| |
llvm-svn: 3056
|
| |
|
|
| |
llvm-svn: 2992
|
| |
|
|
| |
llvm-svn: 2979
|
| |
|
|
|
|
|
| |
* Do NOT add a prefix to global variables that are external
* Add newline after emitting a constpointerref
llvm-svn: 2925
|
| |
|
|
| |
llvm-svn: 2913
|
| |
|
|
| |
llvm-svn: 2874
|
| |
|
|
| |
llvm-svn: 2859
|
| |
|
|
|
|
| |
and generate actual machine instruction sequences directly.
llvm-svn: 2858
|
| |
|
|
| |
llvm-svn: 2857
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
-- FP argument to a function with no prototype going on stack
was not being copied to the stack in colorCallArgs().
-- Put caller-saving code *before* argument copying code so that
we don't trash a register before saving it!
-- Two other minor fixes.
llvm-svn: 2855
|
| |
|
|
| |
llvm-svn: 2845
|
| |
|
|
|
|
| |
assembly.
llvm-svn: 2842
|
| |
|
|
|
|
|
|
| |
changes in class MachineRegInfo (see MachineRegInfo.h for details).
Added {LD,ST}[X]FSR instructions.
llvm-svn: 2839
|
| |
|
|
| |
llvm-svn: 2838
|
| |
|
|
| |
llvm-svn: 2837
|
| |
|
|
|
|
|
|
|
|
| |
basic block.
Mark setCCInstr used as dest. of conditional-move as both a def and a use.
BA instruction no longer has the unused CC argument.
llvm-svn: 2836
|
| |
|
|
|
|
|
| |
Added LDFSR, LDXFSR, STFSR and STXFSR.
Fixed operands info for RDCCR, WRCCR.
llvm-svn: 2835
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
handle conditional move instructions:
-- cpMem<->Reg functions now support CC registers (int and FP) correctly.
Also, cpMem<->Reg functions now return a vector of machine instructions.
-- Scratch registers must be explicitly provided to cpMem<->Reg when
needed, since CC regs need one to be copied to/from memory.
-- CC regs are saved to a scratch register instead of stack.
-- All regs used by a instruction are now recorded in MachineInstr::regsUsed,
since regs used to save values *across* an instruction are not obvious
either from the operands or from the LiveVar sets.
-- An (explicit or implicit) operand may now be both a def and a use.
This is needed for conditional move operations.
So an operand may need spill code both before and after the instruction.
Other changes:
-- Added several get{Class,Type} functions.
-- Added unified-to-local register number conversion.
-- class MachineCodeForBasicBlock is now an annotation on BasicBlock.
-- Suggest/Color methods may modify the MachineInstr (and always did),
so don't make that argument const!
-- Caller-saving code doesn't need its special purpose code for
handling CC registers since cpMem<->Reg handle those correctly now.
llvm-svn: 2834
|
| |
|
|
| |
llvm-svn: 2808
|
| |
|
|
| |
llvm-svn: 2791
|
| |
|
|
|
|
| |
For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2778
|
| |
|
|
| |
llvm-svn: 2762
|
| |
|
|
| |
llvm-svn: 2761
|
| |
|
|
| |
llvm-svn: 2756
|
| |
|
|
|
|
| |
a vector. This makes asserting on array bounds easier.
llvm-svn: 2731
|
| |
|
|
| |
llvm-svn: 2688
|
| |
|
|
| |
llvm-svn: 2663
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-- 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: 2486
|
| |
|
|
| |
llvm-svn: 2397
|
| |
|
|
|
|
| |
to make debugging output a lot nicer.
llvm-svn: 2395
|