| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 25985
|
|
|
|
| |
llvm-svn: 11826
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 9903
|
|
|
|
|
|
|
|
| |
* Do not create new globals for constants!
Also, order #includes as per coding style guide
llvm-svn: 9772
|
|
|
|
| |
llvm-svn: 9334
|
|
|
|
| |
llvm-svn: 9333
|
|
|
|
|
|
| |
Header files will be on the way.
llvm-svn: 9298
|
|
|
|
|
|
| |
"Instruction::PHI" to be more consistent with the other instructions.
llvm-svn: 9269
|
|
|
|
| |
llvm-svn: 9037
|
|
|
|
|
|
| |
in ConvertConstantToIntType.
llvm-svn: 7395
|
|
|
|
|
|
| |
whether the constant is signed or unsigned, then casting
llvm-svn: 7252
|
|
|
|
| |
llvm-svn: 7158
|
|
|
|
|
|
| |
system.
llvm-svn: 7014
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
llvm-svn: 6565
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 6373
|
|
|
|
| |
llvm-svn: 6332
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 6249
|
|
|
|
| |
llvm-svn: 5961
|
|
|
|
| |
llvm-svn: 5932
|
|
|
|
| |
llvm-svn: 5317
|
|
|
|
| |
llvm-svn: 5299
|
|
|
|
| |
llvm-svn: 5291
|
|
|
|
|
|
|
| |
of them with BUildMI calls instead.
* Fix def information in instructions generated by prologepilog inserter
llvm-svn: 5287
|
|
|
|
| |
llvm-svn: 5272
|
|
|
|
|
|
| |
* Constpool & frame info is no longer directly in MachineFunction
llvm-svn: 5174
|
|
|
|
| |
llvm-svn: 4372
|
|
|
|
| |
llvm-svn: 4301
|
|
|
|
|
|
| |
reflect the fact that it's a range being defined.
llvm-svn: 4147
|
|
|
|
|
|
| |
this is a common case created by the front-end.
llvm-svn: 4127
|
|
|
|
| |
llvm-svn: 3960
|
|
|
|
|
|
|
| |
constants). Useful for target-dependent LLVM transformations like
Preselection.
llvm-svn: 3743
|
|
|
|
|
|
| |
Add UltraSparcInstrInfo::CreateZeroExtensionInstructions to help with that.
llvm-svn: 3580
|
|
|
|
|
|
|
| |
- Added new method Type::isIntegral() that is the same as isInteger, but
also accepts bool.
llvm-svn: 3574
|
|
|
|
| |
llvm-svn: 3301
|
|
|
|
|
|
|
| |
* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes
llvm-svn: 3278
|
|
|
|
|
|
| |
in choosing how to create int-set instructions.
llvm-svn: 3248
|
|
|
|
| |
llvm-svn: 3191
|
|
|
|
|
|
| |
directory is built.
llvm-svn: 3073
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
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: 2486
|
|
|
|
| |
llvm-svn: 2397
|
|
|
|
| |
llvm-svn: 2378
|
|
|
|
|
|
|
| |
class. The Method class is obsolete (renamed) and all references to it
are being converted over to Function.
llvm-svn: 2144
|