- Apr 12, 2008
-
-
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
-
Dan Gohman authored
8-byte-aligned data. llvm-svn: 49571
-
Nate Begeman authored
llvm-svn: 49569
-
Nate Begeman authored
llvm-svn: 49568
-
Evan Cheng authored
llvm-svn: 49566
-
- Apr 11, 2008
-
-
Chris Lattner authored
llvm-svn: 49548
-
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
-
Devang Patel authored
llvm-svn: 49540
-
Chris Lattner authored
llvm-svn: 49538
-
Duncan Sands authored
cannot be build with GNAT GPL 2006, only with GNAT GPL 2005. llvm-svn: 49529
-
Gabor Greif authored
llvm-svn: 49524
-
Owen Anderson authored
llvm-svn: 49517
-
Owen Anderson authored
of calls and less aggressive with non-readnone calls. llvm-svn: 49516
-
Evan Cheng authored
llvm-svn: 49514
-
Evan Cheng authored
llvm-svn: 49513
-
Evan Cheng authored
llvm-svn: 49512
-
Dan Gohman authored
llvm-svn: 49504
-
Dan Gohman authored
llvm-svn: 49502
-
Owen Anderson authored
wrong order. llvm-svn: 49499
-
- Apr 10, 2008
-
-
Dan Gohman authored
llvm-svn: 49496
-
Dan Gohman authored
in addition to integer expressions. Rewrite GetOrEnforceKnownAlignment as a ComputeMaskedBits problem, moving all of its special alignment knowledge to ComputeMaskedBits as low-zero-bits knowledge. Also, teach ComputeMaskedBits a few basic things about Mul and PHI instructions. This improves ComputeMaskedBits-based simplifications in a few cases, but more noticeably it significantly improves instcombine's alignment detection for loads, stores, and memory intrinsics. llvm-svn: 49492
-
Evan Cheng authored
llvm-svn: 49491
-
Evan Cheng authored
llvm-svn: 49469
-
Chris Lattner authored
llvm-svn: 49466
-
Chris Lattner authored
llvm-svn: 49465
-
Chris Lattner authored
MOVZQI2PQIrr. This would be better handled as a dag combine (with the goal of eliminating the bitconvert) but I don't know how to do that safely. Thoughts welcome. llvm-svn: 49463
-
Chris Lattner authored
def : Pat<((v2f64 (vector_shuffle immAllZerosV_bc, ^ llvm-svn: 49462
-
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
-
Chris Lattner authored
This is not safe for all inputs. llvm-svn: 49458
-
Evan Cheng authored
llvm-svn: 49457
-
- Apr 09, 2008
-
-
Evan Cheng authored
- Added insert_subreg coalescing support. llvm-svn: 49448
-
Dan Gohman authored
llvm-svn: 49446
-
Dan Gohman authored
llvm-svn: 49445
-
Dan Gohman authored
llvm-svn: 49443
-
Dan Gohman authored
llvm-svn: 49442
-
Dan Gohman authored
is needed for the x86-64-ABI handling of structs that contain floating-point members that are returned by value. llvm-svn: 49441
-
Dan Gohman authored
llvm-svn: 49440
-
Chris Lattner authored
figuring out the suffix to use. implement pow(2,x) -> exp2(x). llvm-svn: 49437
-