|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | llvm-svn: 8892 | 
| | 
| 
| 
| | llvm-svn: 8686 | 
| | 
| 
| 
| | llvm-svn: 7944 | 
| | 
| 
| 
| 
| 
| | * Simplified code by using an inline function instead of copy-pasted code
llvm-svn: 7597 | 
| | 
| 
| 
| 
| 
| 
| 
| | Note that some generated operators (like &, | or ^) may
not be supported by the assembler -- but if they've got
this far, it's better to generate them and let the assembler decide.
llvm-svn: 7476 | 
| | 
| 
| 
| 
| 
| | ordinary (primitive) types since ConstantExprs may be of primitive type!
llvm-svn: 7418 | 
| | 
| 
| 
| 
| 
| | which were wrong (particularly, '\a' for '\007').
llvm-svn: 7393 | 
| | 
| 
| 
| | llvm-svn: 7253 | 
| | 
| 
| 
| 
| 
| | whether the constant is signed or unsigned, then casting
llvm-svn: 7252 | 
| | 
| 
| 
| | llvm-svn: 7173 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | (1) An int CC live range must be spilled if there are any interferences,
    even if no other "neighbour" in the interf. graph has been allocated
    that reg. yet.  This is actually true of any class with only one reg!
(2) SparcIntCCRegClass::colorIGNode sets the color even if the LR must
    be spilled so that the machine-independent spill code doesn't have to
    make the machine-dependent decision of which CC name to use based on
    operand type: %xcc or %icc.  (These are two halves of the same register.)
(3) LR->isMarkedForSpill() is no longer the same as LR->hasColor().
    These should never have been the same, and this is necessary now for #2.
(4) All RDCCR and WRCCR instructions are directly generated with the
    phony number for %ccr so that EmitAssembly/EmitBinary doesn't have to
    deal with this.
llvm-svn: 7151 | 
| | 
| 
| 
| 
| 
| 
| 
| | integer overflow):
We need to use %icc and not %xcc for comparisons on 32-bit or smaller
integer values.
llvm-svn: 7111 | 
| | 
| 
| 
| | llvm-svn: 6464 | 
| | 
| 
| 
| | llvm-svn: 6459 | 
| | 
| 
| 
| | llvm-svn: 6373 | 
| | 
| 
| 
| 
| 
| 
| 
| | 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: 6333 | 
| | 
| 
| 
| | llvm-svn: 6249 | 
| | 
| 
| 
| 
| 
| | * Changes because frame info is not in MachineFunction directly anymore
llvm-svn: 5171 | 
| | 
| 
| 
| | llvm-svn: 4730 | 
| | 
| 
| 
| 
| 
| | prevented any machine instrs from being printed!
llvm-svn: 4557 | 
| | 
| 
| 
| | llvm-svn: 4451 | 
| | 
| 
| 
| | llvm-svn: 4390 | 
| | 
| 
| 
| | llvm-svn: 4352 | 
| | 
| 
| 
| 
| 
| | MachineOperand::getType()
llvm-svn: 4331 | 
| | 
| 
| 
| | llvm-svn: 4323 | 
| | 
| 
| 
| | llvm-svn: 4318 | 
| | 
| 
| 
| | llvm-svn: 4301 | 
| | 
| 
| 
| | llvm-svn: 4179 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | interface with code that uses symbols in the ansi-c protected namespace.  In
most cases this comes from system header files, such as stdio.h.  In particular,
without this change, a reference to the __iob symbol is mangled into ll_iob,
which is not resolved by libc.
llvm-svn: 4165 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | (1) Padding bytes between structure fields (for alignment) were never
    being emitted into the constant pool so the layout did not match!
(2) In printing constants, structures containing structures or arrays
    were never handled.
(3) Support new model for external/uninitialized/initialized globals.
    Uninitialized globals are no longer emitted since they are external.
    Initialized globals may go either in .bss or in .data.
llvm-svn: 4134 | 
| | 
| 
| 
| 
| 
| | constructors so passes can be inserted by TargetMachine.cpp.
llvm-svn: 3742 | 
| | 
| 
| 
| | llvm-svn: 3714 | 
| | 
| 
| 
| 
| 
| 
| | -- Add support for ConstantExpr constants (only cast and add operators so far)
-- Avoid generating label Bbss.bss, which sometimes came out twice.
llvm-svn: 3578 | 
| | 
| 
| 
| 
| 
| | more efficient to boot.
llvm-svn: 3453 | 
| | 
| 
| 
| 
| 
| | as an expression.
llvm-svn: 3442 | 
| | 
| 
| 
| | llvm-svn: 3402 | 
| | 
| 
| 
| | llvm-svn: 3259 | 
| | 
| 
| 
| | llvm-svn: 3056 | 
| | 
| 
| 
| 
| 
| 
| | * Do NOT add a prefix to global variables that are external
* Add newline after emitting a constpointerref
llvm-svn: 2925 | 
| | 
| 
| 
| | llvm-svn: 2857 | 
| | 
| 
| 
| 
| 
| | assembly.
llvm-svn: 2842 | 
| | 
| 
| 
| | llvm-svn: 2837 | 
| | 
| 
| 
| 
| 
| | For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2778 | 
| | 
| 
| 
| | llvm-svn: 2761 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | -- 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 | 
| | 
| 
| 
| 
| 
| | to make debugging output a lot nicer.
llvm-svn: 2395 | 
| | 
| 
| 
| 
| 
| | indicate whether or not they invalidate the CFGA
llvm-svn: 2386 | 
| | 
| 
| 
| | llvm-svn: 2381 |