| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
We now use a standard fixup type applying the pc-relative address of
constant address space variables, and we have the GlobalAddress lowering
code add the required 4 byte offset to the global address rather than
doing it as part of the fixup.
This refactoring will make it easier to use the same code for global
address space variables and also simplifies the code.
Re-commit this after fixing a bug where we were trying to use a
reference to a Triple object that had already been destroyed.
Reviewers: arsenm, kzhuravl
Subscribers: arsenm, kzhuravl, llvm-commits
Differential Revision: http://reviews.llvm.org/D21154
llvm-svn: 272705
|
| |
|
|
|
|
| |
This reverts commit r272675.
llvm-svn: 272677
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
We now use a standard fixup type applying the pc-relative address of
constant address space variables, and we have the GlobalAddress lowering
code add the required 4 byte offset to the global address rather than
doing it as part of the fixup.
This refactoring will make it easier to use the same code for global
address space variables and also simplifies the code.
Reviewers: arsenm, kzhuravl
Subscribers: arsenm, kzhuravl, llvm-commits
Differential Revision: http://reviews.llvm.org/D21154
llvm-svn: 272675
|
| |
|
|
|
|
|
|
| |
This used to be free, copying and moving DebugLocs became expensive
after the metadata rewrite. Passing by reference eliminates a ton of
track/untrack operations. No functionality change intended.
llvm-svn: 272512
|
| |
|
|
| |
llvm-svn: 271567
|
| |
|
|
|
|
|
|
|
| |
f32 vectors would use a sequence of BFI instructions instead
of unrolled cmp + select. This was better in the case of a VALU
select with SGPR inputs, but we don't have a way of dealing with that
in the DAG.
llvm-svn: 270731
|
| |
|
|
|
|
|
|
| |
These are kind of a mess and hard to follow, particularly
for loads and stores. Fix various redundant, unnecessary
and dead settings.
llvm-svn: 270307
|
| |
|
|
|
|
|
| |
This is essentially doing a 24-bit signed division with FP.
We need to truncate to the N bit result.
llvm-svn: 270305
|
| |
|
|
| |
llvm-svn: 270139
|
| |
|
|
|
|
|
| |
For some reason an assert is now hit when a valid chain
is not returned, so return the entry chain.
llvm-svn: 269948
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: tstellard
Subscribers: arsenm
Differential Revision: http://reviews.llvm.org/D19794
llvm-svn: 269481
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm
Subscribers: jvesely, arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D19736
llvm-svn: 268267
|
| |
|
|
|
|
| |
TargetLoweringBase. This is what the majority of the targets want and removes a bunch of code. Set it to Legal explicitly in the few cases where that's the desired behavior.
llvm-svn: 267853
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17176
llvm-svn: 267606
|
| |
|
|
|
|
| |
Also reorder case to match enum order
llvm-svn: 267449
|
| |
|
|
|
|
| |
This fixes test regressions when i64 loads/stores are made promote.
llvm-svn: 267240
|
| |
|
|
| |
llvm-svn: 266385
|
| |
|
|
|
|
|
| |
This cleans up some messes since the individual scalar components
can be CSEed.
llvm-svn: 266376
|
| |
|
|
|
|
|
| |
These are different than atomicrmw add 1 because they have
an additional input value to clamp the result.
llvm-svn: 266074
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Implement BUFFER_ATOMIC_CMPSWAP{,_X2} instructions on all GCN targets, and FLAT_ATOMIC_CMPSWAP{,_X2} on CI+.
32-bit instruction variants tested manually on Kabini and Bonaire. Tests and parts of code provided by Jan Veselý.
Patch by: Vedran Miletić
Reviewers: arsenm, tstellarAMD, nhaehnle
Subscribers: jvesely, scchan, kanarayan, arsenm
Differential Revision: http://reviews.llvm.org/D17280
llvm-svn: 265170
|
| |
|
|
|
|
| |
"C4334 '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)". NFC.
llvm-svn: 264929
|
| |
|
|
|
|
|
| |
Move a few functions only used by R600 to R600 specific code,
fix header macros to stop using R600, mark classes as final.
llvm-svn: 263204
|
| |
|
|
| |
llvm-svn: 262853
|
| |
|
|
|
|
| |
Patch by Richard Thomson
llvm-svn: 262536
|
| |
|
|
|
|
|
|
| |
Technically you aren't supposed to emit these after type legalization
for some reason, and we use vector extracts of bitcasted integers
as the canonical way to do this.
llvm-svn: 262298
|
| |
|
|
|
|
|
|
|
|
| |
This currently does not have the control over the bitwidth,
and there are missing optimizations to reduce the integer to
32-bit if it can be.
But in most situations we do want the sinking to occur.
llvm-svn: 262296
|
| |
|
|
|
|
| |
Also fixes missing f32 test.
llvm-svn: 260780
|
| |
|
|
|
|
|
| |
I don't think this was causing any real problems, so I'm not sure
how to test for this.
llvm-svn: 260646
|
| |
|
|
|
|
|
| |
These were only sharing some somewhat incorrect
logic for when to scalarize or split vectors.
llvm-svn: 260490
|
| |
|
|
|
|
|
| |
These weren't actually sharing anything in the common
LowerLOAD.
llvm-svn: 260398
|
| |
|
|
| |
llvm-svn: 260316
|
| |
|
|
|
|
| |
Nothing is using them.
llvm-svn: 260123
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The current situation isn't great, because the amount of padding
requires is determined by the inverse order of the first encountered
use. We should eventually somehow sort these to minimize wasted space.
Another problem is the alignment of kernel arguments isn't
respected. The group_segment_alignment is always emitted as
the default 16, and typed arguments with higher alignments
or an explicitly set alignment are also ignored.
llvm-svn: 259912
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-commit of r258951 after fixing layering violation.
The BPF and WebAssembly backends had identical code for emitting errors
for unsupported features, and AMDGPU had very similar code. This merges
them all into one DiagnosticInfo subclass, that can be used by any
backend.
There should be minimal functional changes here, but some AMDGPU tests
have been updated for the new format of errors (it used a slightly
different format to BPF and WebAssembly). The AMDGPU error messages will
now benefit from having precise source locations when debug info is
available.
llvm-svn: 259498
|
| |
|
|
|
|
|
| |
The known bit matching code seems to work reasonably well,
so these shouldn't really be needed.
llvm-svn: 259180
|
| |
|
|
| |
llvm-svn: 259090
|
| |
|
|
| |
llvm-svn: 259089
|
| |
|
|
| |
llvm-svn: 259045
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-commit of r258951 after fixing layering violation.
The related LLVM patch adds a backend diagnostic type for reporting
unsupported features, this adds a printer for them to clang.
In the case where debug location information is not available, I've
changed the printer to report the location as the first line of the
function, rather than the closing brace, as the latter does not give the
user any information. This also affects optimisation remarks.
Differential Revision: http://reviews.llvm.org/D16590
llvm-svn: 259035
|
| |
|
|
|
|
|
|
|
|
|
| |
features"
It broke layering violation in LLVMIR.
clang r258950 "Add backend dignostic printer for unsupported features"
llvm r258951 "Refactor backend diagnostics for unsupported features"
llvm-svn: 259016
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The BPF and WebAssembly backends had identical code for emitting errors
for unsupported features, and AMDGPU had very similar code. This merges
them all into one DiagnosticInfo subclass, that can be used by any
backend.
There should be minimal functional changes here, but some AMDGPU tests
have been updated for the new format of errors (it used a slightly
different format to BPF and WebAssembly). The AMDGPU error messages will
now benefit from having precise source locations when debug info is
available.
The implementation of DiagnosticInfoUnsupported::print must be in
lib/Codegen rather than in the existing file in lib/IR/ to avoid
introducing a dependency from IR to CodeGen.
Differential Revision: http://reviews.llvm.org/D16590
llvm-svn: 258951
|
| |
|
|
|
|
| |
Also move into backend intrinsics to discourage use of the old name.
llvm-svn: 258783
|
| |
|
|
|
|
| |
Replace tests with lrp with basic IR expansion
llvm-svn: 258612
|
| |
|
|
| |
llvm-svn: 258608
|
| |
|
|
|
|
|
|
|
|
|
| |
The intrinsic target prefix should match the target name
as it appears in the triple.
This is not yet complete, but gets most of the important ones.
llvm.AMDGPU.* intrinsics used by mesa and libclc are still handled
for compatability for now.
llvm-svn: 258557
|
| |
|
|
| |
llvm-svn: 258348
|
| |
|
|
| |
llvm-svn: 258346
|
| |
|
|
| |
llvm-svn: 258343
|
| |
|
|
|
|
| |
This removes support for mesa 11.0.x
llvm-svn: 258342
|
| |
|
|
| |
llvm-svn: 258096
|