| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 302307
|
|
|
|
|
|
|
| |
These are M0 and M1. Removing duplicated registers reduces the number
of explicit register aliasing.
llvm-svn: 302306
|
|
|
|
| |
llvm-svn: 302305
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This exposes a method in MachineFrameInfo that calculates
MaxCallFrameSize and calls it after instruction selection in the ARM
target.
This avoids
ARMBaseRegisterInfo::canRealignStack()/ARMFrameLowering::hasReservedCallFrame()
giving different answers in early/late phases of codegen.
The testcase shows a particular nasty example result of that where we
would fail to properly align an alloca.
Differential Revision: https://reviews.llvm.org/D32622
llvm-svn: 302303
|
|
|
|
|
|
|
|
| |
instead of getTopBlock to find the loop header.
Differential Revision: https://reviews.llvm.org/D32831
llvm-svn: 302290
|
|
|
|
| |
llvm-svn: 302286
|
|
|
|
|
|
|
|
| |
This field is populated by the CP
Differential Revision: https://reviews.llvm.org/D32619
llvm-svn: 302277
|
|
|
|
|
|
|
|
| |
o Add bpfeb support in BPF dwarfdump unit test case
Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@fb.com>
llvm-svn: 302265
|
|
|
|
|
|
|
|
|
|
| |
underlying APInts in KnownBits.
This adds routines for reseting KnownBits to unknown, making the value all zeros or all ones. It also adds methods for querying if the value is zero, all ones or unknown.
Differential Revision: https://reviews.llvm.org/D32637
llvm-svn: 302262
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Remove the AArch64AddressTypePromotion pass as we migrated all transformations
done in this pass into CGP in r299379.
Reviewers: qcolombet, jmolloy, javed.absar, mcrosier
Reviewed By: qcolombet
Subscribers: aemerson, rengolin, mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D31623
llvm-svn: 302245
|
|
|
|
|
|
| |
without CDI
llvm-svn: 302233
|
|
|
|
| |
llvm-svn: 302230
|
|
|
|
|
|
| |
Extend NoVLX targets to use the 512-bit versions
llvm-svn: 302229
|
|
|
|
| |
llvm-svn: 302226
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Recently support was added for substituting one intruction for another by
negating or inverting the immediate, but ORR and ORN were missed so this patch
adds them.
This one is slightly different to the others in that ORN only exists in thumb,
so we only do the substitution in thumb.
Differential Revision: https://reviews.llvm.org/D32534
llvm-svn: 302224
|
|
|
|
|
|
| |
Same as LowerIntArith helpers but for unary ops instead of binary.
llvm-svn: 302222
|
|
|
|
|
|
|
| |
This patch removes unused code which is no longer required because of changes
to the DIExpression::prepend function.
llvm-svn: 302219
|
|
|
|
|
|
| |
This fixes MSAN-builds after r302179.
llvm-svn: 302214
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm, nhaehnle
Subscribers: kzhuravl, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D32645
llvm-svn: 302200
|
|
|
|
| |
llvm-svn: 302192
|
|
|
|
|
|
|
|
|
| |
This happened on the PPC32/SVR4 path and was discovered when building
FreeBSD on PPC32. It was a typo-class error in the frame lowering code.
This fixes PR26519.
llvm-svn: 302183
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This avoids problems on code like this:
char buf[16];
__asm {
movups xmm0, [buf]
mov [buf], eax
}
The frontend size in this case (1) is wrong, and the register makes the
instruction matching unambiguous. There are also enough bytes available
that we shouldn't complain to the user that they are potentially using
an incorrectly sized instruction to access the variable.
Supersedes D32636 and D26586 and fixes PR28266
llvm-svn: 302179
|
|
|
|
|
|
|
|
|
| |
When a 128 bit COPY is lowered into two instructions, an impl-use operand of
the super-reg should be added to each new instruction in case one of the
sub-regs is undefined.
Review: Ulrich Weigand
llvm-svn: 302146
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Follow up rL290858 by removing the MIPS specific version of XRayTable
emission in favour of the basic version.
This resolves a buildbot failure where the ELF sections were malformed
causing the linker to reject the object files with xray related sections.
Reviewers: dberris, slthakur
Differential Revision: https://reviews.llvm.org/D32808
llvm-svn: 302138
|
|
|
|
|
|
|
|
| |
mul v8i32.
Differential Revision: https://reviews.llvm.org/D32679
llvm-svn: 302127
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added the integer data processing intrinsics from ACLE v2.1 Chapter 9
but I have missed out the saturation_occurred intrinsics for now. For
the instructions that read and write the GE bits, a chain is included
and the only instruction that reads these flags (sel) is only
selectable via the implemented intrinsic.
Differential Revision: https://reviews.llvm.org/D32281
llvm-svn: 302126
|
|
|
|
|
|
|
|
|
|
| |
According to psABI, PLT stub clobbers XMM8-XMM15.
In Regcall calling convention those registers are used for passing parameters.
Thus we need to prevent lazy binding in Regcall.
Differential Revision: https://reviews.llvm.org/D32430
llvm-svn: 302124
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Fix vpcmpeqq predicate. AVX512 version of vpcmpeqq is not equivalent to AVX one.
Split from https://reviews.llvm.org/D32679
Reviewers: craig.topper, zvi, aymanmus
Reviewed By: craig.topper
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D32786
llvm-svn: 302119
|
|
|
|
|
|
|
|
|
| |
We'll set it back to true in emitPrologue if it gets called. It doesn't
get called for naked functions.
Fixes PR32912
llvm-svn: 302092
|
|
|
|
|
|
|
|
| |
This patch adds zext, sext, and trunc methods to KnownBits and uses them where possible.
Differential Revision: https://reviews.llvm.org/D32784
llvm-svn: 302088
|
|
|
|
|
|
|
|
|
|
|
| |
That's only a required extension as of v8.1a.
Remove it from the "generic" CPU as well: it should only support the
base ISA (and binutils agrees).
Also unify the MC tests into crc.s and arm64-crc32.s
llvm-svn: 302077
|
|
|
|
|
|
| |
Patch by Jyotsna Verma.
llvm-svn: 302073
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Do three things to help with that:
- Add AttributeList::FirstArgIndex, which is an enumerator currently set
to 1. It allows us to change the indexing scheme with fewer changes.
- Add addParamAttr/removeParamAttr. This just shortens addAttribute call
sites that would otherwise need to spell out FirstArgIndex.
- Remove some attribute-specific getters and setters from Function that
take attribute list indices. Most of these were only used from
BuildLibCalls, and doesNotAlias was only used to test or set if the
return value is malloc-like.
I'm happy to split the patch, but I think they are probably easier to
review when taken together.
This patch should be NFC, but it sets the stage to change the indexing
scheme to this, which is more convenient when indexing into an array:
0: func attrs
1: retattrs
2...: arg attrs
Reviewers: chandlerc, pete, javed.absar
Subscribers: david2050, llvm-commits
Differential Revision: https://reviews.llvm.org/D32811
llvm-svn: 302060
|
|
|
|
| |
llvm-svn: 302049
|
|
|
|
| |
llvm-svn: 302048
|
|
|
|
|
|
|
|
|
|
| |
This patch adds support for the the LightWeight Profiling (LWP) instructions which are available on all AMD Bulldozer class CPUs (bdver1 to bdver4).
Reapplied - this time without changing line endings of existing files.
Differential Revision: https://reviews.llvm.org/D32769
llvm-svn: 302041
|
|
|
|
| |
llvm-svn: 302038
|
|
|
|
| |
llvm-svn: 302036
|
|
|
|
|
|
| |
Formatting changes + remove unused function.
llvm-svn: 302035
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allocframe and the following stores on the stack have a latency of 2 cycles
when not in the same packet. This happens because R29 is needed early by the
store instruction. Since one of such stores can be packetized along with
allocframe and use old value of R29, we can assign it 0 cycle latency
while leaving latency of other stores to the default value of 2 cycles.
Patch by Jyotsna Verma.
llvm-svn: 302034
|
|
|
|
| |
llvm-svn: 302033
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The packetizer needs to convert .cur instruction to its regular form if
the use is not in the same packet as the .cur. The code in the packetizer
handles one type of .cur, which is the vector load case. This patch
updates the packetizer so that it can undo all the .cur instructions.
In the test case, the .cur is the 128B version, but there are also the
post-increment versions.
Patch by Brendon Cahoon.
llvm-svn: 302032
|
|
|
|
| |
llvm-svn: 302030
|
|
|
|
| |
llvm-svn: 302029
|
|
|
|
|
|
|
|
| |
This patch adds support for the the LightWeight Profiling (LWP) instructions which are available on all AMD Bulldozer class CPUs (bdver1 to bdver4).
Differential Revision: https://reviews.llvm.org/D32769
llvm-svn: 302028
|
|
|
|
|
|
|
|
| |
VFPCLASS is for vector types and not scalar, so it cannot get here.
Differential Revision: https://reviews.llvm.org/D32694
llvm-svn: 302023
|
|
|
|
|
|
|
|
| |
It is needed to check that the number of operands are 2 when
finding the case of a logic combination, e.g. 'and' of two compares.
Review: Ulrich Weigand
llvm-svn: 302022
|
|
|
|
|
|
|
|
|
| |
This patch implements the LLVM part for no_caller_saved_registers attribute as appears here: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=5ed3cc7b66af4758f7849ed6f65f4365be8223be.
In order to implement the attribute, we use the dynamic CSR mechanism to remove returned/passed arguments from the function regmask/CSR list.
Differential Revision: https://reviews.llvm.org/D31876
llvm-svn: 302020
|
|
|
|
| |
llvm-svn: 302017
|
|
|
|
|
|
| |
This reverts commit 358ad02d999e88853d2cfc954bd2f668308a51f7.
llvm-svn: 302014
|