| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61536
llvm-svn: 359961
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61527
llvm-svn: 359959
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61534
llvm-svn: 359938
|
|
|
|
|
|
|
|
| |
Also add some missing metadata in the streamer.
Differential Revision: https://reviews.llvm.org/D61531
llvm-svn: 359937
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61529
llvm-svn: 359935
|
|
|
|
|
|
|
|
|
|
| |
The VOP3 form should always be the preferred selection form to be
shrunk later.
The r600 sub test needs to be split out because it asserts on the
arguments in the new test during the calling convention lowering.
llvm-svn: 359899
|
|
|
|
|
|
| |
Avoids test regression in a future patch
llvm-svn: 359898
|
|
|
|
| |
llvm-svn: 359895
|
|
|
|
|
|
|
| |
There were 2 patterns for sub, one selecting to sub and one to
subrev. Only one of these will succeed, so remove the reversed one.
llvm-svn: 359894
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was broken if the original operand was killed. The kill flag
would appear on both instructions, and fail the verifier. Keep the
kill flag, but remove the operands from the old instruction. This has
an added benefit of really reducing the use count for future folds.
Ideally the pass would be structured more like what PeepholeOptimizer
does to avoid this hack to avoid breaking instruction iterators.
llvm-svn: 359891
|
|
|
|
|
|
|
|
|
| |
When a fold of an immediate into a sub/subrev required shrinking the
instruction, the wrong VOP2 opcode was used. This was using the VOP2
equivalent of the original instruction, not the commuted instruction
with the inverted opcode.
llvm-svn: 359883
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't have FP exception limits in the IR constant folder for the binops (apart from strict ops),
so it does not make sense to have them here in the DAG either. Nothing else in the backend tries
to preserve exceptions (again outside of strict ops), so I don't see how this could have ever
worked for real code that cares about FP exceptions.
There are still cases (examples: unary opcodes in SDAG, FMA in IR) where we are trying (at least
partially) to preserve exceptions without even asking if the target supports FP exceptions. Those
should be corrected in subsequent patches.
Real support for FP exceptions requires several changes to handle the constrained/strict FP ops.
Differential Revision: https://reviews.llvm.org/D61331
llvm-svn: 359791
|
|
|
|
|
|
|
|
| |
Add legalization of V_ADD_I32, V_SUB_I32, V_SUBREV_I32.
Differential Revision:
llvm-svn: 359757
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61413
llvm-svn: 359756
|
|
|
|
|
|
|
|
| |
Constant bus limit has increased to 2 with GFX10.
Differential Revision: https://reviews.llvm.org/D61404
llvm-svn: 359754
|
|
|
|
|
|
|
|
| |
Reassign registers to reduce register bank conflicts.
Differential Revision: https://reviews.llvm.org/D61344
llvm-svn: 359704
|
|
|
|
|
|
|
|
| |
Convert NSA into non-NSA images.
Differential Revision: https://reviews.llvm.org/D61341
llvm-svn: 359700
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61339
llvm-svn: 359698
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61332
llvm-svn: 359696
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61330
llvm-svn: 359621
|
|
|
|
|
|
|
|
|
|
|
|
| |
The MachineFunction wasn't used in getOptimalMemOpType, but more importantly,
this allows reuse of findOptimalMemOpLowering that is calling getOptimalMemOpType.
This is the groundwork for the changes in D59766 and D59787, that allows
implementation of TTI::getMemcpyCost.
Differential Revision: https://reviews.llvm.org/D59785
llvm-svn: 359537
|
|
|
|
|
|
| |
Reported in https://www.viva64.com/en/b/0629/
llvm-svn: 359473
|
|
|
|
|
|
| |
Reported in https://www.viva64.com/en/b/0629/
llvm-svn: 359472
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 7a6ef3004655dd86d722199c471ae78c28e31bb4.
We discovered some internal test failures, so reverting for now.
Differential Revision: https://reviews.llvm.org/D61213
llvm-svn: 359363
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61208
llvm-svn: 359358
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61202
llvm-svn: 359328
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61156
llvm-svn: 359316
|
|
|
|
|
|
|
| |
Revert DecoderNamespace in one place for now. It will need more
changes to properly work.
llvm-svn: 359239
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61099
llvm-svn: 359225
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61094
llvm-svn: 359224
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Test commit.
Reviewers: msearles, jkorous
Reviewed By: jkorous
Subscribers: dexonsmith, arsenm, jvesely, nhaehnle, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61093
llvm-svn: 359154
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61080
llvm-svn: 359139
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61045
llvm-svn: 359117
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61041
llvm-svn: 359113
|
|
|
|
|
|
|
|
| |
Reviewers: artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D60767
llvm-svn: 359096
|
|
|
|
|
|
|
|
| |
The second argument is flags, not subreg.
Differential Revision: https://reviews.llvm.org/D61031
llvm-svn: 359017
|
|
|
|
|
|
|
|
|
|
| |
Essentially complete a proper rebase of the V3 metadata change over
https://reviews.llvm.org/D49096.
Minimize the diff between the V2 and V3 variants of the relevant lit
tests, and clean up some trailing whitespace.
llvm-svn: 358992
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When an LCSSA phi survives through instruction selection, the pass
ends up removing that phi entirely because it is dominated by the
logic that does the lanemask merging.
This then used to trigger an assertion when processing a dependent
phi instruction.
Change-Id: Id4949719f8298062fe476a25718acccc109113b6
Reviewers: llvm-commits
Subscribers: kzhuravl, jvesely, wdng, yaxunl, t-tye, tpr, dstuttard, rtaylor, arsenm
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D60999
llvm-svn: 358983
|
|
|
|
|
|
|
|
|
|
|
| |
Converting InlineCost interface and its internals into CallBase usage.
Inliners themselves are still not converted.
Reviewed By: reames
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D60636
llvm-svn: 358982
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
- Only apply packed literal `op_sel_hi` skipping on operands requiring
packed literals. Even an instruction is `packed`, it may have operand
requiring non-packed literal, such as `v_dot2_f32_f16`.
Reviewers: rampitec, arsenm, kzhuravl
Subscribers: jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D60978
llvm-svn: 358922
|
|
|
|
|
|
|
|
|
|
| |
These are inserted after branch relaxation, and for some reason it's
decided to put them in the long branch expansion block. It's probably
not great to rely on the source block address, so this should probably
be switched to being PC relative instead of relying on the block
address
llvm-svn: 358909
|
|
|
|
| |
llvm-svn: 358894
|
|
|
|
|
|
|
| |
Effectively reverts r356956. The check for isFullCopy was excessive,
but there still needs to be a check that this is a copy.
llvm-svn: 358890
|
|
|
|
|
|
|
|
|
|
| |
See bug 41156: https://bugs.llvm.org/show_bug.cgi?id=41156
Reviewers: artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D60624
llvm-svn: 358888
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds support for BigBitWidth -> SmallBitWidth bitcasts, splitting the DemandedBits/Elts accordingly.
The AMDGPU backend needed an extra (srl (and x, c1 << c2), c2) -> (and (srl(x, c2), c1) combine to encourage BFE creation, I investigated putting this in DAGCombine but it caused a lot of noise on other targets - some improvements, some regressions.
The X86 changes are all definite wins.
Differential Revision: https://reviews.llvm.org/D60462
llvm-svn: 358887
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The basic idea here is to make it possible to use
MachineInstr::mayAlias also when the MachineInstr
is const (or the "Other" MachineInstr is const).
The addition of const in MachineInstr::mayAlias
then rippled down to the need for adding const
in several other places, such as
TargetTransformInfo::getMemOperandWithOffset.
Reviewers: hfinkel
Reviewed By: hfinkel
Subscribers: hfinkel, MatzeB, arsenm, jvesely, nhaehnle, hiraditya, javed.absar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D60856
llvm-svn: 358744
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Ignore edges to non-SUnits (e.g. ExitSU) when checking
for low latency instructions.
When calling the function isLowLatencyInstruction(),
an ExitSU could be on the list of successors, not necessarily
a regular SU. In other places in the code there is a check
"Succ->NodeNum >= DAGSize" to prevent further processing of
ExitSU as "Succ->getInstr()" is NULL in such a case.
Also, 8 out of 9 cases of "SUnit *Succ = SuccDep.getSUnit())"
has the guard, so it is clearly an omission here.
Change-Id: Ica86f0327c7b2e6bcb56958e804ea6c71084663b
Reviewers: nhaehnle
Reviewed By: nhaehnle
Subscribers: MatzeB, arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, javed.absar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D60864
llvm-svn: 358740
|
|
|
|
|
|
|
|
|
|
|
| |
fneg combining attempts to turn it into fadd(fneg(A), fneg(0)), but
creating the new fadd folds to just fneg(A). When A has multiple uses,
this confuses it and you get an assert. Fixed.
Differential Revision: https://reviews.llvm.org/D60633
Change-Id: I0ddc9b7286abe78edc0cd8d734fdeb05ff09821c
llvm-svn: 358640
|
|
|
|
|
|
|
|
|
|
| |
See bug 41156: https://bugs.llvm.org/show_bug.cgi?id=41156
Reviewers: artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D60622
llvm-svn: 358596
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This fixes a large Dawn of War 3 performance regression with RADV from Mesa 19.0 to master which was caused by creating less code in some branches.
Reviewers: arsen, nhaehnle
Reviewed By: nhaehnle
Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D60824
llvm-svn: 358592
|