| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 352594
|
|
|
|
|
|
| |
Also add some quick hacks to AMDGPU legality for the tests.
llvm-svn: 352591
|
|
|
|
| |
llvm-svn: 352585
|
|
|
|
| |
llvm-svn: 352565
|
|
|
|
| |
llvm-svn: 352560
|
|
|
|
|
|
|
|
|
|
| |
This was ignoring the memory size, and producing multiple loads/stores
if the operand size was different from the memory size.
I assume this is the intent of not having an explicit G_ANYEXTLOAD
(although I think that would probably be better).
llvm-svn: 352523
|
|
|
|
|
|
|
|
|
|
| |
This adds support for legalizing G_FLOG into a RTLib call.
It adds a legalizer test, and updates the existing floating point tests.
https://reviews.llvm.org/D57347
llvm-svn: 352429
|
|
|
|
|
|
|
|
|
|
| |
This adds instruction selection support for @llvm.log10 in AArch64. It teaches
GISel to lower it to a library call, updates the relevant tests, and adds a
legalizer test for log10.
https://reviews.llvm.org/D57341
llvm-svn: 352418
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds ISel support for lifetime markers in opt levels above O0.
It also updates the arm64-irtranslator test, and updates some AArch64 tests that
use them for added coverage.
It also adds a testcase taken from the X86 codegen tests which verified a bug
caused by lifetime markers + stack colouring in the past. This is intended to
make sure that GISel doesn't re-introduce the bug.
(This is basically a straight copy from what SelectionDAG does in
SelectionDAGBuilder.cpp)
https://reviews.llvm.org/D57187
llvm-svn: 352410
|
|
|
|
|
|
|
|
|
|
|
|
| |
This contains all of the legalizer changes from D57197 necessary to select
G_FCOS and G_FSIN. It also updates several existing IR tests in
test/CodeGen/AArch64 that verify that we correctly lower the G_FCOS and G_FSIN
instructions.
https://reviews.llvm.org/D57197
3/3
llvm-svn: 352402
|
|
|
|
|
|
|
|
|
| |
This adds IRTranslator support for the G_FCOS and G_FSIN generic instructions.
https://reviews.llvm.org/D57197
2/3
llvm-svn: 352401
|
|
|
|
|
|
|
|
|
| |
Lower G_USUBO and G_USUBE. Add narrowScalar for G_SUB.
Legalize and select G_SUB for MIPS 32.
Differential Revision: https://reviews.llvm.org/D53416
llvm-svn: 352351
|
|
|
|
|
|
|
| |
This is invalid for the same reason as in the narrowScalar handling
for load.
llvm-svn: 352334
|
|
|
|
| |
llvm-svn: 352332
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
illegal instructions.
This fixes loads like 's1 = load %p (load 1 from %p)' being combined with an
extend into an illegal 's8 = g_extload %p (load 1 from %p)' which doesn't do any
extension, by avoiding touching those < s8 size loads.
This bug was uncovered by a verifier update r351584, which I reverted it to keep
the bots green.
llvm-svn: 352311
|
|
|
|
| |
llvm-svn: 352301
|
|
|
|
| |
llvm-svn: 352300
|
|
|
|
| |
llvm-svn: 352298
|
|
|
|
|
|
|
| |
When the fneg IR instruction was added the code to do translation wasn't
tested, and tried to get an invalid operand.
llvm-svn: 352296
|
|
|
|
| |
llvm-svn: 352295
|
|
|
|
| |
llvm-svn: 352191
|
|
|
|
| |
llvm-svn: 352167
|
|
|
|
| |
llvm-svn: 352166
|
|
|
|
| |
llvm-svn: 352165
|
|
|
|
| |
llvm-svn: 352162
|
|
|
|
|
|
| |
Also legalize 64-bit compares for AMDGPU
llvm-svn: 352157
|
|
|
|
| |
llvm-svn: 352155
|
|
|
|
| |
llvm-svn: 352143
|
|
|
|
| |
llvm-svn: 352130
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://reviews.llvm.org/D57178
Now add a hook in TargetPassConfig to query if CSE needs to be
enabled. By default this hook returns false only for O0 opt level but
this can be overridden by the target.
As a consequence of the default of enabled for non O0, a few tests
needed to be updated to not use CSE (by passing in -O0) to the run
line.
reviewed by: arsenm
llvm-svn: 352126
|
|
|
|
| |
llvm-svn: 352123
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds support for vector @llvm.ceil intrinsics when full 16 bit
floating point support isn't available.
To do this, this patch...
- Implements basic isel for G_UNMERGE_VALUES
- Teaches the legalizer about 16 bit floats
- Teaches AArch64RegisterBankInfo to respect floating point registers on
G_BUILD_VECTOR and G_UNMERGE_VALUES
- Teaches selectCopy about 16-bit floating point vectors
It also adds
- A legalizer test for the 16-bit vector ceil which verifies that we create a
G_UNMERGE_VALUES and G_BUILD_VECTOR when full fp16 isn't supported
- An instruction selection test which makes sure we lower to G_FCEIL when
full fp16 is supported
- A test for selecting G_UNMERGE_VALUES
And also updates arm64-vfloatintrinsics.ll to show that the new ceiling types
work as expected.
https://reviews.llvm.org/D56682
llvm-svn: 352113
|
|
|
|
|
|
|
|
|
| |
For AMDGPU the shift amount is never 64-bit, and
this needs to use a 32-bit shift.
X86 uses i8, but seemed to be hacking around this before.
llvm-svn: 351882
|
|
|
|
|
|
|
| |
Produce a splat build_vector similar to how
SelectionDAG::getConstant does.
llvm-svn: 351880
|
|
|
|
| |
llvm-svn: 351871
|
|
|
|
| |
llvm-svn: 351866
|
|
|
|
| |
llvm-svn: 351856
|
|
|
|
| |
llvm-svn: 351853
|
|
|
|
| |
llvm-svn: 351699
|
|
|
|
| |
llvm-svn: 351696
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to reflect the new license.
We understand that people may be surprised that we're moving the header
entirely to discuss the new license. We checked this carefully with the
Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM
project under our new license, so you will see that the license headers
include that license only. Some of our contributors have contributed
code under our old license, and accordingly, we have retained a copy of
our old license notice in the top-level files in each project and
repository.
llvm-svn: 351636
|
|
|
|
| |
llvm-svn: 351574
|
|
|
|
|
|
|
|
|
|
| |
https://reviews.llvm.org/D52803
This patch adds support to continuously CSE instructions during
each of the GISel passes. It consists of a GISelCSEInfo analysis pass
that can be used by the CSEMIRBuilder.
llvm-svn: 351283
|
|
|
|
| |
llvm-svn: 351016
|
|
|
|
| |
llvm-svn: 350697
|
|
|
|
| |
llvm-svn: 350695
|
|
|
|
| |
llvm-svn: 350618
|
|
|
|
| |
llvm-svn: 350597
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a copy was needed to handle the condition of brcond, it was being
inserted before the defining instruction. Add tests for iterator edge
cases.
I find the existing code here suspect for the case where it's looking
for terminators that modify the register. It's going to insert a copy
in the middle of the terminators, which isn't allowed (it might be
necessary to have a COPY_terminator if anybody actually needs this).
Also legalize brcond for AMDGPU.
llvm-svn: 350595
|
|
|
|
| |
llvm-svn: 350142
|