- Aug 06, 2008
-
-
Evan Cheng authored
llvm-svn: 54376
-
- Aug 05, 2008
-
-
Dan Gohman authored
llvm-svn: 54329
-
- Aug 03, 2008
-
-
Andrew Lenharth authored
llvm-svn: 54314
-
- Jul 27, 2008
-
-
Dan Gohman authored
llvm-svn: 54128
-
Dan Gohman authored
parallel its analogue, Value::value_use_iterator. The operator* method now returns the user, rather than the use. llvm-svn: 54127
-
- Jul 25, 2008
-
-
Nate Begeman authored
mmx needs its own fancy shuffle logic based on unpack; for now we get correct but awful code. Also commit Mon Ping's VSETCC patch llvm-svn: 54039
-
- Jul 23, 2008
-
-
Evan Cheng authored
Based on patch by Nicolas Capens. llvm-svn: 53939
-
- Jul 22, 2008
-
-
Evan Cheng authored
llvm-svn: 53933
-
Evan Cheng authored
llvm-svn: 53927
-
- Jul 21, 2008
-
-
Duncan Sands authored
generic SDNode's (nodes with their own constructors should do sanity checking in the constructor). Add sanity checks for BUILD_VECTOR and fix all the places that were producing bogus BUILD_VECTORs, as found by "make check". My favorite is the BUILD_VECTOR with only two operands that was being used to build a vector with four elements! llvm-svn: 53850
-
- Jul 20, 2008
-
-
Bill Wendling authored
into v4i16 vectors. llvm-svn: 53807
-
- Jul 17, 2008
-
-
Nate Begeman authored
llvm-svn: 53719
-
Mon P Wang authored
atomic operation to the new one. llvm-svn: 53714
-
- Jul 16, 2008
-
-
Evan Cheng authored
llvm-svn: 53661
-
- Jul 12, 2008
-
-
Dan Gohman authored
instead of using the frame index for the SVOffset, which was inconsistent. llvm-svn: 53486
-
- Jul 11, 2008
-
-
Bill Wendling authored
llvm-svn: 53450
-
- 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 04, 2008
-
-
Duncan Sands authored
hook for each way in which a result type can be legalized (promotion, expansion, softening etc), just use one: ReplaceNodeResults, which returns a node with exactly the same result types as the node passed to it, but presumably with a bunch of custom code behind the scenes. No change if the new LegalizeTypes infrastructure is not turned on. llvm-svn: 53137
-
- Jul 02, 2008
-
-
Duncan Sands authored
to be passed the list of value types, and use this where appropriate. Inappropriate places are where the value type list is already known and may be long, in which case the existing method is more efficient. llvm-svn: 53035
-
- Jul 01, 2008
-
-
Duncan Sands authored
being suppressed here. llvm-svn: 52952
-
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
llvm-svn: 52925
-
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
-
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 25, 2008
-
-
Evan Cheng authored
shift. - Add a readme entry for a missing vector_shuffle optimization that results in awful codegen. llvm-svn: 52740
-
Dan Gohman authored
the base SDNode's VTList. llvm-svn: 52722
-
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
-
Dale Johannesen authored
load,store,call,return,bitcast. This is enough to make call and return work. llvm-svn: 52691
-
- Jun 22, 2008
-
-
Dan Gohman authored
llvm-svn: 52613
-
- Jun 19, 2008
-
-
Eli Friedman authored
shuffle could be skipped. The check is invalid because the loop index i doesn't correspond to the element actually inserted. The correct check is already done a few lines earlier, for whether the element is already in the right spot, so this shouldn't have any effect on the codegen for code that was already correct. llvm-svn: 52486
-
- Jun 17, 2008
-
-
Evan Cheng authored
Rather than avoiding to wrap ISD::DECLARE GV operand in X86ISD::Wrapper, simply handle it at dagisel time with x86 specific isel code. llvm-svn: 52377
-
- Jun 14, 2008
-
-
Andrew Lenharth authored
llvm-svn: 52270
-
- Jun 11, 2008
-
-
Anton Korobeynikov authored
CALLSEQ_BEGIN & CALLSEQ_END. llvm-svn: 52225
-
- Jun 08, 2008
-
-
Duncan Sands authored
of apint codegen failure is the DAG combiner doing the wrong thing because it was comparing MVT's using < rather than comparing the number of bits. Removing the < method makes this mistake impossible to commit. Instead, add helper methods for comparing bits and use them. llvm-svn: 52098
-
- 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
-
- May 29, 2008
-
-
Dan Gohman authored
memmove to a more plausible value, now that it's actually being used. llvm-svn: 51696
-
Evan Cheng authored
llvm-svn: 51667
-
- May 28, 2008
-
-
Nate Begeman authored
code generator would do something like this: f64 = load f32 <anyext>, f32mem v2f64 = insertelt undef, %0, 0 v2f64 = insertelt %1, 0.0, 1 into v2f64 = vzext_load f32mem which on x86 is movsd, when you really wanted a cvtss2sd/movsd pair. llvm-svn: 51624
-
- May 23, 2008
-
-
Dan Gohman authored
load-folding table entries for PMULDQ and PMULLD. llvm-svn: 51489
-
- May 16, 2008
-
-
Evan Cheng authored
llvm-svn: 51165
-