| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D62629
llvm-svn: 363080
|
| |
|
|
| |
llvm-svn: 361973
|
| |
|
|
|
|
|
|
| |
The reversion apparently deleted the test/Transforms directory.
Will be re-reverting again.
llvm-svn: 358552
|
| |
|
|
|
|
|
|
| |
As it's causing some bot failures (and per request from kbarton).
This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda.
llvm-svn: 358546
|
| |
|
|
|
|
|
|
|
| |
Replacing BinaryOperator::isFNeg(...) to avoid regressions when we
separate FNeg from the FSub IR instruction.
Differential Revision: https://reviews.llvm.org/D53650
llvm-svn: 345295
|
| |
|
|
|
|
| |
This should be fixed with D53650.
llvm-svn: 345206
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
condition operands' sizes
Don't always:
cast (select (cmp x, y), z, C) --> select (cmp x, y), (cast z), C'
This is something that came up as far back as D26556, and I lost track of it.
I suspect that this transform is part of the underlying problem that is
inspiring some of the recent proposals that seek to match larger patterns
that include a cast op. Even if that's not true, this transform causes
problems for codegen (particularly with vector types).
A transform to actively match the size of cmp and select operand sizes should
follow. This patch just removes the harmful canonicalization in the other
direction.
Differential Revision: https://reviews.llvm.org/D47163
llvm-svn: 333611
|
| |
|
|
| |
llvm-svn: 332894
|
| |
|
|
|
|
|
| |
Double and single rounding can produce different results.
This is the IR counterpart to r228911.
llvm-svn: 238531
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
InstCombine infinite-loops for the testcase added
It is because InstCombine is generating instructions that can be
optimized by itself. Fix by not optimizing frem if the optimized
type is the same as original type.
rdar://problem/19150820
Reviewers: majnemer
Differential Revision: http://reviews.llvm.org/D6634
llvm-svn: 224097
|
| |
|
|
|
|
|
|
|
|
| |
We would attempt to replace an frem's operand with the same operand.
This would cause InstCombine to think real work was done, causing
InstCombine to enter an infinite loop.
This fixes the second part of PR21576.
llvm-svn: 222265
|
| |
|
|
|
|
|
| |
This reverts commit r222203, reverting r222040 didn't end up turning the
bot green.
llvm-svn: 222261
|
| |
|
|
|
|
|
| |
http://lab.llvm.org:8080/green/job/clang-Rlto_master/298/
Hopefully, bot will be green.
llvm-svn: 222203
|
| |
|
|
|
|
|
|
|
|
|
| |
We would attempt to replace a fptrunc of an frem with an identical
fptrunc. This would cause the new fptrunc to be added to the worklist.
Of course, this results in an infinite loop because we will keep
visiting the newly created fptruncs.
This fixes PR21576.
llvm-svn: 222040
|
| |
|
|
|
|
| |
instructions. All found by inspection (aka grep).
llvm-svn: 199528
|
| |
|
|
|
|
| |
was a constant. This has a number of benefits, including producing small immediates (easier to materialize, smaller constant pools) as well as being more likely to allow the fptrunc to fuse with a preceding instruction (truncating selects are unusual).
llvm-svn: 191929
|
| |
|
|
|
|
| |
application of these operations commutes with the truncation, so we should prefer to do them in the smallest size we can, to save register space, use smaller constant pool entries, etc.
llvm-svn: 172117
|
| |
|
|
| |
llvm-svn: 83828
|
| |
|
|
| |
llvm-svn: 81293
|
| |
|
|
| |
llvm-svn: 81257
|
| |
|
|
| |
llvm-svn: 48103
|
| |
|
|
| |
llvm-svn: 36012
|
|
|
llvm-svn: 33296
|