- Jun 30, 2008
-
-
Dan Gohman authored
only needs one bit for each register. UsedRegs is a SmallVector sized at 16, so this eliminates a heap allocation/free for every call and return processed by Legalize on most targets. llvm-svn: 52915
-
Duncan Sands authored
fixes CodeGen/PowerPC/2008-06-19-LegalizerCrash.ll when using the new LegalizeTypes infrastructure. llvm-svn: 52903
-
Duncan Sands authored
wrong for types like x86 long double and i1, but no worse than what is done in LegalizeDAG. llvm-svn: 52898
-
Duncan Sands authored
llvm-svn: 52895
-
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
-
Evan Cheng authored
- Re-apply 52748 and friends with fix. GetConstantStringInfo() returns an empty string for ConstantAggregateZero case which surprises selectiondag. - Correctly handle memcpy from constant string which is zero-initialized. llvm-svn: 52891
-
Chris Lattner authored
llvm-svn: 52887
-
- Jun 29, 2008
-
-
Anton Korobeynikov authored
Move GetConstantStringInfo to lib/Analysis. Remove string output routine from Constant. Update all callers. Change debug intrinsic api slightly to accomodate move of routine, these now return values instead of strings. This unbreaks llvm-gcc bootstrap. llvm-svn: 52884
-
- Jun 28, 2008
-
-
Chris Lattner authored
llvm-svn: 52854
-
Chris Lattner authored
GetConstantStringInfo. This will hopefully restore llvm-gcc to happy bootstrap land. llvm-svn: 52851
-
Dan Gohman authored
information of the original load or store, which is checked to be at least as good, and possibly better. llvm-svn: 52849
-
- Jun 27, 2008
-
-
Chris Lattner authored
global is constant already. No functionality change. llvm-svn: 52812
-
Bill Wendling authored
some uses of std::vector, where it's return std::vector by value. Yuck! llvm-svn: 52800
-
- Jun 26, 2008
-
-
Chris Lattner authored
type legality. Thanks Duncan! llvm-svn: 52786
-
Eric Christopher authored
string output routine from Constant. Update all callers. Change debug intrinsic api slightly to accomodate move of routine, these now return values instead of strings. llvm-svn: 52748
-
Chris Lattner authored
change it to sint_to_fp on targets where that is cheaper (and visaversa of course). This allows us to compile uint_to_fp to: _test: movl 4(%esp), %eax shrl $23, %eax cvtsi2ss %eax, %xmm0 movl 8(%esp), %eax movss %xmm0, (%eax) ret instead of: .align 3 LCPI1_0: ## double .long 0 ## double least significant word 4.5036e+15 .long 1127219200 ## double most significant word 4.5036e+15 .text .align 4,0x90 .globl _test _test: subl $12, %esp movl 16(%esp), %eax shrl $23, %eax movl %eax, (%esp) movl $1127219200, 4(%esp) movsd (%esp), %xmm0 subsd LCPI1_0, %xmm0 cvtsd2ss %xmm0, %xmm0 movl 20(%esp), %eax movss %xmm0, (%eax) addl $12, %esp ret llvm-svn: 52747
-
- 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
-
Duncan Sands authored
For this it is convenient to permit floats to be used with EXTRACT_ELEMENT, so I tweaked things to allow that. I also added libcalls for ppcf128 to i32 forms of FP_TO_XINT, since they exist in libgcc and this case can certainly occur (and does occur in the testsuite) - before the i64 libcall was being used. Also, the XINT_TO_FP result seemed to be wrong when the argument is an i128: the wrong fudge factor was added (the i32 and i64 cases were handled directly, but the i128 code fell through to some generic softening code which seemed to think it was i64 to f32!). So I fixed it by adding a fudge factor that I found in my breakfast cereal. llvm-svn: 52739
-
Duncan Sands authored
select_cc and friends. This code could be factorized a bit but I'm not sure that it's worth it. llvm-svn: 52724
-
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
-
- Jun 24, 2008
-
-
Dan Gohman authored
needs arbitrary-element removal. llvm-svn: 52654
-
- Jun 23, 2008
-
-
Dan Gohman authored
clear() on each iteration. This avoids allocating and deallocating all of DenseMap's memory on each iteration. llvm-svn: 52642
-
Dan Gohman authored
llvm-svn: 52624
-
Duncan Sands authored
Bail out with an error if there is no libcall available for the given size of integer. llvm-svn: 52622
-
Duncan Sands authored
llvm-svn: 52621
-
Duncan Sands authored
stores. llvm-svn: 52620
-
- Jun 22, 2008
-
-
Duncan Sands authored
fixes PR2476; patch by Richard Osborne. The same problem exists for a bunch of other operators, but I'm ignoring this because they will be automagically fixed when the new LegalizeTypes infrastructure lands, since it already solves this problem centrally. llvm-svn: 52610
-
Dan Gohman authored
llvm-svn: 52604
-
Dan Gohman authored
check this with an assert. llvm-svn: 52603
-
Dan Gohman authored
llvm-svn: 52601
-
- Jun 21, 2008
-
-
Dan Gohman authored
llvm-svn: 52585
-
Dan Gohman authored
field, which is otherwise unused after instruction selection, as an index into the SUnit array. llvm-svn: 52583
-
Dan Gohman authored
and provides fairly efficient removal of arbitrary elements. Switch ScheduleDAGRRList from std::set to this new priority queue. llvm-svn: 52582
-
Duncan Sands authored
don't know if a truncating store is possible here, but added support for it anyway. llvm-svn: 52577
-
Dan Gohman authored
to DenseMap<SDNode*, SUnit*>, and adjust the way cloned SUnit nodes are handled so that only the original node needs to be in the map. This speeds up llc on 447.dealII.llvm.bc by about 2%. llvm-svn: 52576
-
Dan Gohman authored
llvm-svn: 52571
-
- Jun 20, 2008
-
-
Duncan Sands authored
float expansion (and sometimes vector splitting too). llvm-svn: 52548
-
Duncan Sands authored
integer of the same type. Before it was "promotion", but this is confusing because it is quite different to promotion of integers. Call it "softening" instead, inspired by "soft float". llvm-svn: 52546
-
Dan Gohman authored
llvm-svn: 52545
-