- 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
-
-
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
-
Mikhail Glushenkov authored
llvm-svn: 51759
-
Mikhail Glushenkov authored
llvm-svn: 51757
-
Mikhail Glushenkov authored
llvm-svn: 51756
-
Mikhail Glushenkov authored
It can be handy to have all information about options gathered in a single place to provide an overview of all supported options. This patch allows the following: def Options : OptionList<[ (switch_option "E", (help "Help string")), (alias_option "quiet", "q") ... ]>; Tool-specific option properties (like 'append_cmd') have (obviously) no meaning in this context, so the only properties that are allowed are 'help' and 'required'. See usage example in examples/Clang.td. llvm-svn: 51754
-
Mikhail Glushenkov authored
llvm-svn: 51752
-
Mikhail Glushenkov authored
The following is now allowed: (case (not_empty "o"), do_something, ...) This didn't work previously because "-o" is built-in. llvm-svn: 51751
-
Mikhail Glushenkov authored
llvm-svn: 51750
-
Mikhail Glushenkov authored
llvm-svn: 51749
-
Mikhail Glushenkov authored
The following is now legal: (case (in_language "c"), (case (switch_on "E"), "gcc -x c -E $INFILE", (default), "gcc -x c $INFILE"), (default), "gcc $INFILE $OUTFILE") llvm-svn: 51748
-
Mikhail Glushenkov authored
llvm-svn: 51747
-
Mikhail Glushenkov authored
There are now no situations when 'default' is required. llvm-svn: 51746
-
Mikhail Glushenkov authored
llvm-svn: 51745
-
Mikhail Glushenkov authored
llvm-svn: 51744
-
Mikhail Glushenkov authored
llvm-svn: 51742
-
Mikhail Glushenkov authored
llvm-svn: 51738
-
Mikhail Glushenkov authored
llvm-svn: 51737
-
Mikhail Glushenkov authored
llvm-svn: 51734
-
Mikhail Glushenkov authored
For instance, the following command: llvmc2 -E hello.c now generates a file with the correct suffix (hello.i). llvm-svn: 51733
-
Mikhail Glushenkov authored
Used like this: (cmd_line "$CALL(MyHook) --option -o $ENV(VARIABLE) $CALL(AnotherHook)") Also works with case expressions. Hook declarations are auto-generated, the definitions should be provided by the user (just drop a .cpp file in the tools/llvmc2 directory). Hooks should live in the "hooks" namespace and have type std::string hooks::Hook(void). llvm-svn: 51732
-
Mikhail Glushenkov authored
llvm-svn: 51729
-