| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Fixes some crashes on illegal call situations which are unfortunately
still valid IR.
llvm-svn: 355051
|
|
|
|
|
|
|
| |
We have to at least tolerate calls to kernels, possibly with a
mismatched calling convention on the callsite.
llvm-svn: 355049
|
|
|
|
| |
llvm-svn: 355048
|
|
|
|
| |
llvm-svn: 355047
|
|
|
|
|
|
|
|
|
|
| |
See bug 37943: https://bugs.llvm.org/show_bug.cgi?id=37943
Reviewers: artem.tamazov, arsenm, rampitec
Differential Revision: https://reviews.llvm.org/D58287
llvm-svn: 354974
|
|
|
|
|
|
|
|
|
|
|
|
| |
instructions s_set_gpr_idx_on and s_set_gpr_idx_mode
See bug 39331: https://bugs.llvm.org/show_bug.cgi?id=39331
Reviewers: artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D58288
llvm-svn: 354969
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SITargetLowering::reassociateScalarOps() does not touch constants
so that DAGCombiner::ReassociateOps() does not revert the combine.
However a global address is not a ConstantSDNode.
Switched to the method used by DAGCombiner::ReassociateOps() itself
to detect constants.
Differential Revision: https://reviews.llvm.org/D58695
llvm-svn: 354926
|
|
|
|
|
|
|
|
| |
Try to use concat_vectors. Also remove unnecessary assert on
pointers. Fixes asserting for <4 x s16> operations and 64-bit pointers
for AMDGPU.
llvm-svn: 354828
|
|
|
|
| |
llvm-svn: 354825
|
|
|
|
| |
llvm-svn: 354818
|
|
|
|
|
|
|
| |
EarlyCSE with MemorySSA was able to use this to merge multiple calls
with no intervening store.
llvm-svn: 354814
|
|
|
|
|
|
|
| |
These really read and write the result register, so these need a tied
input.
llvm-svn: 354809
|
|
|
|
|
|
|
| |
It breaks one of our downstream merges, so revert it
temporarily while investigating failures downstream
llvm-svn: 354700
|
|
|
|
| |
llvm-svn: 354686
|
|
|
|
|
|
| |
As far as I know these aren't needed anymore.
llvm-svn: 354634
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D58522
llvm-svn: 354620
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An internal build is hitting asserts complaining about too many subtarget
features:
llvm/utils/TableGen/Types.cpp:42:
const char* llvm::getMinimalTypeForEnumBitfield(uint64_t):
Assertion `MaxIndex <= 64 && "Too many bits"' failed.
llvm/utils/TableGen/AsmMatcherEmitter.cpp:1476:
void {anonymous}::AsmMatcherInfo::buildInfo():
Assertion `SubtargetFeatures.size() <= 64 && "Too many subtarget features!"'
failed.
The short-term solution is to remove a few unused AssemblerPredicates to get
under the limit.
The long-term solution seems to be to revisit these asserts. E.g., rather than
hardcoded '64', use the standard sized std::bitset like the other places that
track subtarget features.
Differential Revision: https://reviews.llvm.org/D58516
llvm-svn: 354604
|
|
|
|
| |
llvm-svn: 354592
|
|
|
|
| |
llvm-svn: 354587
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D58481
llvm-svn: 354543
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: volkan, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, kristof.beyls, dstuttard, tpr, t-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D52922
llvm-svn: 354516
|
|
|
|
|
|
| |
Also complete the set of related operations.
llvm-svn: 354480
|
|
|
|
| |
llvm-svn: 354477
|
|
|
|
| |
llvm-svn: 354354
|
|
|
|
| |
llvm-svn: 354348
|
|
|
|
| |
llvm-svn: 354345
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
areMemAccessesTriviallyDisjoint in LoadStoreOptimizer pass.
Summary:
This is to fix a memory dependence bug in LoadStoreOptimizer.
Reviewers:
arsenm, rampitec
Differential Revision:
https://reviews.llvm.org/D58295
llvm-svn: 354295
|
|
|
|
| |
llvm-svn: 354293
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D57811
llvm-svn: 354085
|
|
|
|
|
|
|
| |
This allows targets to specify the minimum alignment required for the
load/store.
llvm-svn: 354071
|
|
|
|
|
|
|
|
|
|
| |
This is basically a pointer typed add, so shouldn't be any different.
This was assuming everything was an SGPR, which is not true.
Also cleanup legality for GEP. I don't seem to be seeing the problem
the hack marking s64 as a legal pointer type the comment mentions.
llvm-svn: 354067
|
|
|
|
|
|
|
|
|
|
|
| |
Reassociate adds to collect scalar operands in a single
instruction when possible. That will result in a scalar
add followed by vector instead of two vector adds, thus
better utilizing SALU.
Differential Revision: https://reviews.llvm.org/D58220
llvm-svn: 354066
|
|
|
|
| |
llvm-svn: 354065
|
|
|
|
|
|
|
|
| |
Subtargets are a function level property, so ideally we would
eliminate everywhere that needs to check the global one. Rename the
function to try avoiding confusion.
llvm-svn: 353900
|
|
|
|
|
|
|
|
|
|
| |
This was inhibiting inlining of library functions when clang was
invoking the inliner directly. This is covering a bit of a mess with
subtarget feature handling, and this shouldn't be a subtarget
feature. The behavior is different depending on whether you are using
a -mattr flag in clang, or llc, opt.
llvm-svn: 353899
|
|
|
|
| |
llvm-svn: 353892
|
|
|
|
| |
llvm-svn: 353889
|
|
|
|
|
|
| |
We could deal with it, but there's no real point.
llvm-svn: 353845
|
|
|
|
| |
llvm-svn: 353754
|
|
|
|
| |
llvm-svn: 353719
|
|
|
|
| |
llvm-svn: 353704
|
|
|
|
|
|
|
|
|
|
| |
This commit fixes the DPP sequence in the atomic optimizer (which was
previously missing the row_shr:3 step), and works around a read_register
exec bug by using a ballot instead.
Differential Revision: https://reviews.llvm.org/D57737
llvm-svn: 353703
|
|
|
|
|
|
| |
Related revisions: https://reviews.llvm.org/D55444, https://reviews.llvm.org/D55314
llvm-svn: 353691
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D57971
llvm-svn: 353587
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch accompanies the RFC posted here:
http://lists.llvm.org/pipermail/llvm-dev/2018-October/127239.html
This patch adds a new CallBr IR instruction to support asm-goto
inline assembly like gcc as used by the linux kernel. This
instruction is both a call instruction and a terminator
instruction with multiple successors. Only inline assembly
usage is supported today.
This also adds a new INLINEASM_BR opcode to SelectionDAG and
MachineIR to represent an INLINEASM block that is also
considered a terminator instruction.
There will likely be more bug fixes and optimizations to follow
this, but we felt it had reached a point where we would like to
switch to an incremental development model.
Patch by Craig Topper, Alexander Ivchenko, Mikhail Dvoretckii
Differential Revision: https://reviews.llvm.org/D53765
llvm-svn: 353563
|
|
|
|
|
|
|
|
|
|
|
| |
Inline compatability is determined from the individual feature
bits. These are just sets of the separate features, but will always be
treated as incompatible unless they are specifically ignored.
Defining the ISA version number here in tablegen would be nice, but it
turns out this wasn't actually used.
llvm-svn: 353558
|
|
|
|
|
|
|
| |
These are no longer necessary since the R600 tablegen files are split
out now.
llvm-svn: 353548
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Prior to GCN3 s_load_dword offsets are in dwords rather than bytes.
Thus the scratch buffer descriptor offset must be adjusted for pre-GCN3 ASICs.
Reviewers: nhaehnle, tpr
Reviewed By: nhaehnle
Subscribers: sheredom, arsenm, kzhuravl, jvesely, wdng, yaxunl, dstuttard, t-tye, jfb, llvm-commits
Differential Revision: https://reviews.llvm.org/D56496
llvm-svn: 353530
|
|
|
|
|
|
|
|
| |
clampScalar doesn't do anything for non-power-of-2 in range.
There should probably be a combination rule to reduce the number
of matching rules.
llvm-svn: 353526
|
|
|
|
|
|
|
|
|
|
| |
See bug 39293: https://bugs.llvm.org/show_bug.cgi?id=39293
Reviewers: artem.tamazov, rampitec
Differential Revision: https://reviews.llvm.org/D57889
llvm-svn: 353524
|