- Sep 05, 2008
-
-
Duncan Sands authored
it modifies a functions attributes. llvm-svn: 55831
-
- Sep 04, 2008
-
-
Andrew Lenharth authored
llvm-svn: 55785
-
Dan Gohman authored
llvm-svn: 55779
-
Andrew Lenharth authored
llvm-svn: 55766
-
Devang Patel authored
llvm-svn: 55745
-
- Sep 03, 2008
-
-
Andrew Lenharth authored
Initial version of a Partial Specialization IPO pass. It triggers a couple hundred times on 176.gcc. I don't know the performance impact yet, the heuristic is quite simple still. llvm-svn: 55734
-
Devang Patel authored
llvm-svn: 55720
-
Devang Patel authored
llvm-svn: 55717
-
Devang Patel authored
llvm-svn: 55716
-
Devang Patel authored
llvm-svn: 55713
-
Devang Patel authored
llvm-svn: 55712
-
Devang Patel authored
llvm-svn: 55711
-
Devang Patel authored
llvm-svn: 55708
-
Devang Patel authored
llvm-svn: 55676
-
Devang Patel authored
llvm-svn: 55673
-
- Aug 14, 2008
-
-
Dan Gohman authored
llvm-svn: 54780
-
Matthijs Kooijman authored
invalidating the iterator by deleting the current use. This fixes a segfault on 64 bit linux reported in PR2675. Also remove an unneeded if. llvm-svn: 54778
-
- Aug 13, 2008
-
-
Bill Wendling authored
llvm-svn: 54707
-
- Aug 07, 2008
-
-
Matthijs Kooijman authored
postfixing it with a number. llvm-svn: 54468
-
Matthijs Kooijman authored
r53941 (but this was not noticed due to the lack of a basic test for SRETPromotion). llvm-svn: 54467
-
Matthijs Kooijman authored
llvm-svn: 54464
-
- Jul 29, 2008
-
-
Matthijs Kooijman authored
that says "unconditional loads from this argument are safe", we now keep track of the safety per set of indices from which loads happen. This prevents ArgPromotion from promoting loads that aren't really valid. As an added effect, this will now disregard the the type of the indices passed to a GEP, so "load GEP %A, i32 1" and "load GEP %A, i64 1" will result in a single argument, not two. This fixes PR2598, for which a testcase has been added as well. llvm-svn: 54159
-
- Jul 23, 2008
-
-
Dan Gohman authored
Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove support for return instructions with multiple values. These are auto-upgraded to use InsertValueInst instructions. The IRBuilder still accepts multiple-value returns, and auto-upgrades them to InsertValueInst instructions. llvm-svn: 53941
-
- Jul 17, 2008
-
-
Matthijs Kooijman authored
llvm-svn: 53716
-
- Jul 15, 2008
-
-
Matthijs Kooijman authored
again canonicalizes {i32} into i32 and {} into void. llvm-svn: 53610
-
Matthijs Kooijman authored
return value as a whole in deadargelim is really not needed now that we simply rebuild the old return value and actually prevents some canonicalization from taking place. This revert stops deadargelim from changing {i32} into i32 for now, but I'll fix that next. llvm-svn: 53609
-
Matthijs Kooijman authored
return values that are still (partially) live. Instead of updating all uses of a call instruction after removing some elements, it now just rebuilds the original struct (With undef gaps where the unused values were) and leaves it to instcombine to clean this up. The added testcase still fails currently, but this is due to instcombine which isn't good enough yet. I will fix that part next. llvm-svn: 53608
-
Matthijs Kooijman authored
llvm-svn: 53607
-
Matthijs Kooijman authored
only the liveness of partial return values (for functions returning a struct). This is more explicit to prevent unwanted changes in the return value. In particular, deadargelim now canonicalizes a function returning {i32} to returning i32 and {} to void, if the struct returned is not used in its entirety, but only the single element is used. llvm-svn: 53606
-
Matthijs Kooijman authored
and return values live for those functions. This doesn't change anything yet, but prepares for the coming commits. llvm-svn: 53601
-
Matthijs Kooijman authored
llvm-svn: 53600
-
Matthijs Kooijman authored
RetOrArg::getDescription() as const. llvm-svn: 53599
-
Matthijs Kooijman authored
llvm-svn: 53598
-
Matthijs Kooijman authored
llvm-svn: 53592
-
Matthijs Kooijman authored
method, to slightly simplify control flow. llvm-svn: 53591
-
- Jul 11, 2008
-
-
Dan Gohman authored
llvm-svn: 53474
-
- Jul 10, 2008
-
-
Matthijs Kooijman authored
Rewrite the DeadArgumentElimination pass, to use a more explicit tracking of dependencies between return values and/or arguments. Also make the handling of arguments and return values the same. The pass now looks properly inside returned structs, but only at the first level (ie, not inside nested structs). This version fixed a few more bugs and was cleaned up a bit. It now passes all of LLVM's testing, and should still pass SPEC2006. There is still a minor bug with regard to returning nested structs. Since there is currently nothing that emits such IR, I will fix that in a seperate commit (partly because it requires a non-trivial fix). llvm-svn: 53400
-
- Jun 25, 2008
-
-
Evan Cheng authored
llvm-svn: 52736
-
Duncan Sands authored
llvm-svn: 52723
-
Matthijs Kooijman authored
llvm-svn: 52705
-