| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Added support to map intrinsics
__builtin_arm_{ldc,ldcl,ldc2,ldc2l,stc,stcl,stc2,stc2l}
to their ARM instructions.
Differential Revision: http://reviews.llvm.org/D20564
llvm-svn: 271271
|
| |
|
|
|
|
| |
Added patterns for (V)CVTDQ2PD -> 2f64 loading from a 64-bit source.
llvm-svn: 271269
|
| |
|
|
|
|
|
|
|
|
|
| |
beqc and bnec cannot have $rs == $rt. Inhibit compact branch creation
if that would occur.
Reviewers: vkalintiris, dsanders
Differential Revision: http://reviews.llvm.org/D20624
llvm-svn: 271260
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20788
llvm-svn: 271255
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20780
llvm-svn: 271254
|
| |
|
|
|
|
|
|
| |
store intrinsics instead.
The intrinsics will be autoupgraded to the same generic masked stores.
llvm-svn: 271245
|
| |
|
|
|
|
|
|
|
|
|
| |
This adds support to the backed to actually support SjLj EH as an exception
model. This is *NOT* the default model, and requires explicitly opting into it
from the frontend. GCC supports this model and for MinGW can still be enabled
via the `--using-sjlj-exceptions` options.
Addresses PR27749!
llvm-svn: 271244
|
| |
|
|
|
|
| |
them. Auto upgrade to native unaligned store instructions.
llvm-svn: 271236
|
| |
|
|
|
|
| |
an upcoming commit. NFC
llvm-svn: 271234
|
| |
|
|
| |
llvm-svn: 271229
|
| |
|
|
| |
llvm-svn: 271228
|
| |
|
|
|
|
| |
These aren't intrinsics anymore - as discussed on D20686
llvm-svn: 271226
|
| |
|
|
| |
llvm-svn: 271224
|
| |
|
|
|
|
| |
Since rL271214 the headers have no longer used the storeu intrinsic
llvm-svn: 271222
|
| |
|
|
| |
llvm-svn: 271220
|
| |
|
|
|
|
|
|
|
|
|
| |
The exit-on-error flag is necessary to avoid some assertions/unreachables. We
can get past them by creating a few dummy nodes.
Fixes PR27768, PR27769.
Differential Revision: http://reviews.llvm.org/D20726
llvm-svn: 271200
|
| |
|
|
| |
llvm-svn: 271175
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
If we can prove that an op.with.overflow intrinsic does not overflow, we
can get rid of the intrinsic, and replace it with non-wrapping
arithmetic.
This was first checked in at r265913 but reverted in r265950 because it
exposed some issues around how SCEV handled post-inc add recurrences.
Those issues have now been fixed.
Reviewers: atrick, regehr
Subscribers: sanjoy, mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D18685
llvm-svn: 271153
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change teaches SCEV to see reduce `(extractvalue
0 (op.with.overflow X Y))` into `op X Y` (with a no-wrap tag if
possible).
This was first checked in at r265912 but reverted in r265950 because it
exposed some issues around how SCEV handled post-inc add recurrences.
Those issues have now been fixed.
Reviewers: atrick, regehr
Subscribers: mcrosier, mzolotukhin, llvm-commits
Differential Revision: http://reviews.llvm.org/D18684
llvm-svn: 271152
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes PR27315.
The post-inc version of an add recurrence needs to "follow the same
rules" as a normal add or subtract expression. Otherwise we miscompile
programs like
```
int main() {
int a = 0;
unsigned a_u = 0;
volatile long last_value;
do {
a_u += 3;
last_value = (long) ((int) a_u);
if (will_add_overflow(a, 3)) {
// Leave, and don't actually do the increment, so no UB.
printf("last_value = %ld\n", last_value);
exit(0);
}
a += 3;
} while (a != 46);
return 0;
}
```
This patch changes SCEV to put no-wrap flags on post-inc add recurrences
only when the poison from a potential overflow will go ahead to cause
undefined behavior.
To avoid regressing performance too much, I've assumed infinite loops
without side effects is undefined behavior to prove poison<->UB
equivalence in more cases. This isn't ideal, but is not new to LLVM as
a whole, and far better than the situation I'm trying to fix.
llvm-svn: 271151
|
| |
|
|
|
|
|
| |
This is a stripped down version of D19211, leaving out the questionable
"branching in poison is UB" bit.
llvm-svn: 271150
|
| |
|
|
| |
llvm-svn: 271135
|
| |
|
|
|
|
|
|
|
|
|
|
| |
intrinsics with generic IR (llvm)
This patch removes the llvm intrinsics VPMOVSX and (V)PMOVZX sign/zero extension intrinsics and auto-upgrades to SEXT/ZEXT calls instead. We already did this for SSE41 PMOVSX sometime ago so much of that implementation can be reused.
Reapplied now that the the companion patch (D20684) removes/auto-upgrade the clang intrinsics has been committed.
Differential Revision: http://reviews.llvm.org/D20686
llvm-svn: 271131
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When RF_NullMapMissingGlobalValues is set, mapValue can return null
for GlobalValue. When mapping the operands of a constant that is
referenced from metadata, we need to handle this case and actually
return null instead of mapping this constant.
Reviewers: dexonsmith, rafael
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D20713
llvm-svn: 271129
|
| |
|
|
| |
llvm-svn: 271125
|
| |
|
|
|
|
|
|
| |
We were producing R_X86_64_GOTPCRELX for invalid instructions and
sometimes producing R_X86_64_GOTPCRELX instead of
R_X86_64_REX_GOTPCRELX.
llvm-svn: 271118
|
| |
|
|
| |
llvm-svn: 271117
|
| |
|
|
| |
llvm-svn: 271115
|
| |
|
|
|
|
|
|
|
|
|
| |
(PR20347)
It would be better to check the valid/expected size of the immediate operand, but this is
generally better than what we print right now.
Differential Revision: http://reviews.llvm.org/D20385
llvm-svn: 271114
|
| |
|
|
|
|
|
|
| |
Otherwise we fallback to a blend of PSHUFBs later on.
Differential Revision: http://reviews.llvm.org/D19661
llvm-svn: 271113
|
| |
|
|
| |
llvm-svn: 271111
|
| |
|
|
|
|
|
|
|
| |
This matches the behavior of GNU assembler which supports symbolic
expressions in absolute expressions used in assembly directives.
Differential Revision: http://reviews.llvm.org/D20752
llvm-svn: 271102
|
| |
|
|
|
|
|
|
| |
This reverts commit r271096, as reverting it broke even more buildbots!
But that also means I'll break on ARM again... :(
llvm-svn: 271099
|
| |
|
|
|
|
| |
This reverts commit r271052, as it broke some ARM buildbots.
llvm-svn: 271096
|
| |
|
|
| |
llvm-svn: 271092
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was triggering an msan bot.
Revert "[IRPGO] Set the function entry count metadata."
This reverts commit r271090.
Revert "[IRPGO] Centralize the function attribute inliner hint logic. NFC."
This reverts commit r271089.
llvm-svn: 271091
|
| |
|
|
| |
llvm-svn: 271090
|
| |
|
|
|
|
|
| |
This mostly makes sure that 3-vector dynamic inserts
and extracts are covered.
llvm-svn: 271082
|
| |
|
|
|
|
|
|
|
| |
Remove broken patterns matching it. This was matching the
unsafe math pattern and expanding the fix for the buggy instruction
from the pattern. The problems are also on CI. Remove the workarounds
and only use fract with unsafe math or from the intrinsic.
llvm-svn: 271078
|
| |
|
|
| |
llvm-svn: 271075
|
| |
|
|
| |
llvm-svn: 271072
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Unroll factor (Count) calculations moved to a new function.
Early exits on pragma and "-unroll-count" defined factor added.
New type of unrolling "Force" introduced (previously used implicitly).
New unroll preference "AllowRemainder" introduced and set "true" by default.
(should be set to false for architectures that suffers from it).
Reviewers: hfinkel, mzolotukhin, zzheng
Differential Revision: http://reviews.llvm.org/D19553
From: Evgeny Stupachenko <evstupac@gmail.com>
llvm-svn: 271071
|
| |
|
|
|
|
|
|
| |
optnone/opt-bisect skip case.
Differential Revision: http://reviews.llvm.org/D20453
llvm-svn: 271068
|
| |
|
|
|
|
|
| |
DynamicNoPIC was only every used on darwin. This maps it to static on
ELF. It matches what is done on X86.
llvm-svn: 271052
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20716
llvm-svn: 271047
|
| |
|
|
|
|
| |
This reverts commit r271028, it causes the directive_fill.s to fail.
llvm-svn: 271038
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: dberlin, reames, george.burgess.iv
Subscribers: mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D20743
llvm-svn: 271034
|
| |
|
|
|
|
|
|
| |
This recommits r267649 with a fix for PR27539.
Differential Revision: http://reviews.llvm.org/D20598
llvm-svn: 271033
|
| |
|
|
|
|
|
|
|
| |
This matches the behavior of GNU assembler which supports symbolic
expressions in absolute expressions used in assembly directives.
Differential Revision: http://reviews.llvm.org/D20656
llvm-svn: 271028
|
| |
|
|
| |
llvm-svn: 271019
|