- Dec 04, 2007
-
-
Chris Lattner authored
to codegen this: define float @test_extract_elt(<1 x float> * %P) { %p = load <1 x float>* %P %R = extractelement <1 x float> %p, i32 0 ret float %R } llvm-svn: 44570
-
Chris Lattner authored
llvm-svn: 44569
-
Evan Cheng authored
llvm-svn: 44565
-
- Dec 03, 2007
-
-
Evan Cheng authored
llvm-svn: 44549
-
Duncan Sands authored
throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). llvm-svn: 44544
-
Evan Cheng authored
llvm-svn: 44532
-
Evan Cheng authored
llvm-svn: 44531
-
- Dec 02, 2007
-
-
Evan Cheng authored
llvm-svn: 44517
-
- Dec 01, 2007
-
-
Evan Cheng authored
llvm-svn: 44482
-
Evan Cheng authored
llvm-svn: 44479
-
- Nov 30, 2007
-
-
Evan Cheng authored
llvm-svn: 44467
-
Devang Patel authored
llvm-svn: 44446
-
Evan Cheng authored
llvm-svn: 44443
-
- Nov 29, 2007
-
-
Evan Cheng authored
in the middle of a split basic block, create a new live interval starting at the def. This avoid artifically extending the live interval over a number of cycles where it is dead. e.g. bb1: = vr1204 (use / kill) <= new interval starts and ends here. ... ... vr1204 = (new def) <= start a new interval here. = vr1204 (use) llvm-svn: 44436
-
Evan Cheng authored
llvm-svn: 44434
-
Evan Cheng authored
llvm-svn: 44428
-
Evan Cheng authored
llvm-svn: 44427
-
- Nov 28, 2007
-
-
Duncan Sands authored
use them. llvm-svn: 44403
-
Duncan Sands authored
llvm-svn: 44399
-
Evan Cheng authored
llvm-svn: 44386
-
- Nov 27, 2007
-
-
Owen Anderson authored
llvm-svn: 44384
-
Nate Begeman authored
llvm-svn: 44371
-
Duncan Sands authored
the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. llvm-svn: 44359
-
Chris Lattner authored
llvm-svn: 44352
-
Chris Lattner authored
llvm-svn: 44351
-
Dan Gohman authored
optimized. This avoids creating illegal divisions when the combiner is running after legalize; this fixes PR1815. Also, it produces better code in the included testcase by avoiding the subtract and multiply when the division isn't optimized. llvm-svn: 44341
-
- Nov 24, 2007
-
-
Chris Lattner authored
llvm-svn: 44304
-
Chris Lattner authored
Improve a comment. Unbreak Duncan's carefully written path compression where I didn't realize what was happening! llvm-svn: 44301
-
Chris Lattner authored
1) Change the interface to TargetLowering::ExpandOperationResult to take and return entire NODES that need a result expanded, not just the value. This allows us to handle things like READCYCLECOUNTER, which returns two values. 2) Implement (extremely limited) support in LegalizeDAG::ExpandOp for MERGE_VALUES. 3) Reimplement custom lowering in LegalizeDAGTypes in terms of the new ExpandOperationResult. This makes the result simpler and fully general. 4) Implement (fully general) expand support for MERGE_VALUES in LegalizeDAGTypes. 5) Implement ExpandOperationResult support for ARM f64->i64 bitconvert and ARM i64 shifts, allowing them to work with LegalizeDAGTypes. 6) Implement ExpandOperationResult support for X86 READCYCLECOUNTER and FP_TO_SINT, allowing them to work with LegalizeDAGTypes. LegalizeDAGTypes now passes several more X86 codegen tests when enabled and when type legalization in LegalizeDAG is ifdef'd out. llvm-svn: 44300
-
- Nov 21, 2007
-
-
Duncan Sands authored
node A gets back into the DAG again because it was hiding in one of the node maps: make sure that node replacement happens in those maps too. llvm-svn: 44263
-
Dale Johannesen authored
for Darwin PPC, but it's not fully working yet. llvm-svn: 44258
-
- Nov 19, 2007
-
-
Chris Lattner authored
Fix a couple of problems: 1. Don't assume the VT-1 is a VT that is half the size. 2. Treat vectors of FP in the vector path, not the FP path. This has a couple of remaining problems before it will work with the code in PR1811: the code below this change assumes that it can use extload/shift/or to construct the result, which isn't right for vectors. This also doesn't handle vectors of 1 or vectors that aren't pow-2. llvm-svn: 44243
-
Chris Lattner authored
llvm-svn: 44242
-
Chris Lattner authored
llvm-svn: 44239
-
Dan Gohman authored
llvm-svn: 44233
-
- Nov 17, 2007
-
-
Nate Begeman authored
llvm-svn: 44204
-
Evan Cheng authored
When a live interval is being spilled, rather than creating short, non-spillable intervals for every def / use, split the interval at BB boundaries. That is, for every BB where the live interval is defined or used, create a new interval that covers all the defs and uses in the BB. This is designed to eliminate one common problem: multiple reloads of the same value in a single basic block. Note, it does *not* decrease the number of spills since no copies are inserted so the split intervals are *connected* through spill and reloads (or rematerialization). The newly created intervals can be spilled again, in that case, since it does not span multiple basic blocks, it's spilled in the usual manner. However, it can reuse the same stack slot as the previously split interval. This is currently controlled by -split-intervals-at-bb. llvm-svn: 44198
-
- Nov 16, 2007
-
-
Anton Korobeynikov authored
Codegen bits and llvm-gcc support will follow. llvm-svn: 44182
-
- Nov 15, 2007
-
-
Nate Begeman authored
llvm-svn: 44181
-
Duncan Sands authored
llvm-svn: 44167
-