| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
Does not mark SlotIndexes as reserved, although I think
that might be OK.
LiveVariables still need to be handled.
llvm-svn: 245133
|
| |
|
|
|
|
|
| |
These shouldn't ever be null. The number of successors
was already asserted to be 2.
llvm-svn: 245132
|
| |
|
|
|
|
|
|
|
|
|
| |
True branch instructions do behave as expected with liveness.
Avoid the phrasing "branch decision is based on a value in an SGPR"
because this could be misleading. A VALU compare instruction's
result is still based on an SGPR, even though that condition
may be divergent.
llvm-svn: 245131
|
| |
|
|
|
|
|
|
| |
The compiler was failing to spill for some shaders.
Patch By: Axel Davy
llvm-svn: 245087
|
| |
|
|
|
|
|
|
|
|
| |
AMDGPU implementation
D9746 added general SMAX/SMIN/UMAX/UMIN pattern matching to SelectionDAGBuilder::visitSelect.
Differential Revision: http://reviews.llvm.org/D12007
llvm-svn: 244960
|
| |
|
|
|
|
|
|
|
|
| |
After r244870 flush() will only compare two null pointers and return,
doing nothing but wasting run time. The call is not required any more
as the stream and its SmallString are always in sync.
Thanks to David Blaikie for reviewing.
llvm-svn: 244928
|
| |
|
|
| |
llvm-svn: 244728
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit removes the global manager variable which is responsible for
storing and allocating pseudo source values and instead it introduces a new
manager class named 'PseudoSourceValueManager'. Machine functions now own an
instance of the pseudo source value manager class.
This commit also modifies the 'get...' methods in the 'MachinePointerInfo'
class to construct pseudo source values using the instance of the pseudo
source value manager object from the machine function.
This commit updates calls to the 'get...' methods from the 'MachinePointerInfo'
class in a lot of different files because those calls now need to pass in a
reference to a machine function to those methods.
This change will make it easier to serialize pseudo source values as it will
enable me to transform the mips specific MipsCallEntry PseudoSourceValue
subclass into two target independent subclasses.
Reviewers: Akira Hatanaka
llvm-svn: 244693
|
| |
|
|
| |
llvm-svn: 244402
|
| |
|
|
| |
llvm-svn: 244383
|
| |
|
|
| |
llvm-svn: 244381
|
| |
|
|
| |
llvm-svn: 244380
|
| |
|
|
| |
llvm-svn: 244379
|
| |
|
|
| |
llvm-svn: 244376
|
| |
|
|
|
|
|
|
|
| |
The pass adds new kernel arguments for image attributes, and
resolves calls to dummy attribute and resource id getter functions.
Patch by: Zoltan Gilian
llvm-svn: 244372
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
With InstAlias, we don't need to print the _e32 portion of the mnemonic
when we print the $dst operand. This change makes it possible to
include vcc in the asm string when we switch VOPC over to having
implicit vcc defs.
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11813
llvm-svn: 244362
|
| |
|
|
|
|
|
| |
Since r243294 these are selected to SMRD and
moved later if required.
llvm-svn: 244354
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: We were using the SI encoding for VI.
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11812
llvm-svn: 244332
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11810
llvm-svn: 244322
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11809
llvm-svn: 244321
|
| |
|
|
|
|
| |
Patch by: Alex Deucher
llvm-svn: 244255
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11604
llvm-svn: 244254
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: This allows us to consolidate several of the TableGen patterns.
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11602
llvm-svn: 244253
|
| |
|
|
|
|
| |
For the same reasons as the other physical registers.
llvm-svn: 244062
|
| |
|
|
|
|
|
| |
These should be handled as a physical register rather
than a virtual register class with one member.
llvm-svn: 244061
|
| |
|
|
|
|
| |
This was already done in most places a while ago. This just fixes the ones that crept in over time.
llvm-svn: 243842
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit fixes a bug in the class 'SIInstrInfo' where the implicit register
machine operands were added to a machine instruction in an incorrect order -
the implicit uses were added before the implicit defs.
I found this bug while working on moving the implicit register operand
verification code from the MIR parser to the machine verifier.
This commit also makes the method 'addImplicitDefUseOperands' in the machine
instruction class public so that it can be reused in the 'SIInstrInfo' class.
Reviewers: Matt Arsenault
Differential Revision: http://reviews.llvm.org/D11689
llvm-svn: 243799
|
| |
|
|
| |
llvm-svn: 243731
|
| |
|
|
|
|
|
| |
This requires a fix in tablegen for the cast<int> from bits<16>
to work in the list initializer.
llvm-svn: 243723
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11603
llvm-svn: 243719
|
| |
|
|
|
|
|
|
| |
I'm not sure what reasons the comment here could have
had for not setting these. Without these set, there is
an assertion hit during DWARF emission.
llvm-svn: 243661
|
| |
|
|
|
|
|
|
|
|
|
| |
Copy implementation of applyFixup from AArch64 with AArch64 bits
ripped out.
Tests will be included with a later commit. Several other
problems must be fixed before binary debug info emission
will work.
llvm-svn: 243660
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Replace the switch on instruction opcode with a switch on register size.
This way we don't need to update the switch statement when we add new
SMRD variants.
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11601
llvm-svn: 243652
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This function is never called. isReallyTriviallyReMaterializable() is
the function that should be implemented instead.
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11620
llvm-svn: 243651
|
| |
|
|
|
|
|
|
| |
the other files that have the same typo. All comments, no functionality change! (Merely a "fuctionality" change.)
Bonus change to remove emacs major mode marker from SystemZMachineFunctionInfo.cpp because emacs already knows it's C++ from the extension. Also fix typo "appeary" in AMDGPUMCAsmInfo.h.
llvm-svn: 243585
|
| |
|
|
| |
llvm-svn: 243501
|
| |
|
|
|
| |
Reviewers: Duncan P. N. Exon Smith
llvm-svn: 243497
|
| |
|
|
|
|
|
| |
If the pointer is the store's value operand, this would produce
a broken module. Make sure the use is actually for the pointer operand.
llvm-svn: 243462
|
| |
|
|
|
|
|
| |
getCalledFunction() is null, so this would crash. Replace
crash with an error on unsupported call.
llvm-svn: 243461
|
| |
|
|
|
|
| |
Patch by Zoltan Gilian <zoltan.gilian@gmail.com>
llvm-svn: 243459
|
| |
|
|
| |
llvm-svn: 243334
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Author: Dave Airlie <airlied@redhat.com>
In order to implement indirect sampler loads, we don't
want to match on a VGPR load but an SGPR one for constants,
as we cannot feed VGPRs to the sampler only SGPRs.
this should be applicable for llvm 3.7 as well.
llvm-svn: 243294
|
| |
|
|
|
|
| |
This is a candidate for 3.7.
llvm-svn: 243263
|
| |
|
|
|
|
|
|
|
|
| |
through APIs that are no longer necessary now that the update API has
been removed.
This will make changes to the AA interfaces significantly less
disruptive (I hope). Either way, it seems like a really nice cleanup.
llvm-svn: 242882
|
| |
|
|
| |
llvm-svn: 242747
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The MUBUF addr64 bit has been removed on VI, so we must use FLAT
instructions when the pointer is stored in VGPRs.
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11067
llvm-svn: 242673
|
| |
|
|
|
|
|
|
|
|
| |
canFoldMemoryOperand is not actually used anywhere in the codebase - all existing users instead call foldMemoryOperand directly when they wish to fold and can correctly deduce what they need from the return value.
This patch removes the canFoldMemoryOperand base function and the target implementations; only x86 had a real (bit-rotted) implementation, although AMDGPU had a preparatory stub that had never needed to be completed.
Differential Revision: http://reviews.llvm.org/D11331
llvm-svn: 242638
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11226
llvm-svn: 242434
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
We can safely assume that the high bit of scratch offsets will never
be set, because this would require at least 128 GB of GPU memory.
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11225
llvm-svn: 242433
|
| |
|
|
|
|
| |
This fixes a warning introduced by r242410.
llvm-svn: 242412
|