| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
Previously, we would hit UB (or the ISD::DELETED_NODE assert) if we
happened to replace a node during UpdateChains, because it would be
left in the list we were iterating over. This nulls out the pointer
when that happens so that we can avoid the issue.
Fixes llvm.org/PR31710
llvm-svn: 293522
|
| |
|
|
|
|
| |
possible. NFCI.
llvm-svn: 293520
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D28977
llvm-svn: 293516
|
| |
|
|
|
|
| |
will turn into unreachable when it runs
llvm-svn: 293515
|
| |
|
|
| |
llvm-svn: 293514
|
| |
|
|
|
|
|
|
| |
fcmp (fneg x), c, pred -> fcmp x, -c, (swap pred)
InstCombine already does this.
llvm-svn: 293512
|
| |
|
|
| |
llvm-svn: 293510
|
| |
|
|
|
|
|
|
| |
This reverts commit r293503.
Revert while I investigate some of the buildbot failures.
llvm-svn: 293509
|
| |
|
|
| |
llvm-svn: 293508
|
| |
|
|
|
|
| |
with splat constants
llvm-svn: 293507
|
| |
|
|
|
|
|
|
|
| |
To simplify/clarify memory ownership, make leaks (as one was found/fixed
recently) harder to write, etc.
(also, while I was there - removed a duplicate lookup in a container)
llvm-svn: 293506
|
| |
|
|
| |
llvm-svn: 293504
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: We can select constant/global G_LOAD, global G_STORE, and G_GEP.
Reviewers: qcolombet, MatzeB, t.p.northover, ab, arsenm
Subscribers: mehdi_amini, vkalintiris, kzhuravl, wdng, nhaehnle, mgorny, yaxunl, tony-tye, modocache, llvm-commits, dberris
Differential Revision: https://reviews.llvm.org/D26730
llvm-svn: 293503
|
| |
|
|
|
|
|
|
|
| |
This reverts commit r293196
Besides making things look nicer, ATM, we'd like to preserve analysis
more than we'd like to destroy the CFG. We'll probably revisit in the future
llvm-svn: 293501
|
| |
|
|
|
|
| |
target shuffles
llvm-svn: 293500
|
| |
|
|
|
|
|
| |
This fixes emitting conversions of constants on targets
without legal f16 that need to use these for legalization.
llvm-svn: 293499
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The original shift is bigger, so this may qualify as 'obvious',
but here's an attempt at an Alive-based proof:
Name: exact
Pre: (C1 u< C2)
%a = shl i8 %x, C1
%b = lshr exact i8 %a, C2
=>
%c = lshr exact i8 %x, C2 - C1
%b = and i8 %c, ((1 << width(C1)) - 1) u>> C2
Optimization is correct!
llvm-svn: 293498
|
| |
|
|
| |
llvm-svn: 293494
|
| |
|
|
|
|
| |
This significantly reduces the noise level of these messages.
llvm-svn: 293492
|
| |
|
|
| |
llvm-svn: 293491
|
| |
|
|
|
|
|
|
| |
TotalAltCost => TotalSecondaryCost
Differential Revision: https://reviews.llvm.org/D29231
llvm-svn: 293490
|
| |
|
|
| |
llvm-svn: 293489
|
| |
|
|
|
|
|
|
|
|
| |
Different architectures can have different meaning for flags in the
SHF_MASKPROC mask, so we should always check what the architecture use
before checking the flag.
NFC for now, but will allow fixing the value of an xmos flag.
llvm-svn: 293484
|
| |
|
|
| |
llvm-svn: 293482
|
| |
|
|
| |
llvm-svn: 293478
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: already covered by complex patterns
Reviewers: arsenm, nhaehnle, tstellarAMD
Subscribers: kzhuravl, wdng, yaxunl, tony-tye
Differential Revision: https://reviews.llvm.org/D28995
llvm-svn: 293477
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm, tstellarAMD
Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, tony-tye
Differential Revision: https://reviews.llvm.org/D28992
llvm-svn: 293476
|
| |
|
|
|
|
|
| |
This reverts commit r293471, reapplying r293361 and r293363 with a fix
for an out-of-bounds read.
llvm-svn: 293474
|
| |
|
|
| |
llvm-svn: 293471
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D28079
llvm-svn: 293470
|
| |
|
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D28354
llvm-svn: 293469
|
| |
|
|
|
|
|
|
| |
broadcast. We can use COPY_TO_REGCLASS like AVX does.
This causes stack spill slots be oversized sometimes, but the same should already be happening with AVX.
llvm-svn: 293464
|
| |
|
|
|
|
| |
This part of the C API is still used in language bindings.
llvm-svn: 293460
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
By calling getScalarizationOverhead with the CallInst instead of the types of
its arguments, we make sure that only unique call arguments are added to the
scalarization cost.
getScalarizationOverhead() is extended to handle calls by only passing on the
actual call arguments (which is not all the operands).
This also eliminates a wrapper function with the same name.
review: Hal Finkel
llvm-svn: 293459
|
| |
|
|
|
|
| |
KSET0W/KSET1W for v8i1.
llvm-svn: 293458
|
| |
|
|
| |
llvm-svn: 293453
|
| |
|
|
|
|
| |
shift within elements while KSHIFT moves whole elements.
llvm-svn: 293448
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: joe.abbey, craig.topper
Reviewed By: craig.topper
Subscribers: majnemer, llvm-commits
Differential Revision: https://reviews.llvm.org/D29201
llvm-svn: 293447
|
| |
|
|
|
|
|
|
| |
lower half.
Previously this test case fired an assertion in getNode because we tried to create an insert_subvector with both input types the same size and the index pointing to half the vector width.
llvm-svn: 293446
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: The RCL and RCR instructions use the carry flag.
Reviewers: craig.topper
Reviewed By: craig.topper
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D29237
llvm-svn: 293441
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The primary use of the dump() functions in LLVM is for use in a
debugger. Unfortunately lldb does not seem to handle default arguments
so using `p SomeMI.dump()` fails and you have to type the longer `p
SomeMI.dump(nullptr)`. Remove the paramter to make the most common use
easy. (You can always construct something like `p
SomeMI.print(dbgs(),MyTII)` if you need more features).
Differential Revision: https://reviews.llvm.org/D29241
llvm-svn: 293440
|
| |
|
|
|
|
|
|
|
|
| |
Replaces an xor+movd/movq with an xorps which will be shorter in codesize, avoid an int-fpu transfer, allow modern cores to fast path the result during decode and helps other combines recognise an all-zero vector.
The only reason I can think of that we'd want to keep scalar_to_vector in this case is to help recognise the upper elts are undef but this doesn't seem to be a problem.
Differential Revision: https://reviews.llvm.org/D29097
llvm-svn: 293438
|
| |
|
|
|
|
|
|
| |
While this probably should be considered a dump debugger utility, the C
API currently has no other ways to print a module to stderr for error
reporting purposes, so keep it even in release builds.
llvm-svn: 293436
|
| |
|
|
|
|
| |
with splats
llvm-svn: 293435
|
| |
|
|
|
|
|
|
|
|
| |
Support lowering AEABI TLS access (__aeabi_read_tp) with long calls.
This requires adjusting the call sequence to use an indirect call to get
full addressability.
Resolves PR31769!
llvm-svn: 293433
|
| |
|
|
|
|
|
|
|
| |
1. Use auto with dyn_cast.
2. Don't use else after return.
3. Convert chain of 'else if' to switch.
4. Improve variable names.
llvm-svn: 293432
|
| |
|
|
|
|
|
|
|
|
|
| |
PACKUSWB converts Signed word to Unsigned byte, (the same about DW) and it can't be used for umin+truncate pattern.
AVX-512 VPMOVUS* instructions fit the pattern since they convert Unsigned to Unsigned.
See https://llvm.org/bugs/show_bug.cgi?id=31773
Differential Revision: https://reviews.llvm.org/D29196
llvm-svn: 293431
|
| |
|
|
| |
llvm-svn: 293428
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Add limited (i8/i16/i32/i64) argument lowering support to the IRTranslator.
Inspired by commit 289940.
Reviewers: t.p.northover, qcolombet, ab, zvi, rovka
Reviewed By: rovka
Subscribers: dberris, rovka, kristof.beyls, llvm-commits
Differential Revision: https://reviews.llvm.org/D28987
llvm-svn: 293427
|
| |
|
|
|
|
|
|
|
|
| |
here. NFC.
Simple refactoring while prepping a port to the new PM.
Differential Revision: https://reviews.llvm.org/D29249
llvm-svn: 293426
|