| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 128924
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
returning a scalar value in a function whose return type is a single-
element structure or array.
llvm-svn: 128810
|
|
|
|
|
|
|
| |
llvm-commits. (Not sure why it only breaks on Windows; maybe it has
something to do with the iterator representation...)
llvm-svn: 128802
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 128745
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
llvm-svn: 128733
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
only one unknown bit.
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
|
|
|
|
|
|
| |
functionality change.
llvm-svn: 128731
|
|
|
|
| |
llvm-svn: 128683
|
|
|
|
|
|
|
|
| |
even try.
Thanks Eli!
llvm-svn: 128676
|
|
|
|
|
|
| |
Thanks Frits!
llvm-svn: 128628
|
|
|
|
| |
llvm-svn: 128627
|
|
|
|
| |
llvm-svn: 128626
|
|
|
|
|
|
|
|
| |
losslessly converted to the type of x.
Fixes PR9592.
llvm-svn: 128625
|
|
|
|
| |
llvm-svn: 128624
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
fmul.
Fixes PR9587.
llvm-svn: 128546
|
|
|
|
|
|
| |
PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128537
|
|
|
|
| |
llvm-svn: 128535
|
|
|
|
|
|
|
|
| |
On x86 we now compile "if (a < 0 && b < 0)" into
testl %edi, %esi
js IF.THEN
llvm-svn: 128496
|
|
|
|
|
|
|
|
| |
SmallPtrSet.
Fixes PR9569 and will hopefully make selfhost on ASLR-enabled systems more deterministic.
llvm-svn: 128482
|
|
|
|
|
|
|
| |
vector types. This helps a lot with inlined functions when using the ARM soft
float ABI. Fixes <rdar://problem/9184212>.
llvm-svn: 128453
|
|
|
|
| |
llvm-svn: 128413
|
|
|
|
| |
llvm-svn: 128406
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
the subclass optional data.
llvm-svn: 128388
|
|
|
|
| |
llvm-svn: 128380
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 128333
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 128331
|
|
|
|
|
|
|
| |
completely overlaps a previous store, thus mistakenly deleting that store. Check
for this condition.
llvm-svn: 128319
|
|
|
|
|
|
| |
compliance.
llvm-svn: 128257
|
|
|
|
|
|
| |
affect the generated code.
llvm-svn: 128217
|
|
|
|
|
|
| |
void; it doesn't need to have a void type.
llvm-svn: 128212
|
|
|
|
| |
llvm-svn: 128211
|
|
|
|
|
|
| |
void return type. This fixes PR9487.
llvm-svn: 128197
|
|
|
|
| |
llvm-svn: 128196
|
|
|
|
|
|
| |
use it later. I couldn't make a test that hits this with the current code.
llvm-svn: 128195
|
|
|
|
| |
llvm-svn: 128194
|
|
|
|
|
|
| |
that were hit in practice.
llvm-svn: 128146
|
|
|
|
| |
llvm-svn: 128068
|
|
|
|
| |
llvm-svn: 128030
|
|
|
|
| |
llvm-svn: 127997
|
|
|
|
|
|
| |
decide whether a destructor is empty or not.
llvm-svn: 127985
|
|
|
|
| |
llvm-svn: 127984
|
|
|
|
|
|
| |
predecessors; update dominator tree if cfg is modified.
llvm-svn: 127981
|