- Nov 11, 2008
-
-
Devang Patel authored
llvm-svn: 59012
-
- Nov 10, 2008
-
-
Devang Patel authored
then do not split loop index. llvm-svn: 58995
-
Bill Wendling authored
The previous patches didn't match correctly. Also, we need to make sure that the conditional is the same before doing the transformation. llvm-svn: 58978
-
Mon P Wang authored
<result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask> llvm-svn: 58964
-
Bill Wendling authored
of the select match, not the select instruction itself. llvm-svn: 58947
-
Bill Wendling authored
original code was matching like this: if (match(A, m_Not(m_Value(B)))) B was already matched as a 'select' instruction. However, this isn't matching what we think it's matching. It would match B as a 'Value', so basically anything would match to it. In this case, a Constant matched. B was replaced with a constant representation. And then the wrong value would be used in the SelectInst::Create statement, causing a crash. After thinking on this for a moment, and after Nick L. told me how the pattern matching stuff was supposed to work, the solution was to match NOT an m_Value, but an m_Select. llvm-svn: 58946
-
- Nov 09, 2008
-
-
Nuno Lopes authored
llvm-svn: 58933
-
Bill Wendling authored
to generate signed ICMP instructions to replace the FCMP. This would violate the following: define i1 @test1(i32 %val) { %1 = uitofp i32 %val to double %2 = fcmp ole double %1, 0.000000e+00 ret i1 %2 } would be transformed into: define i1 @test1(i32 %val) { %1 = icmp slt i33 %val, 1 ret i1 %1 } which is obviously wrong. This patch modifes InstCombiner::FoldFCmp_IntToFP_Cst to handle when the LHS comes from UIToFP. llvm-svn: 58929
-
- Nov 06, 2008
-
-
Mon P Wang authored
when simplify a vector. llvm-svn: 58820
-
- Nov 05, 2008
-
-
Oscar Fuentes authored
llvm-svn: 58736
-
Dan Gohman authored
a specialized pass that it not likely to be generally useful. llvm-svn: 58732
-
- Nov 04, 2008
-
-
Dale Johannesen authored
huge performance regression in something we care about. This may not be final fix. llvm-svn: 58718
-
- Nov 03, 2008
-
-
Devang Patel authored
llvm-svn: 58631
-
Devang Patel authored
This allows SCEV users to effectively calculate trip count. LSR later on transforms back integer IVs to floating point IVs later on to avoid int-to-float casts inside the loop. llvm-svn: 58625
-
Nick Lewycky authored
llvm-svn: 58593
-
- Nov 02, 2008
-
-
Nick Lewycky authored
by Richard Osborne. llvm-svn: 58555
-
Dan Gohman authored
ConstantInt, and SI is the original cast instruction. This fixes PR2996. llvm-svn: 58549
-
- Oct 30, 2008
-
-
Dan Gohman authored
optimizations accordingly. llvm-svn: 58457
-
- Oct 28, 2008
-
-
Dan Gohman authored
llvm-svn: 58351
-
- Oct 24, 2008
-
-
Nick Lewycky authored
Understand that mul %x, 1 = %x. llvm-svn: 58069
-
- Oct 23, 2008
-
-
Daniel Dunbar authored
LoopPass*. - Although less precise, this means they can be used in clients without RTTI (who would otherwise need to include LoopPass.h, which eventually includes things using dynamic_cast). This was the simplest solution that presented itself, but I am happy to use a better one if available. llvm-svn: 58010
-
- Oct 17, 2008
-
-
Dan Gohman authored
llvm-svn: 57660
-
- 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
-