| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 275769
|
| |
|
|
|
|
| |
X86InstrInfo::isAssociativeAndCommutative.
llvm-svn: 275768
|
| |
|
|
| |
llvm-svn: 275767
|
| |
|
|
|
|
| |
add all packed fp division instructions.
llvm-svn: 275766
|
| |
|
|
|
|
| |
X86InstrInfo::areLoadsFromSameBasePtr.
llvm-svn: 275765
|
| |
|
|
|
|
| |
AVX-512 related.
llvm-svn: 275764
|
| |
|
|
|
|
|
|
| |
VLX is supported.
Ideally we would use VEX encoded moves instead of EVEX if the high 16 registers aren't referenced, but this a good first step.
llvm-svn: 275763
|
| |
|
|
| |
llvm-svn: 275762
|
| |
|
|
| |
llvm-svn: 275726
|
| |
|
|
|
|
|
|
| |
Moved unpack type determination into TryUnpack lambda.
Added missing comment describing lowerVectorShuffleAsPermuteAndUnpack call.
llvm-svn: 275708
|
| |
|
|
| |
llvm-svn: 275703
|
| |
|
|
|
|
|
|
|
|
|
| |
r275042 reverted function-attribute inference for the 'returned' attribute
because the feature triggered self-hosting failures on ARM and AArch64. James
Molloy determined that the this-return argument forwarding feature, which
directly ties the returned input argument to the returned value, was the cause.
It seems likely that this forwarding code contains, or triggers, a subtle bug.
Disabling for now until we can track that down.
llvm-svn: 275677
|
| |
|
|
|
|
| |
Attempting to fix lit test failure on ppc.
llvm-svn: 275676
|
| |
|
|
|
|
| |
implemented with patterns selecting existing instructions. NFC
llvm-svn: 275671
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Initializing them in LLVMInitializeARMTarget() makes them visible early
enough for "llc -run-pass usage".
This required the pass to be renamed from "arm-load-store-opt" to
"arm-ldst-opt", because there already exists an arm-load-store-opt
cl::opt switch which would now clash with the passname getting added as
a switch in opt. On the bright side the pass name now matches the
DEBUG_TYPE name. Renamed "arm-prera-load-store-opt" to
"arm-repra-ldst-opt" as well for consistency.
llvm-svn: 275661
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit r275562, effectively reapplying r275141. Doug
Gilmore reported that there was an error when bisecting the Mips
buildbot failure, and that r275141 was not to blame after all. Here is
the green build:
https://dmz-portal.mips.com/bb/builders/LLVM%20with%20integrated%20assembler%20and%20fPIC%20and%20-O0/builds/803
llvm-svn: 275643
|
| |
|
|
| |
llvm-svn: 275637
|
| |
|
|
| |
llvm-svn: 275636
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
In this situation:
%VGPR2<def> = BUFFER_LOAD_DWORD_OFFSET %SGPR8_SGPR9_SGPR10_SGPR11,
%VGPR7<def,tied3> = V_MAC_F32_e32 %VGPR0<undef>, %VGPR1<kill>, %VGPR7<kill,tied0>, %EXEC<imp-use>
%VGPR3_VGPR4_VGPR5_VGPR6<def> = COPY %VGPR0_VGPR1_VGPR2_VGPR3
%VGPR4<def> = COPY %VGPR2
The copy for VGPR1 -> VGPR4 was an error from reading undefined VGPR1,
but VGPR4 is defined immediately after this copy.
llvm-svn: 275635
|
| |
|
|
|
|
|
|
|
| |
The same value for EM_BPF is being propagated to glibc,
elfutils, and binutils.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
llvm-svn: 275633
|
| |
|
|
|
|
| |
rL275592 removed the boolean parameters of SelectionDAG::getLoad and getStore, updating Lanai backend's calls to these functions.
llvm-svn: 275631
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Hexagon schedulers need to handle instructions with a latency
of 0 or 2 more accurately. The problem, in v60, is that a dependence
between two instructions with a 2 cycle latency can use a .cur version
of the source to achieve a 0 cycle latency when the use is in the
same packet. Any othe use, must be at least 2 packets later, or a
stall occurs. In other words, the compiler does not want to schedule
the dependent instructions 1 cycle later.
To achieve this, the latency adjustment code allows only a single
dependence to have a zero latency. All other instructions have the
other value, which is typically 2 cycles. We use a heuristic to
determine which instruction gets the 0 latency.
The Hexagon machine scheduler was also changed to increase the cost
associated with 0 latency dependences than can be scheduled in the
same packet.
Patch by Brendon Cahoon.
llvm-svn: 275625
|
| |
|
|
| |
llvm-svn: 275620
|
| |
|
|
| |
llvm-svn: 275619
|
| |
|
|
| |
llvm-svn: 275618
|
| |
|
|
|
|
|
|
| |
Mesa still has a use of llvm.AMDGPU.rsq.f64 remaining.
Also fix mismatch with non-IEEE rsq selecting to IEEE rsq.
llvm-svn: 275617
|
| |
|
|
|
|
| |
Dead or the same as the base implementation.
llvm-svn: 275616
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This mostly just works.
Vectorcall rets are still not supported.
The win64_eh test change is because fast isel doesn't use rsi for temporary
computations, so it doesn't need to be pushed. The test case I'm changing was
originally added to test pushes, but by now there are other test cases in that
file exercising that code path.
https://reviews.llvm.org/D22422
llvm-svn: 275607
|
| |
|
|
|
|
| |
Patch by Ikhlas Ajbar.
llvm-svn: 275606
|
| |
|
|
|
|
| |
This fixes PR 28526.
llvm-svn: 275603
|
| |
|
|
|
|
| |
It was refactored in r275592. NFC
llvm-svn: 275601
|
| |
|
|
|
|
| |
This reverts commit r275566.
llvm-svn: 275599
|
| |
|
|
| |
llvm-svn: 275598
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
getStore, and friends.
Summary:
Instead, we take a single flags arg (a bitset).
Also add a default 0 alignment, and change the order of arguments so the
alignment comes before the flags.
This greatly simplifies many callsites, and fixes a bug in
AMDGPUISelLowering, wherein the order of the args to getLoad was
inverted. It also greatly simplifies the process of adding another flag
to getLoad.
Reviewers: chandlerc, tstellarAMD
Subscribers: jholewinski, arsenm, jyknight, dsanders, nemanjai, llvm-commits
Differential Revision: http://reviews.llvm.org/D22249
llvm-svn: 275592
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MachineFunction::getMachineMemOperand.
Summary:
Previously we took an unsigned.
Hooray for type-safety.
Reviewers: chandlerc
Subscribers: dsanders, llvm-commits
Differential Revision: http://reviews.llvm.org/D22282
llvm-svn: 275591
|
| |
|
|
|
|
|
| |
- Remove output dependencies on USR_OVF register.
- Update chain edge latencies between v60 vector loads/stores.
llvm-svn: 275586
|
| |
|
|
| |
llvm-svn: 275578
|
| |
|
|
|
|
|
|
| |
- Add patterns for rr/abs addressing modes.
- Set addrMode to PostInc where necessary.
- Misc fixes.
llvm-svn: 275574
|
| |
|
|
|
|
|
|
|
| |
- Treat bitwise OR with a frame index as an ADD wherever possible, fold it
into addressing mode.
- Extend patterns for memops to allow memops with frame indexes as address
operands.
llvm-svn: 275569
|
| |
|
|
|
|
|
|
|
|
| |
Added emitting metadata to elf for runtime.
Runtime requires certain information (metadata) about kernels to be able to execute and query them. Such information is emitted to an elf section as a key-value pair stream.
Differential Revision: https://reviews.llvm.org/D21849
llvm-svn: 275566
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: NFC. Rename AnalyzeBranch/AnalyzeBranchPredicate to analyzeBranch/analyzeBranchPredicate to follow LLVM coding style and be consistent with TargetInstrInfo's analyzeCompare and analyzeSelect.
Reviewers: tstellarAMD, mcrosier
Subscribers: mcrosier, jholewinski, jfb, arsenm, dschuff, jyknight, dsanders, nemanjai
Differential Revision: https://reviews.llvm.org/D22409
llvm-svn: 275564
|
| |
|
|
|
|
| |
It appears to have caused some failures in our buildbots.
llvm-svn: 275562
|
| |
|
|
|
|
|
|
|
|
|
|
| |
64-bit sub-lanes
As discussed on PR28136, lowerShuffleAsRepeatedMaskAndLanePermute was attempting to match repeated masks at the 128-bit level and then permute the resultant lanes at the 128-bit (AVX1) or 64-bit (AVX2) sub-lane level.
This change allows us to create the repeated masks at the sub-lane level (and then concat them together to create a 128-bit repeated mask) and then select which sub-lane to permute. This has no effect on the AVX1 codegen.
Fixes PR28136.
llvm-svn: 275543
|
| |
|
|
|
|
| |
A rebase seemed so innocent before committing. Turns out someone changed a pointer to a reference in the mean time :(
llvm-svn: 275541
|
| |
|
|
|
|
|
|
|
|
| |
Thumb-1 doesn't have post-inc or pre-inc load or store instructions. However the LDM/STM instructions with writeback can function as post-inc load/store:
ldm r0!, {r1} @ load from r0 into r1 and increment r0 by 4
Obviously, this only works if the post increment is 4.
llvm-svn: 275540
|
| |
|
|
|
|
| |
Address Chad's comment in D22216 which I missed due to tunnel vision on the "LGTM" comment.
llvm-svn: 275538
|
| |
|
|
|
|
|
|
| |
... When we emit several calls to the same function in the same basic block.
An indirect call uses a "BLX r0" instruction which has a 16-bit encoding. If many calls are made to the same target, this can enable significant code size reductions.
llvm-svn: 275537
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Also stop trying to insert skip blocks at end_cf. This
was inserting them at the end of the block which doesn't make
sense. The skip should be inserted at the beginning of the block
right after the end cf. Just remove this for now since no tests
seem to stress this and I think this can be handled more generally
later.
Fixes bug 28550
llvm-svn: 275510
|
| |
|
|
|
|
| |
Found while reducing bug 28550
llvm-svn: 275509
|
| |
|
|
| |
llvm-svn: 275508
|