| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 50164
|
|
|
|
| |
llvm-svn: 50160
|
|
|
|
|
|
| |
empty ScheduleDAG.
llvm-svn: 50054
|
|
|
|
|
|
| |
This fixes the testsuite failure on ppcf128-4.ll.
llvm-svn: 49994
|
|
|
|
| |
llvm-svn: 49977
|
|
|
|
|
|
|
|
| |
LegalizeTypes. Correct the load logic so
that it actually works, and also teach it
to handle floating point extending loads.
llvm-svn: 49923
|
|
|
|
| |
llvm-svn: 49916
|
|
|
|
|
|
|
|
|
|
| |
rather than having it suck them out of a node. Add
a bunch of new libcalls, and remove dead softfloat
code (dead, because FloatToInt is used not Expand
in this case). Note that indexed stores probably
aren't handled properly, likewise for loads.
llvm-svn: 49915
|
|
|
|
| |
llvm-svn: 49913
|
|
|
|
|
|
| |
block branch.
llvm-svn: 49911
|
|
|
|
|
|
| |
may fix a build error on Visual Studio.
llvm-svn: 49876
|
|
|
|
|
|
| |
destination operand has already been coalesced with another register that's defined by a insert_subreg or extract_subreg.
llvm-svn: 49843
|
|
|
|
| |
llvm-svn: 49841
|
|
|
|
| |
llvm-svn: 49839
|
|
|
|
| |
llvm-svn: 49832
|
|
|
|
|
|
|
|
| |
the memory manager which function
the stub will resolve.
llvm-svn: 49814
|
|
|
|
| |
llvm-svn: 49810
|
|
|
|
|
|
| |
instruction. X86, PowerPC and ARM are implemented
llvm-svn: 49809
|
|
|
|
| |
llvm-svn: 49807
|
|
|
|
| |
llvm-svn: 49800
|
|
|
|
|
|
|
|
|
|
| |
Rename SDOperandImpl back to SDOperand.
Introduce the SDUse class that represents a use of the SDNode referred by
an SDOperand. Now it is more similar to Use/Value classes.
Patch is approved by Dan Gohman.
llvm-svn: 49795
|
|
|
|
|
|
|
|
| |
simplified. It eliminated the nasty recursive routines and removed the partial def / use bookkeeping. There is also potential for performance improvement by replacing the conservative handling of partial physical register definitions. The code is currently disabled until live interval analysis is taught of the name scheme.
This patch also fixed a couple of nasty corner cases.
llvm-svn: 49784
|
|
|
|
| |
llvm-svn: 49783
|
|
|
|
| |
llvm-svn: 49760
|
|
|
|
|
|
|
| |
the scheduler has inserted no-ops. This fixes
the 2006-07-03-schedulers.ll regression on ppc32.
llvm-svn: 49747
|
|
|
|
| |
llvm-svn: 49715
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ScheduleDAG; they don't correspond to any actual instructions so they
don't need to be scheduled.
This fixes a bug where the EntryToken was being scheduled multiple
times in some cases, though it ended up not causing any trouble because
EntryToken doesn't expand into anything. With this fixed the schedulers
reliably schedule the expected number of units, so we can check this
with an assertion.
This requires a tweak to test/CodeGen/X86/loop-hoist.ll because it
ends up getting scheduled differently in a trivial way, though it was
enough to fool the prcontext+grep that the test does.
llvm-svn: 49701
|
|
|
|
|
|
| |
instead of blue to distinguish them from regular dependencies.
llvm-svn: 49696
|
|
|
|
| |
llvm-svn: 49676
|
|
|
|
|
|
| |
memory intrinsic expansion code.
llvm-svn: 49666
|
|
|
|
|
|
|
| |
stack tracebacks on Darwin x86-64 won't work by default;
nevertheless, everybody but me thinks this is a good idea.
llvm-svn: 49663
|
|
|
|
| |
llvm-svn: 49652
|
|
|
|
|
|
|
|
| |
much simpler than in LegalizeDAG because calls are
not yet expanded into call sequences: that happens
after type legalization has finished.
llvm-svn: 49634
|
|
|
|
|
|
|
|
|
| |
in its maps. Add some sanity checks that catch
this kind of thing. Hopefully these can be
removed one day (once all problems are fixed!)
but for the moment it seems wise to have them in.
llvm-svn: 49612
|
|
|
|
|
|
| |
parts. Fixes PR1643
llvm-svn: 49611
|
|
|
|
|
|
| |
the result IRBuilder. Patch by Dominic Hamon.
llvm-svn: 49604
|
|
|
|
| |
llvm-svn: 49583
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on any current target and aren't optimized in DAGCombiner. Instead
of using intermediate nodes, expand the operations, choosing between
simple loads/stores, target-specific code, and library calls,
immediately.
Previously, the code to emit optimized code for these operations
was only used at initial SelectionDAG construction time; now it is
used at all times. This fixes some cases where rep;movs was being
used for small copies where simple loads/stores would be better.
This also cleans up code that checks for alignments less than 4;
let the targets make that decision instead of doing it in
target-independent code. This allows x86 to use rep;movs in
low-alignment cases.
Also, this fixes a bug that resulted in the use of rep;stos for
memsets of 0 with non-constant memory size when the alignment was
at least 4. It's better to use the library in this case, which
can be significantly faster when the size is large.
This also preserves more SourceValue information when memory
intrinsics are lowered into simple loads/stores.
llvm-svn: 49572
|
|
|
|
|
|
| |
backtracking.
llvm-svn: 49544
|
|
|
|
|
|
| |
implicit_def instead of a copy.
llvm-svn: 49543
|
|
|
|
|
|
| |
the uses when the live interval is being spilled.
llvm-svn: 49542
|
|
|
|
| |
llvm-svn: 49524
|
|
|
|
| |
llvm-svn: 49513
|
|
|
|
| |
llvm-svn: 49512
|
|
|
|
|
|
| |
them all.
llvm-svn: 49491
|
|
|
|
| |
llvm-svn: 49469
|
|
|
|
|
|
| |
can't just eliminate them since register scavenger expects every register use to be defined. However, we can delete them when there are no intra-block uses. Carefully removing some implicit def's which enable more blocks to be optimized away.
llvm-svn: 49461
|
|
|
|
|
|
|
|
| |
implicit_def.
- Added insert_subreg coalescing support.
llvm-svn: 49448
|
|
|
|
| |
llvm-svn: 49415
|
|
|
|
|
|
| |
Corresponds to -fno-unwind-tables (usually default in gcc).
llvm-svn: 49361
|