- Oct 28, 2009
-
-
Evan Cheng authored
llvm-svn: 85361
-
- Oct 27, 2009
-
-
Evan Cheng authored
Do away with addLegalFPImmediate. Add a target hook isFPImmLegal which returns true if the fp immediate can be natively codegened by target. llvm-svn: 85281
-
- Sep 18, 2009
-
-
Evan Cheng authored
Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that sdisel will use to properly complete phi nodes. Not functionality change yet. llvm-svn: 82273
-
- Sep 02, 2009
-
-
Sandeep Patel authored
llvm-svn: 80773
-
- Aug 13, 2009
-
-
Chris Lattner authored
implemented somewhat differently than before, but it should have the same functionality and the previous testcase passes again. llvm-svn: 78900
-
Chris Lattner authored
llvm-svn: 78894
-
- Aug 11, 2009
-
-
Owen Anderson authored
the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
-
Owen Anderson authored
llvm-svn: 78610
-
- Aug 10, 2009
-
-
Owen Anderson authored
Start moving TargetLowering away from using full MVTs and towards SimpleValueType, which will simplify the privatization of IntegerType in the future. llvm-svn: 78584
-
- Aug 05, 2009
-
-
Dan Gohman authored
Instead of awkwardly encoding calling-convention information with ISD::CALL, ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering provides three virtual functions for targets to override: LowerFormalArguments, LowerCall, and LowerRet, which replace the custom lowering done on the special nodes. They provide the same information, but in a more immediately usable format. This also reworks much of the target-independent tail call logic. The decision of whether or not to perform a tail call is now cleanly split between target-independent portions, and the target dependent portion in IsEligibleForTailCallOptimization. This also synchronizes all in-tree targets, to help enable future refactoring and feature work. llvm-svn: 78142
-
- Jul 24, 2009
-
-
Chris Lattner authored
llvm-svn: 76936
-
- Jul 03, 2009
-
-
Tilmann Scheller authored
Small refactoring in LowerFORMAL_ARGUMENTS(). Correct minor formatting issues. Remove size argument of CreateCopyOfByValArgument(). Remove dead argument from CalculateStackSlotSize(). Remove unused variable ReturnAddrIndex from various targets. llvm-svn: 74763
-
- Jul 01, 2009
-
-
Bill Wendling authored
bytes and not bytes. llvm-svn: 74624
-
Bill Wendling authored
have the alignment be calculated up front, and have the back-ends obey whatever alignment is decided upon. This allows for future work that would allow for precise no-op placement and the like. llvm-svn: 74564
-
- May 27, 2009
-
-
Bruno Cardoso Lopes authored
llvm-svn: 72483
-
- Feb 07, 2009
-
-
Dan Gohman authored
ScheduleDAG's TLI member to use const. llvm-svn: 64018
-
- Jan 01, 2009
-
-
Duncan Sands authored
promote from i1 all the way up to the canonical SetCC type. In order to discover an appropriate type to use, pass MVT::Other to getSetCCResultType. In order to be able to do this, change getSetCCResultType to take a type as an argument, not a value (this is also more logical). llvm-svn: 61542
-
- Oct 18, 2008
-
-
Dan Gohman authored
and add a TargetLowering hook for it to use to determine when this is legal (i.e. not in PIC mode, etc.) This allows instruction selection to emit folded constant offsets in more cases, such as the included testcase, eliminating the need for explicit arithmetic instructions. This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp that attempted to achieve the same effect, but wasn't as effective. Also, fix handling of offsets in GlobalAddressSDNodes in several places, including changing GlobalAddressSDNode's offset from int to int64_t. The Mips, Alpha, Sparc, and CellSPU targets appear to be unaware of GlobalAddress offsets currently, so set the hook to false on those targets. llvm-svn: 57748
-
- Sep 23, 2008
-
-
Dan Gohman authored
instruction opcodes are now numbered. No functionality change. llvm-svn: 56497
-
- Sep 13, 2008
-
-
Dan Gohman authored
Currently it just holds the calling convention and flags for isVarArgs and isTailCall. And it has several utility methods, which eliminate magic 5+2*i and similar index computations in several places. CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle nodes that are not CSE'd gracefully. llvm-svn: 56183
-
- Aug 13, 2008
-
-
Bruno Cardoso Lopes authored
is lowered properly and covers everything LowerSELECT_CC did. Added method printUnsignedImm in AsmPrinter to print uimm16 operands. This avoid the ugly instruction by instruction checking in printOperand. Added a swap instruction present in the allegrex core. Added two conditional instructions present in the allegrex core : MOVZ and MOVN. They both allow a more efficient SELECT operation for integers. Also added SELECT patterns to optimize MOVZ and MOVN usage. The brcond and setcc patterns were cleaned: redundant and suboptimal patterns were removed. The suboptimals were replaced by more efficient ones. Fixed some instructions that were using immZExt16 instead of immSExt16. llvm-svn: 54724
-
- Aug 07, 2008
-
-
Bruno Cardoso Lopes authored
Fixed bug in adjustMipsStackFrame, which was breaking while trying to access a dead stack object index. Also added one more alignment before fixing the callee saved registers stack offset adjustment. llvm-svn: 54485
-
- Aug 04, 2008
-
-
Bruno Cardoso Lopes authored
aren't used anyway, they also used to broke compiling when fastcc was specified for a function, but not anymore. llvm-svn: 54316
-
- Aug 02, 2008
-
-
Bruno Cardoso Lopes authored
llvm-svn: 54273
-
- Jul 31, 2008
-
-
Bruno Cardoso Lopes authored
the default legalizer. llvm-svn: 54249
-
- Jul 29, 2008
-
-
Bruno Cardoso Lopes authored
llvm-svn: 54167
-
- Jul 28, 2008
-
-
Bruno Cardoso Lopes authored
Fixed COMM asm directive usage. ConstantPool using custom FourByteConstantSection. llvm-svn: 54139
-
- Jul 27, 2008
-
-
Dan Gohman authored
llvm-svn: 54128
-
- Jul 23, 2008
-
-
Bruno Cardoso Lopes authored
Added ConstantPool support. llvm-svn: 53951
-
- Jul 21, 2008
-
-
Bruno Cardoso Lopes authored
Added gp_rel relocations to support addressing small section contents. Added command line to specify small section threshold in bytes. llvm-svn: 53869
-
- Jul 09, 2008
-
-
Bruno Cardoso Lopes authored
llvm-svn: 53272
-
Bruno Cardoso Lopes authored
llvm-svn: 53270
-
- Jul 05, 2008
-
-
Bruno Cardoso Lopes authored
important. - Cleanup in the Subtarget info with addition of new features, not all support yet, but they allow the future inclusion of features easier. Among new features, we have : Arch family info (mips1, mips2, ...), ABI info (o32, eabi), 64-bit integer and float registers, allegrex vector FPU (VFPU), single float only support. - TargetMachine now detects allegrex core. - Added allegrex (Mips32r2) sext_inreg instructions. - *Added Float Point Instructions*, handling single float only, and aliased accesses for 32-bit FPUs. - Some cleanup in FP instruction formats and FP register classes. - Calling conventions improved to support mips 32-bit EABI. - Added Asm Printer support for fp cond codes. - Added support for sret copy to a return register. - EABI support added into LowerCALL and FORMAL_ARGS. - MipsFunctionInfo now keeps a virtual register per function to track the sret on function entry until function ret. - MipsInstrInfo FP support into methods (isMoveInstr, isLoadFromStackSlot, ...), FP cond codes mapping and initial FP Branch Analysis. - Two new Mips SDNode to handle fp branch and compare instructions : FPBrcond, FPCmp - MipsTargetLowering : handling different FP classes, Allegrex support, sret return copy, no homing location within EABI, non 32-bit stack objects arguments, and asm constraint for float. llvm-svn: 53146
-
- Jun 06, 2008
-
-
Duncan Sands authored
and better control the abstraction. Rename the type to MVT. To update out-of-tree patches, the main thing to do is to rename MVT::ValueType to MVT, and rewrite expressions like MVT::getSizeInBits(VT) in the form VT.getSizeInBits(). Use VT.getSimpleVT() to extract a MVT::SimpleValueType for use in switch statements (you will get an assert failure if VT is an extended value type - these shouldn't exist after type legalization). This results in a small speedup of codegen and no new testsuite failures (x86-64 linux). llvm-svn: 52044
-
Bruno Cardoso Lopes authored
Added special isel for ADDE,SUBE and new patterns to match SUBC,ADDC llvm-svn: 52031
-
- Mar 10, 2008
-
-
Scott Michel authored
return ValueType can depend its operands' ValueType. This is a cosmetic change, no functionality impacted. llvm-svn: 48145
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Nov 12, 2007
-
-
Bruno Cardoso Lopes authored
Fixed some AsmPrinter issues Added GLOBAL_OFFSET_TABLE Node handle. llvm-svn: 44024
-
- Nov 05, 2007
-
-
Bruno Cardoso Lopes authored
Removed all macro code for PIC (goodbye "la"). Support tested with shootout bench. llvm-svn: 43697
-
- Oct 09, 2007
-
-
Bruno Cardoso Lopes authored
llvm-svn: 42780
-