- Aug 13, 2008
-
-
Dan Gohman authored
the comments in FastISelEmitter.cpp for details on what this is. This is currently experimental and unusable. llvm-svn: 54751
-
Dan Gohman authored
llvm-svn: 54750
-
- Aug 11, 2008
-
-
Chris Lattner authored
llvm-svn: 54630
-
- Aug 06, 2008
-
-
Bill Wendling authored
llvm-svn: 54386
-
- Jul 30, 2008
-
-
Mon P Wang authored
to different address spaces. This alters the naming scheme for those intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32 llvm-svn: 54195
-
- Jul 28, 2008
-
-
Bill Wendling authored
llvm-svn: 54137
-
- Jul 27, 2008
-
-
Dan Gohman authored
llvm-svn: 54128
-
- Jul 23, 2008
-
-
Chris Lattner authored
they appear in words. This would cause things like the "128" in "VR128" to be highlighted. This patch fixes the highlighting by only recognizing constants when they have word breaks around them.' Patch by Stefanus Du Toit! llvm-svn: 53944
-
- Jul 21, 2008
-
-
Bill Wendling authored
llvm-svn: 53860
-
- 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 12, 2008
-
-
Bill Wendling authored
Update to build_llvm. Don't output a floating point number for the version. llvm-svn: 53484
-
- Jul 08, 2008
-
-
Evan Cheng authored
TargetRegisterDesc::Name field is the same as the abstract register name. There is no need for targets to specify register names in addition to their AsmName's. llvm-svn: 53207
-
- Jul 07, 2008
-
-
Dan Gohman authored
getTargetNode and SelectNodeTo to reduce duplication, and to make some of the getTargetNode code available to SelectNodeTo. Use SelectNodeTo instead of getTargetNode in several new interesting cases, as it mutates nodes in place instead of creating new ones. This triggers some scheduling behavior differences due to nodes being presented to the scheduler in a different order. Some of the arbitrary scheduling decisions it makes are now arbitrarily made differently. This is visible in CodeGen/PowerPC/LargeAbsoluteAddr.ll, where a trivial scheduling difference led to a trivial register allocation difference. llvm-svn: 53203
-
Dan Gohman authored
llvm-svn: 53179
-
- Jul 03, 2008
-
-
Evan Cheng authored
llvm-svn: 53096
-
Dan Gohman authored
SelectionDAG::SelectNodeTo in the instruction selector. This updates existing nodes in place instead of creating new ones. Go back to selecting ISD::DBG_LABEL nodes into TargetInstrInfo::DBG_LABEL nodes instead of leaving them unselected, now that SelectNodeTo allows us to update them in place. llvm-svn: 53057
-
- Jul 01, 2008
-
-
Owen Anderson authored
and mark it const along with the associated changes to TargetRegisterInfo. llvm-svn: 52966
-
Owen Anderson authored
llvm-svn: 52960
-
Owen Anderson authored
- Use a more accurate heuristic for the size of the hashtable. - Use bitwise and instead of modulo since the size is a power of two. - Use new[] instead of malloc(). llvm-svn: 52951
-
Owen Anderson authored
version that is computed by tblgen at the time LLVM is compiled. llvm-svn: 52945
-
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
-
-
Evan Cheng authored
llvm-svn: 52892
-
Chris Lattner authored
and fix the bug that it uncovers: inlining a pattern fragment could bring in other pattern fragments if the inlinee hadn't already been inlined. llvm-svn: 52888
-
- Jun 26, 2008
-
-
Dale Johannesen authored
<16 x float> is 64-byte aligned (for some reason), which gets us into the stack realignment code. The computation changing FP-relative offsets to SP-relative was broken, assiging a spill temp to a location also used for parameter passing. This fixes it by rounding up the stack frame to a multiple of the largest alignment (I concluded it wasn't fixable without doing this, but I'm not very sure.) llvm-svn: 52750
-
- Jun 25, 2008
-
-
Mon P Wang authored
Added abstract class MemSDNode for any Node that have an associated MemOperand Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and atomic.lss => atomic.load.sub llvm-svn: 52706
-
- Jun 24, 2008
-
-
Chris Lattner authored
polution problems from system headers. Patch by Nathan Keynes! llvm-svn: 52682
-
Bill Wendling authored
llvm-svn: 52647
-
- Jun 16, 2008
-
-
Evan Cheng authored
- Add "Commutative" property to intrinsics. This allows tblgen to generate the commuted variants for dagisel matching code. - Mark lots of X86 intrinsics as "Commutative" to allow load folding. llvm-svn: 52353
-
- Jun 10, 2008
-
-
Matthijs Kooijman authored
llvm-svn: 52177
-
- Jun 09, 2008
-
-
Dan Gohman authored
llvm-svn: 52149
-
- 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
-
- Jun 05, 2008
-
-
Nick Lewycky authored
llvm-svn: 51998
-
- Jun 04, 2008
-
-
Chris Lattner authored
for reporting this. llvm-svn: 51926
-
- Jun 02, 2008
-
-
Dan Gohman authored
llvm-svn: 51879
-
Dan Gohman authored
in DAGISelEmitter output. This bug was recently uncovered by the addition of patterns for CALL32m and CALL64m, which are nodes that now have both MemOperands and variadic_ops. This bug was especially visible with PIC in various configurations, because the new patterns are matching the indirect call code used in many PIC configurations. llvm-svn: 51877
-
- Jun 01, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 51841
-
- May 31, 2008
-
-
Mikhail Glushenkov authored
llvm-svn: 51814
-
Dan Gohman authored
index for the input pattern in terms of the output pattern. Instead keep track of how many fixed operands the input pattern actually has, and have the input matching code pass the output-emitting function that index value. This simplifies the code, disentangles variables_ops from the support for predication operations, and makes variable_ops more robust. llvm-svn: 51808
-
Evan Cheng authored
llvm-svn: 51795
-
- May 30, 2008
-
-
Evan Cheng authored
llvm-svn: 51775
-