| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
is finished.
llvm-svn: 91942
|
| |
|
|
|
|
| |
was using "Tmp1" in the first getNode call instead of Node->getOperand(0).
llvm-svn: 91936
|
| |
|
|
| |
llvm-svn: 91920
|
| |
|
|
|
|
| |
"indirect" operand is not a pointer.
llvm-svn: 91913
|
| |
|
|
|
|
|
|
| |
return partial registers. This affected the back-end lowering code some.
Also patch up some places I missed before in the "get" functions.
llvm-svn: 91880
|
| |
|
|
| |
llvm-svn: 91876
|
| |
|
|
|
|
| |
generic copy functions.
llvm-svn: 91872
|
| |
|
|
| |
llvm-svn: 91866
|
| |
|
|
| |
llvm-svn: 91863
|
| |
|
|
|
|
| |
SDNodes. This time in the load/store and limited-precision code.
llvm-svn: 91860
|
| |
|
|
|
|
|
| |
assign the ordering when called. Combine some of the ordering assignments to
keep things simple.
llvm-svn: 91857
|
| |
|
|
|
|
| |
orderings to values returned by getValue().
llvm-svn: 91850
|
| |
|
|
|
|
| |
shuffle and insert vector.
llvm-svn: 91847
|
| |
|
|
| |
llvm-svn: 91846
|
| |
|
|
|
|
| |
- Modify the "dump" method to emit the order of an SDNode.
llvm-svn: 91845
|
| |
|
|
|
|
| |
a lot of the branching instructions.
llvm-svn: 91838
|
| |
|
|
| |
llvm-svn: 91834
|
| |
|
|
| |
llvm-svn: 91744
|
| |
|
|
|
|
|
|
|
|
|
| |
- Move DisableScheduling flag into TargetOption.h
- Move SDNodeOrdering into its own header file. Give it a minimal interface that
doesn't conflate construction with storage.
- Move assigning the ordering into the SelectionDAGBuilder.
This isn't used yet, so there should be no functional changes.
llvm-svn: 91727
|
| |
|
|
| |
llvm-svn: 91717
|
| |
|
|
|
|
|
|
| |
The change in SelectionDAGBuilder is needed to allow using bitcasts to convert
between f64 (the default type for ARM "d" registers) and 64-bit Neon vector
types. Radar 7457110.
llvm-svn: 91649
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
LegalizeDAG.cpp. Unlike the code it replaces, which simply decrements the simple
type by one, getHalfSizedIntegerVT() searches for the smallest simple integer
type that is at least half the size of the type it is called on. This approach
has the advantage that it will continue working if a new value type (such as
i24) is added to MVT.
Also, in preparation for new value types, remove the assertions that
non-power-of-2 8-bit-mutiple types are Extended when legalizing extload and
truncstore operations.
llvm-svn: 91614
|
| |
|
|
| |
llvm-svn: 91584
|
| |
|
|
|
|
|
|
| |
Fold (zext (and x, cst)) -> (and (zext x), cst)
DAG combiner likes to optimize expression in the other way so this would end up cause an infinite looping.
llvm-svn: 91574
|
| |
|
|
|
|
| |
having it reverted does no good.
llvm-svn: 91560
|
| |
|
|
|
|
|
| |
this", this broke llvm-gcc bootstrap for release builds on
x86_64-apple-darwin10.
llvm-svn: 91533
|
| |
|
|
|
|
|
| |
1. Only perform (zext (shl (zext x), y)) -> (shl (zext x), y) when y is a constant. This makes sure it remove at least one zest.
2. If the shift is a left shift, make sure the original shift cannot shift out bits.
llvm-svn: 91399
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
stuff isn't used just yet.
We want to model the GCC `-fno-schedule-insns' and `-fno-schedule-insns2'
flags. The hypothesis is that the people who use these flags know what they are
doing, and have hand-optimized the C code to reduce latencies and other
conflicts.
The idea behind our scheme to turn off scheduling is to create a map "on the
side" during DAG generation. It will order the nodes by how they appeared in the
code. This map is then used during scheduling to get the ordering.
llvm-svn: 91392
|
| |
|
|
| |
llvm-svn: 91380
|
| |
|
|
| |
llvm-svn: 91378
|
| |
|
|
| |
llvm-svn: 91362
|
| |
|
|
|
|
| |
Bill for spotting this!
llvm-svn: 91355
|
| |
|
|
|
|
| |
results.
llvm-svn: 91233
|
| |
|
|
|
|
| |
a vector type.
llvm-svn: 91181
|
| |
|
|
| |
llvm-svn: 91158
|
| |
|
|
|
|
| |
aggregate return values. This fixes PR5754.
llvm-svn: 91145
|
| |
|
|
|
|
| |
isl lowering code.
llvm-svn: 90925
|
| |
|
|
|
|
| |
primary used by selectdag passes.
llvm-svn: 90922
|
| |
|
|
| |
llvm-svn: 90919
|
| |
|
|
| |
llvm-svn: 90918
|
| |
|
|
| |
llvm-svn: 90917
|
| |
|
|
|
|
| |
from i32 to platform's largest native type
llvm-svn: 90741
|
| |
|
|
| |
llvm-svn: 90669
|
| |
|
|
| |
llvm-svn: 90668
|
| |
|
|
| |
llvm-svn: 90637
|
| |
|
|
|
|
| |
instead of SelectionDAGISel.cpp.
llvm-svn: 90636
|
| |
|
|
|
|
|
| |
and that Instruction only. Implement this by setting the "current debug position"
back to Unknown after processing each instruction.
llvm-svn: 90632
|
| |
|
|
|
|
| |
architectures that LLVM targets, because they don't use this code.
llvm-svn: 90564
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Pointed out by Javier Martinez (who also provided a patch). Since
this logic is not used on (for example) x86, I guess nobody noticed.
Tested by generating SHL, SRL, SRA on various choices of i64 for all
possible shift amounts, and comparing with gcc. Since I did this on
x86-32, I had to force the use of ExpandShiftWithUnknownAmountBit.
What I'm saying here is that I don't have a testcase I can add to the
repository.
llvm-svn: 90482
|
| |
|
|
|
|
|
|
|
| |
doing so prevents the fusion of vector sext and setcc into vsetcc.
Add a testcase for the above transformation.
Fix a bogus use of APInt noticed while tracking this down.
llvm-svn: 90423
|