- Aug 04, 2008
-
-
Bruno Cardoso Lopes authored
llvm-svn: 54315
-
- Aug 03, 2008
-
-
Bruno Cardoso Lopes authored
llvm-svn: 54312
-
- Aug 02, 2008
-
-
Bruno Cardoso Lopes authored
Added hi,lo registers to be used,def implicitly. This provides better handle of instructions which use hi/lo. Fixes a small BranchAnalysis bug llvm-svn: 54274
-
Bruno Cardoso Lopes authored
llvm-svn: 54273
-
- Jul 31, 2008
-
-
Bruno Cardoso Lopes authored
llvm-svn: 54250
-
Bruno Cardoso Lopes authored
the default legalizer. llvm-svn: 54249
-
- Jul 30, 2008
-
-
Bruno Cardoso Lopes authored
access). Added pattern to match bitconvert node. Fixed MTC1 asm string bug. llvm-svn: 54229
-
Bruno Cardoso Lopes authored
llvm-svn: 54215
-
Bruno Cardoso Lopes authored
llvm-svn: 54214
-
Bruno Cardoso Lopes authored
llvm-svn: 54213
-
Bruno Cardoso Lopes authored
llvm-svn: 54212
-
- Jul 29, 2008
-
-
Bruno Cardoso Lopes authored
llvm-svn: 54169
-
Bruno Cardoso Lopes authored
llvm-svn: 54167
-
- Jul 28, 2008
-
-
Bruno Cardoso Lopes authored
llvm-svn: 54142
-
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 22, 2008
-
-
Bruno Cardoso Lopes authored
llvm-svn: 53912
-
Bruno Cardoso Lopes authored
Fixed small bug. llvm-svn: 53908
-
- 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 19, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 53791
-
Anton Korobeynikov authored
llvm-svn: 53790
-
- Jul 17, 2008
-
-
Dan Gohman authored
replacement of multiple values. This is slightly more efficient than doing multiple ReplaceAllUsesOfValueWith calls, and theoretically could be optimized even further. However, an important property of this new function is that it handles the case where the source value set and destination value set overlap. This makes it feasible for isel to use SelectNodeTo in many very common cases, which is advantageous because SelectNodeTo avoids a temporary node and it doesn't require CSEMap updates for users of values that don't change position. Revamp MorphNodeTo, which is what does all the work of SelectNodeTo, to handle operand lists more efficiently, and to correctly handle a number of corner cases to which its new wider use exposes it. This commit also includes a change to the encoding of post-isel opcodes in SDNodes; now instead of being sandwiched between the target-independent pre-isel opcodes and the target-dependent pre-isel opcodes, post-isel opcodes are now represented as negative values. This makes it possible to test if an opcode is pre-isel or post-isel without having to know the size of the current target's post-isel instruction set. These changes speed up llc overall by 3% and reduce memory usage by 10% on the InstructionCombining.cpp testcase with -fast and -regalloc=local. llvm-svn: 53728
-
- Jul 15, 2008
-
-
Bruno Cardoso Lopes authored
llvm-svn: 53585
-
- Jul 14, 2008
-
-
Bruno Cardoso Lopes authored
Added HasABICall and HasAbsoluteCall (equivalent to gcc -mabicall and -mno-shared). HasAbsoluteCall is not implemented but HasABICall is the default for o32 ABI. Now, both should help into a more accurate relocation types implementation. Added IsLinux is needed to choose between asm directives. Instruction name strings cleanup. AsmPrinter improved. llvm-svn: 53551
-
- Jul 09, 2008
-
-
Bill Wendling authored
llvm-svn: 53278
-
Bruno Cardoso Lopes authored
llvm-svn: 53277
-
Bruno Cardoso Lopes authored
llvm-svn: 53272
-
Bruno Cardoso Lopes authored
llvm-svn: 53270
-
- Jul 08, 2008
-
-
Duncan Sands authored
llvm-svn: 53227
-
Dan Gohman authored
MachineMemOperands. The pools are owned by MachineFunctions. This drastically reduces the number of calls to malloc/free made during the "Emit" phase of scheduling, as well as later phases in CodeGen. Combined with other changes, this speeds up the "instruction selection" phase of CodeGen by 10% in some cases. llvm-svn: 53212
-
- Jul 07, 2008
-
-
Bruno Cardoso Lopes authored
llvm-svn: 53192
-
Dan Gohman authored
llvm-svn: 53179
-
- 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
-
- Jul 03, 2008
-
-
Evan Cheng authored
- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc. - Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list. llvm-svn: 53097
-
- Jul 01, 2008
-
-
Dan Gohman authored
the need for a flavor operand, and add a new SDNode subclass, LabelSDNode, for use with them to eliminate the need for a label id operand. Change instruction selection to let these label nodes through unmodified instead of creating copies of them. Teach the MachineInstr emitter how to emit a MachineInstr directly from an ISD label node. This avoids the need for allocating SDNodes for the label id and flavor value, as well as SDNodes for each of the post-isel label, label id, and label flavor. llvm-svn: 52943
-
- Jun 30, 2008
-
-
Dan Gohman authored
purpose, and give it a custom SDNode subclass so that it doesn't need to have line number, column number, filename string, and directory string, all existing as individual SDNodes to be the operands. This was the only user of ISD::STRING, StringSDNode, etc., so remove those and some associated code. This makes stop-points considerably easier to read in -view-legalize-dags output, and reduces overhead (creating new nodes and copying std::strings into them) on code containing debugging information. llvm-svn: 52924
-
Evan Cheng authored
llvm-svn: 52923
-
Duncan Sands authored
it impossible to create a MERGE_VALUES node with only one result: sometimes it is useful to be able to create a node with only one result out of one of the results of a node with more than one result, for example because the new node will eventually be used to replace a one-result node using ReplaceAllUsesWith, cf X86TargetLowering::ExpandFP_TO_SINT. On the other hand, most users of MERGE_VALUES don't need this and for them the optimization was valuable. So add a new utility method getMergeValues for creating MERGE_VALUES nodes which by default performs the optimization. Change almost everywhere to use getMergeValues (and tidy some stuff up at the same time). llvm-svn: 52893
-
- Jun 19, 2008
-
-
Evan Cheng authored
llvm-svn: 52478
-