- Apr 07, 2011
-
-
Rafael Espindola authored
llvm-svn: 129087
-
Devang Patel authored
llvm-svn: 129078
-
Eli Friedman authored
is equivalent to any other relevant value; it isn't true in general. If it is equivalent, the LoopPromoter will tell the AST the equivalence. Also, delete the PreheaderLoad if it is unused. Chris, since you were the last one to make major changes here, can you check that this is sane? llvm-svn: 129049
-
Devang Patel authored
llvm-svn: 129041
-
Devang Patel authored
llvm-svn: 129035
-
- Apr 05, 2011
-
-
Nick Lewycky authored
llvm-svn: 128924
-
Nadav Rotem authored
space info. We crash with an assert in this case. This change checks that the address space of the bitcasted pointer is the same as the gep ptr. llvm-svn: 128884
-
- Apr 04, 2011
-
-
Jay Foad authored
returning a scalar value in a function whose return type is a single- element structure or array. llvm-svn: 128810
-
Eli Friedman authored
llvm-commits. (Not sure why it only breaks on Windows; maybe it has something to do with the iterator representation...) llvm-svn: 128802
-
- Apr 03, 2011
-
-
Eli Friedman authored
after the given instruction; make sure to handle that case correctly. (It's difficult to trigger; the included testcase involves a dead block, but I don't think that's a requirement.) While I'm here, get rid of the unnecessary warning about SimplifyInstructionsInBlock, since it should work correctly as far as I know. llvm-svn: 128782
-
- Apr 02, 2011
-
-
Benjamin Kramer authored
It's possible to craft an input that hits the recursion limits in a way that SimplifyDemandedBits doesn't simplify the icmp but ComputeMaskedBits can infer which bits are zero. No test case as it depends on too many other things. Fixes PR9609. llvm-svn: 128777
-
Benjamin Kramer authored
llvm-svn: 128745
-
Benjamin Kramer authored
- Localize the check if an icmp has one use to a place where we know we're introducing something that's likely more expensive than a sext from i1. - Add an assert to make sure a case that would lead to a miscompilation is folded away earlier. - Fix a typo. llvm-svn: 128744
-
- Apr 01, 2011
-
-
Benjamin Kramer authored
llvm-svn: 128733
-
Benjamin Kramer authored
int test1(unsigned x) { return (x&8) ? 0 : -1; } int test3(unsigned x) { return (x&8) ? -1 : 0; } before (x86_64): _test1: andl $8, %edi cmpl $1, %edi sbbl %eax, %eax ret _test3: andl $8, %edi cmpl $1, %edi sbbl %eax, %eax notl %eax ret after: _test1: shrl $3, %edi andl $1, %edi leal -1(%rdi), %eax ret _test3: shll $28, %edi movl %edi, %eax sarl $31, %eax ret llvm-svn: 128732
-
Benjamin Kramer authored
llvm-svn: 128731
-
Nadav Rotem authored
llvm-svn: 128683
-
- Mar 31, 2011
-
-
Benjamin Kramer authored
Thanks Eli! llvm-svn: 128676
-
Benjamin Kramer authored
Thanks Frits! llvm-svn: 128628
-
Benjamin Kramer authored
llvm-svn: 128627
-
Benjamin Kramer authored
llvm-svn: 128626
-
Benjamin Kramer authored
InstCombine: Shrink "fcmp (fpext x), C" to "fcmp x, C" if C can be losslessly converted to the type of x. Fixes PR9592. llvm-svn: 128625
-
Benjamin Kramer authored
llvm-svn: 128624
-
- Mar 30, 2011
-
-
Bill Wendling authored
that one of the numbers is signed while the other is unsigned. This could lead to a wrong result when the signed was promoted to an unsigned int. * Add the data layout line to the testcase so that it will test the appropriate thing. Patch by David Terei! llvm-svn: 128577
-
Benjamin Kramer authored
Fixes PR9587. llvm-svn: 128546
-
Jay Foad authored
PHINode::Create() giving the (known or expected) number of operands. llvm-svn: 128537
-
Jay Foad authored
llvm-svn: 128535
-
Benjamin Kramer authored
On x86 we now compile "if (a < 0 && b < 0)" into testl %edi, %esi js IF.THEN llvm-svn: 128496
-
- Mar 29, 2011
-
-
Benjamin Kramer authored
Fixes PR9569 and will hopefully make selfhost on ASLR-enabled systems more deterministic. llvm-svn: 128482
-
Cameron Zwarich authored
vector types. This helps a lot with inlined functions when using the ARM soft float ABI. Fixes <rdar://problem/9184212>. llvm-svn: 128453
-
- Mar 28, 2011
-
-
Nick Lewycky authored
llvm-svn: 128413
-
Jay Foad authored
llvm-svn: 128406
-
Frits van Bommel authored
Add some debug output when -instcombine uses RAUW. This can make debug output for those cases much clearer since without this it only showed that the original instruction was removed, not what it was replaced with. llvm-svn: 128399
-
- Mar 27, 2011
-
-
Nick Lewycky authored
the subclass optional data. llvm-svn: 128388
-
Benjamin Kramer authored
llvm-svn: 128380
-
Nick Lewycky authored
removes one use of X which helps it pass the many hasOneUse() checks. In my analysis, this turns up very often where X = A >>exact B and that can't be simplified unless X has one use (except by increasing the lifetime of A which is generally a performance loss). llvm-svn: 128373
-
- Mar 26, 2011
-
-
Bill Wendling authored
llvm-svn: 128333
-
Bill Wendling authored
There are two ways that a later store can comletely overlap a previous store: 1. They both start at the same offset, but the earlier store's size is <= the later's size, or 2. The earlier store's offset is > the later's offset, but it's offset + size doesn't extend past the later's offset + size. llvm-svn: 128332
-
Cameron Zwarich authored
llvm-svn: 128331
-
Bill Wendling authored
completely overlaps a previous store, thus mistakenly deleting that store. Check for this condition. llvm-svn: 128319
-