- Apr 16, 2008
-
-
Evan Cheng authored
llvm-svn: 49807
-
Evan Cheng authored
llvm-svn: 49800
-
Roman Levenstein authored
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
-
Evan Cheng authored
Rewrite LiveVariable liveness computation. The new implementation is much 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
-
Evan Cheng authored
llvm-svn: 49783
-
Evan Cheng authored
llvm-svn: 49760
-
Dan Gohman authored
the scheduler has inserted no-ops. This fixes the 2006-07-03-schedulers.ll regression on ppc32. llvm-svn: 49747
-
- Apr 15, 2008
-
-
Nicolas Geoffray authored
llvm-svn: 49715
-
Dan Gohman authored
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
-
Dan Gohman authored
instead of blue to distinguish them from regular dependencies. llvm-svn: 49696
-
- Apr 14, 2008
-
-
Dan Gohman authored
llvm-svn: 49676
-
Dan Gohman authored
memory intrinsic expansion code. llvm-svn: 49666
-
Dale Johannesen authored
stack tracebacks on Darwin x86-64 won't work by default; nevertheless, everybody but me thinks this is a good idea. llvm-svn: 49663
-
Nicolas Geoffray authored
llvm-svn: 49652
-
Duncan Sands authored
much simpler than in LegalizeDAG because calls are not yet expanded into call sequences: that happens after type legalization has finished. llvm-svn: 49634
-
- Apr 13, 2008
-
-
Duncan Sands authored
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
-
Nicolas Geoffray authored
llvm-svn: 49611
-
Duncan Sands authored
the result IRBuilder. Patch by Dominic Hamon. llvm-svn: 49604
-
- Apr 12, 2008
-
-
Duncan Sands authored
llvm-svn: 49583
-
Dan Gohman authored
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
-
- Apr 11, 2008
-
-
Evan Cheng authored
llvm-svn: 49544
-
Evan Cheng authored
llvm-svn: 49543
-
Evan Cheng authored
Use of implicit_def is not part of live interval. Create empty intervals for the uses when the live interval is being spilled. llvm-svn: 49542
-
Gabor Greif authored
llvm-svn: 49524
-
Evan Cheng authored
llvm-svn: 49513
-
Evan Cheng authored
llvm-svn: 49512
-
- Apr 10, 2008
-
-
Evan Cheng authored
llvm-svn: 49491
-
Evan Cheng authored
llvm-svn: 49469
-
Evan Cheng authored
Teach branch folding pass about implicit_def instructions. Unfortunately we 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
-
- Apr 09, 2008
-
-
Evan Cheng authored
- Added insert_subreg coalescing support. llvm-svn: 49448
-
Evan Cheng authored
llvm-svn: 49415
-
- Apr 08, 2008
-
-
Dale Johannesen authored
Corresponds to -fno-unwind-tables (usually default in gcc). llvm-svn: 49361
-
- Apr 07, 2008
-
-
Dan Gohman authored
review feedback from Chris quite a while ago. No functionality change. llvm-svn: 49348
-
Roman Levenstein authored
by Dan Gohman is fixed. llvm-svn: 49330
-
- Apr 06, 2008
-
-
Chris Lattner authored
llvm-svn: 49284
-
Torok Edwin authored
If it cannot be expanded, it will keep the old behaviour and try to shrink the constant. Part of enhancement for PR2191. llvm-svn: 49280
-
Gabor Greif authored
Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277
-
- Apr 05, 2008
-
-
Evan Cheng authored
2. Coalescer can now create an interesting situation where a register def can reaches itself without being killed. llvm-svn: 49246
-
Dale Johannesen authored
before an invoke. Failure to do this causes references in the landing pad to variables that were not set. Fixes g++.dg/eh/delayslot1.C g++.dg/eh/fp-regs.C g++.old-deja/g++.brendan/eh1.C llvm-svn: 49243
-
- Apr 04, 2008
-
-
Evan Cheng authored
llvm-svn: 49198
-