- Nov 28, 2008
-
-
Duncan Sands authored
gcc 4.4 (due to use of sprintf). llvm-svn: 60209
-
- Nov 27, 2008
-
-
Evan Cheng authored
llvm-svn: 60145
-
- Nov 26, 2008
-
-
Evan Cheng authored
llvm-svn: 60110
-
Sanjiv Gupta authored
Custom lower AND, OR, XOR bitwise operations. llvm-svn: 60098
-
- Nov 24, 2008
-
-
Evan Cheng authored
Move target independent td files from lib/Target/ to include/llvm/Target so they can be distributed along with the header files. llvm-svn: 59953
-
- Nov 19, 2008
-
-
Oscar Fuentes authored
llvm-svn: 59655
-
Sanjiv Gupta authored
llvm-svn: 59623
-
Sanjiv Gupta authored
llvm-svn: 59621
-
Sanjiv Gupta authored
ExpandIntegerOperand (LegalizeIntegerTypes.cpp) is needed which is yet to be reworked and submitted. llvm-svn: 59617
-
- Nov 18, 2008
-
-
Dan Gohman authored
llvm-svn: 59542
-
- Nov 15, 2008
-
-
Oscar Fuentes authored
well as 2 files that use "Registrator"s. These are to be used by the MSVC builds, as the Win32 linker does not include libs that are otherwise unreferenced, even if global constructors in the lib have side-effects. Patch by Scott Graham! llvm-svn: 59378
-
- Nov 03, 2008
-
-
Dan Gohman authored
adding a TargetMachine member to the base TargetAsmInfo class instead. llvm-svn: 58624
-
- Oct 27, 2008
-
-
David Greene authored
Have TableGen emit setSubgraphColor calls under control of a -gen-debug flag. Then in a debugger developers can set breakpoints at these calls to see waht is about to be selected and what the resulting subgraph looks like. This really helps when debugging instruction selection. llvm-svn: 58278
-
- Oct 16, 2008
-
-
Dan Gohman authored
llvm-svn: 57649
-
Chris Lattner authored
basically working, feel free to remove the tag. The other targets have really basic things that break them. llvm-svn: 57628
-
- Oct 14, 2008
-
-
Evan Cheng authored
llvm-svn: 57526
-
Dan Gohman authored
instead of requiring all "short description" strings to begin with two spaces. This makes these strings less mysterious, and it fixes some cases where short description strings mistakenly did not begin with two spaces. llvm-svn: 57521
-
- Oct 08, 2008
-
-
Duncan Sands authored
Patch by Samuel Tardieu. llvm-svn: 57291
-
- Oct 03, 2008
-
-
Dan Gohman authored
Instead, just create one, and make sure everything that needs it can access it. Previously most of the SelectionDAGISel subclasses all had their own TargetLowering object, which was redundant with the TargetLowering object in the TargetMachine subclasses, except on Sparc, where SparcTargetMachine didn't have a TargetLowering object. Change Sparc to work more like the other targets here. llvm-svn: 57016
-
Dan Gohman authored
isReg, etc., from isRegister, etc. llvm-svn: 57006
-
- Sep 26, 2008
-
-
Oscar Fuentes authored
llvm-svn: 56641
-
- Sep 25, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 56569
-
- Sep 23, 2008
-
-
Dan Gohman authored
instruction opcodes are now numbered. No functionality change. llvm-svn: 56497
-
- Sep 12, 2008
-
-
Dan Gohman authored
with ConstantInt. This led to fixing a bug in TargetLowering.cpp using getValue instead of getAPIntValue. llvm-svn: 56159
-
- Aug 28, 2008
-
-
Gabor Greif authored
llvm-svn: 55504
-
- Aug 27, 2008
-
-
Gabor Greif authored
llvm-svn: 55394
-
- Aug 24, 2008
-
-
Chris Lattner authored
use raw_ostream instead of std::ostream. Among other goodness, this speeds up llvm-dis of kc++ with a release build from 0.85s to 0.49s (88% faster). Other interesting changes: 1) This makes Value::print be non-virtual. 2) AP[S]Int and ConstantRange can no longer print to ostream directly, use raw_ostream instead. 3) This fixes a bug in raw_os_ostream where it didn't flush itself when destroyed. 4) This adds a new SDNode::print method, instead of only allowing "dump". A lot of APIs have both std::ostream and raw_ostream versions, it would be useful to go through and systematically anihilate the std::ostream versions. This passes dejagnu, but there may be minor fallout, plz let me know if so and I'll fix it. llvm-svn: 55263
-
- Aug 23, 2008
-
-
Dan Gohman authored
process up to a higher level. This allows FastISel to leverage more of SelectionDAGISel's infastructure, such as updating Machine PHI nodes. Also, implement transitioning from SDISel back to FastISel in the middle of a block, so it's now possible to go back and forth. This allows FastISel to hand individual CallInsts and other complicated things off to SDISel to handle, while handling the rest of the block itself. To help support this, reorganize the SelectionDAG class so that it is allocated once and reused throughout a function, instead of being completely reallocated for each block. llvm-svn: 55219
-
- Aug 21, 2008
-
-
Dan Gohman authored
from all targets. llvm-svn: 55124
-
Owen Anderson authored
llvm-svn: 55092
-
- Aug 15, 2008
-
-
Owen Anderson authored
Convert uses of std::vector in TargetInstrInfo to SmallVector. This change had to be propoagated down into all the targets and up into all clients of this API. llvm-svn: 54802
-
- Jul 27, 2008
-
-
Dan Gohman authored
llvm-svn: 54128
-
- 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 11, 2008
-
-
Dan Gohman authored
llvm-svn: 53471
-
- Jul 08, 2008
-
-
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
-
-
Dan Gohman authored
llvm-svn: 53179
-
- 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
-