- Oct 16, 2008
-
-
Dan Gohman authored
to find opportunities for store-to-load forwarding or load CSE, in the same way that visitStore scans back to do DSE. Also, define a new helper function for testing whether the addresses of two memory accesses are known to have the same value, and use it in both visitStore and visitLoad. These two changes allow instcombine to eliminate loads in code produced by front-ends that frequently emit obviously redundant addressing for memory references. llvm-svn: 57608
-
- Oct 14, 2008
-
-
Evan Cheng authored
llvm-svn: 57515
-
Evan Cheng authored
- Renumber fcmp predicates to match their icmp counterparts. - Try swapping operands to expose more optimization opportunities. llvm-svn: 57513
-
Evan Cheng authored
ord && olt -> olt ord && ueq -> oeq llvm-svn: 57507
-
- Oct 13, 2008
-
-
Matthijs Kooijman authored
constant expression with all zero indices as being the same as a bitcast. llvm-svn: 57442
-
- Oct 12, 2008
-
-
Chris Lattner authored
a couple other cases for clarity, but shouldn't affect correctness. Patch by Eli Friedman! llvm-svn: 57387
-
- Oct 11, 2008
-
-
Devang Patel authored
This patch fixes PR 2869 llvm-svn: 57369
-
- Oct 10, 2008
-
-
Nuno Lopes authored
llvm-svn: 57353
-
Dale Johannesen authored
and APFloat::convertToInteger. Restore return value to IEEE754. Adjust all users accordingly. llvm-svn: 57329
-
- Oct 08, 2008
-
-
Duncan Sands authored
Patch by Samuel Tardieu. llvm-svn: 57291
-
Chris Lattner authored
patch by Samuel Tardieu! llvm-svn: 57288
-
- Oct 07, 2008
-
-
Devang Patel authored
llvm-svn: 57221
-
- Oct 06, 2008
-
-
Matthijs Kooijman authored
This includes not marking a GEP involving a vector as unsafe, but only when it has all zero indices. This allows scalarrepl to work in a few more cases. llvm-svn: 57177
-
- Oct 05, 2008
-
-
Chris Lattner authored
shifting and masking inside a bswap expr. This allows it to handle the cases from PR2842, which involve the intermediate 'or' expressions being shifted, not just the input value. llvm-svn: 57095
-
Chris Lattner authored
ashr. It should only apply to lshr. llvm-svn: 57089
-
- Oct 01, 2008
-
-
Duncan Sands authored
pointer bitcasts and GEP's", and centralize the logic in Value::getUnderlyingObject. The difference with stripPointerCasts is that stripPointerCasts only strips GEPs if all indices are zero, while getUnderlyingObject strips GEPs no matter what the indices are. llvm-svn: 56922
-
Dan Gohman authored
instruction, not after. This fixes some uses of free'd memory. llvm-svn: 56908
-
- Sep 30, 2008
-
-
Nick Lewycky authored
llvm-svn: 56834
-
- Sep 27, 2008
-
-
Devang Patel authored
llvm-svn: 56716
-
Devang Patel authored
- return attributes - inreg, zext and sext - parameter attributes - function attributes - nounwind, readonly, readnone, noreturn Return attributes use 0 as the index. Function attributes use ~0U as the index. This patch requires corresponding changes in llvm-gcc and clang. llvm-svn: 56704
-
- Sep 25, 2008
-
-
Devang Patel authored
s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. This requires corresponding changes in llvm-gcc and clang. llvm-svn: 56622
-
- Sep 24, 2008
-
-
Evan Cheng authored
llvm-svn: 56549
-
Eric Christopher authored
llvm-svn: 56546
-
Devang Patel authored
llvm-svn: 56535
-
Devang Patel authored
llvm-svn: 56527
-
Devang Patel authored
Do not check isDeclaration() in hasNote(). It is clients' responsibility. llvm-svn: 56524
-
Devang Patel authored
llvm-svn: 56513
-
Devang Patel authored
Function Notes also. Function notes are stored at index ~0. llvm-svn: 56511
-
- Sep 23, 2008
-
-
Devang Patel authored
llvm-svn: 56477
-
- Sep 22, 2008
-
-
Oscar Fuentes authored
llvm-svn: 56419
-
- Sep 19, 2008
-
-
Duncan Sands authored
Unfortunately this means removing one regression test of GlobalsModRef because I couldn't work out how to perform it without MarkModRef. llvm-svn: 56342
-
Devang Patel authored
Fixes PR 2805 llvm-svn: 56321
-
Bill Wendling authored
Thanks to Ji Young Park for the patch! llvm-svn: 56316
-
- Sep 17, 2008
-
-
Devang Patel authored
This one slipped through cracks very well. llvm-svn: 56284
-
- Sep 16, 2008
-
-
Dan Gohman authored
- Recognize expressions like "x > -1 ? x : 0" as min/max and turn them into expressions like "x < 0 ? 0 : x", which is easily recognizable as a min/max operation. - Refrain from folding expression like "y/2 < 1" to "y < 2" when the comparison is being used as part of a min or max idiom, like "y/2 < 1 ? 1 : y/2". In that case, the division has another use, so folding doesn't eliminate it, and obfuscates the min/max, making it harder to recognize as a min/max operation. These benefit ScalarEvolution, CodeGen, and anything else that wants to recognize integer min and max. llvm-svn: 56246
-
- Sep 15, 2008
-
-
Dan Gohman authored
cases. See the comment above OptimizeSMax for the full story, and the testcase for an example. This cancels out a pessimization commonly attributed to indvars, and will allow us to lift some of the artificial throttles in indvars, rather than add new ones. llvm-svn: 56230
-
- Sep 12, 2008
-
-
Dan Gohman authored
getelementptr indices, inserting an explicit cast if necessary. This helps expose the sign-extension operation to other optimizations. llvm-svn: 56133
-
Dan Gohman authored
Patch by Nicolas Capens! llvm-svn: 56129
-
- Sep 11, 2008
-
-
Dan Gohman authored
cases it was still getting lucky and detecting overflow but it was clearly incorrect. llvm-svn: 56113
-
Dan Gohman authored
multiplication overflows. llvm-svn: 56082
-