aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/Sparc
AgeCommit message (Collapse)Author
2006-08-11Match tablegen changes.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29604 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11CALLSEQ_* produces chain even if that's not needed.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29603 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-08Start eliminating temporary vectors used to create DAG nodes. Instead, passChris Lattner
in the start of an array and a count of operands where applicable. In many cases, the number of operands is known, so this static array can be allocated on the stack, avoiding the heap. In many other cases, a SmallVector can be used, which has the same benefit in the common cases. I updated a lot of code calling getNode that takes a vector, but ran out of time. The rest of the code should be updated, and these methods should be removed. We should also do the same thing to eliminate the methods that take a vector of MVT::ValueTypes. It would be extra nice to convert the dagiselemitter to avoid creating vectors for operands when calling getTargetNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29566 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07Match tablegen isel changes.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29549 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-28Remove InFlightSet hack. No longer needed.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29373 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-16Don't pass target name into TargetData anymore, it is never used or needed.Chris Lattner
Remove explicit casts to std::string now that there is no overload resolution issues in the TargetData ctors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28830 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-15Type of extract_element index operand should be iPTR.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28797 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-26Change RET node to include signness information of the return values. i.e.Evan Cheng
RET chain, value1, sign1, value2, sign2, ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28510 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-25Add support for the missing FP condition codesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28482 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-25Assert if InflightSet is not cleared after instruction selecting a BB.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28459 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-24Clear HandleMap and ReplaceMap after instruction selection. Or it may causeEvan Cheng
non-deterministic behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28454 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-24Patches to make the LLVM sources more -pedantic clean. Patch providedChris Lattner
by Anton Korobeynikov! This is a step towards closing PR786. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28447 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-20Sparc is big-endian.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28415 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-20Make all of the TargetMachine subclasses use the new string TargetData methods.Owen Anderson
This is part of the on-going work on PR 761. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28414 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-18getCalleeSaveRegs and getCalleeSaveRegClasses are no long TableGen'd.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28378 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-17Remove PointerType from class TargetEvan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28368 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-12Remove dead variable.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28247 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-12Refactor a bunch of includes so that TargetMachine.h doesn't have to includeOwen Anderson
TargetData.h. This should make recompiles a bit faster with my current TargetData tinkering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28238 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-09Split SwitchSection into SwitchTo{Text|Data}Section methods.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28184 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-09Some notes and thoughts to myselfChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28182 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-04Rename MO_VirtualRegister -> MO_Register. Clean up immediate handling.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28104 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-04Move some methods out of MachineInstr into MachineOperandChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28102 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-04There shalt be only one "immediate" operand type!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28099 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-04Remove a bunch more SparcV9 specific stuffChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28093 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-04Remove some more unused stuff from MachineInstr that was leftover from V9.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28091 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-03Refactor TargetMachine, pushing handling of TargetData into the ↵Owen Anderson
target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. This fixes PR 759. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28074 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-02Extend printBasicBlockLabel a bit so that it can be used to print allNate Begeman
basic block labels, consolidating the code to do so in one place for each target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28050 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-22JumpTable support! What this represents is working asm and jit support forNate Begeman
x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13Add the README files to the distribution.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27651 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-08Disable switch lowering for targets based on the selection dag isel,Nate Begeman
letting the code generator handle them directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27539 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-07Foundation for call frame information.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27491 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-28Expose base register for DwarfWriter. Refactor code accordingly.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27225 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-27Translate llvm target registers to dwarf register numbers properly.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27180 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-27SelectionDAGISel can now natively handle Switch instructions, in the sameNate Begeman
manner that the LowerSwitch LLVM to LLVM pass does: emitting a binary search tree of basic blocks. The new approach has several advantages: it is faster, it generates significantly smaller code in many cases, and it paves the way for implementing dense switch tables as a jump table by handling switches directly in the instruction selector. This functionality is currently only enabled on x86, but should be safe for every target. In anticipation of making it the default, the cfg is now properly updated in the x86, ppc, and sparc select lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27156 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-25#include Intrinsics.h into all dag iselsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27109 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-24D'oh - should be even numbered.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27088 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-24Add dwarf register numbering to register data.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27081 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-23Add support to locate local variables in frames (early version.)Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26994 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-23Eliminate IntrinsicLowering from TargetMachine.Chris Lattner
Make the CBE and V9 backends create their own, since they're the only ones that use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26974 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-17Remove BRTWOWAY*Nate Begeman
Make the PPC backend not dependent on BRTWOWAY_CC and make the branch selector smarter about the code it generates, fixing a case in the readme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26814 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09Add support for 'special' llvm globals like debug info and static ctors/dtors.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26628 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-05Copysign needs to be expanded everywhere. Note that Alpha and IA64 shouldChris Lattner
implement copysign as a native op if they have it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26541 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-27Don't print constant initializers, they may span lines now.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26403 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-21The HasNoV9 hack isn't needed here, now that tblgen knows that ↵Chris Lattner
CustomDAGSchedInserter instructions are expensive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26298 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-17kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBCNate Begeman
and SUBE nodes that actually expose what's going on and allow for significant simplifications in the targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26255 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-16Rework the SelectionDAG-based implementations of SimplifyDemandedBitsNate Begeman
and ComputeMaskedBits to match the new improved versions in instcombine. Tested against all of multisource/benchmarks on ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26238 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-15Sparc actually *DOES* have a directive for emitting zeros. In fact, it requiresChris Lattner
it, because this: .bss X: .byte 0 results in the assembler warning: "initialization in bss segment". Annoying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26204 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-15Fix SingleSource/Regression/C/2004-08-12-InlinerAndAllocas.c on Sparc.Chris Lattner
The ABI specifies that there is a register save area at the bottom of the stack, which means the actual used pointer needs to be an offset from the subtracted value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26202 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-13Switch targets over to using SelectionDAG::getCALLSEQ_START to createChris Lattner
CALLSEQ_START nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26143 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-10Use the auto-generated call matcher. Remove a broken impl of the ↵Chris Lattner
frameaddr/returnaddr intrinsics. Autogen frameindex matcher git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26107 91177308-0d34-0410-b5e6-96231b3b80d8