| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 258192
|
| |
|
|
| |
llvm-svn: 258191
|
| |
|
|
|
|
|
| |
The following test program triggers the assertion:
https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/gcc.c-torture/execute/20030916-1.c
llvm-svn: 258182
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D16297
llvm-svn: 258161
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
get{Source,Result}ElementType.
Summary:
GEPOperator: provide getResultElementType alongside getSourceElementType.
This is made possible by adding a result element type field to GetElementPtrConstantExpr, which GetElementPtrInst already has.
GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType.
Reviewers: mjacob, dblaikie
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16275
llvm-svn: 258145
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D16294
llvm-svn: 258144
|
| |
|
|
|
|
|
|
|
| |
Teach the register stackifier to rematerialize constants that have multiple
uses instead of leaving them in registers. In the WebAssembly encoding, it's
the same code size to materialize most constants as it is to read a value
from a register.
llvm-svn: 258142
|
| |
|
|
| |
llvm-svn: 258137
|
| |
|
|
|
|
|
|
| |
According to x86 spec "xlat m8" is a legal instruction and it is equivalent to "xlatb".
Differential Revision: http://reviews.llvm.org/D15150
llvm-svn: 258135
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following are legal according to X86 spec:
ins mem, DX
outs DX, mem
lods mem
stos mem
scas mem
cmps mem, mem
movs mem, mem
Differential Revision: http://reviews.llvm.org/D14827
llvm-svn: 258132
|
| |
|
|
| |
llvm-svn: 258127
|
| |
|
|
| |
llvm-svn: 258126
|
| |
|
|
|
|
|
|
| |
cover all width and types (pd/ps/sd/ss) of fixupimm instruction and inrtinsics
Differential Revision: http://reviews.llvm.org/D16313
llvm-svn: 258124
|
| |
|
|
| |
llvm-svn: 258096
|
| |
|
|
|
|
|
|
|
|
| |
This breaks the tests that were meant for testing
64-bit inline immediates, so move those to shl where
they won't be broken up.
This should be repeated for the other related bit ops.
llvm-svn: 258095
|
| |
|
|
|
|
| |
AFAICT, these have been unused since the initial backend import.
llvm-svn: 258093
|
| |
|
|
|
|
|
| |
Reduce 64-bit shl with constant > 32. We already special cased
this for the == 32 case, but this also works for any >= 32 constant.
llvm-svn: 258092
|
| |
|
|
|
|
| |
64-bit shifts are very slow on some subtargets.
llvm-svn: 258090
|
| |
|
|
| |
llvm-svn: 258085
|
| |
|
|
| |
llvm-svn: 258084
|
| |
|
|
|
|
|
|
| |
AVX2 can only broadcast from the zero'th element of a vector, but if the broadcastable element is the zero'th element of a 128-bit subvector its advantageous to extract the subvector, broadcast from that and avoid the loading of shuffle mask data that would be needed for VPERMPS/VPERMD. The only exception being when the source type is 4f64 or 4i64 which can directly use the immediate shuffle VPERMPD/VPERMQ directly.
Differential Revision: http://reviews.llvm.org/D16050
llvm-svn: 258081
|
| |
|
|
| |
llvm-svn: 258076
|
| |
|
|
|
|
|
| |
- Allow any instruction to define equality between registers.
- Keep the DFG updated.
llvm-svn: 258075
|
| |
|
|
| |
llvm-svn: 258074
|
| |
|
|
| |
llvm-svn: 258073
|
| |
|
|
|
|
|
|
| |
Implemented intrinsic for the follow instructions (store) : VMOVDQU8/16/32/64, VMOVDQA32/64, VMOVAPS/PD, VMOVUPS/PD.
Differential Revision: http://reviews.llvm.org/D16271
llvm-svn: 258047
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D16289
llvm-svn: 258046
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
instruction.
code example , previous implementation.
movzbl %dil, %eax
kmovw %eax, %k0
new code
kmovw %edi, %k0
Differential Revision: http://reviews.llvm.org/D16287
llvm-svn: 258045
|
| |
|
|
|
|
|
|
|
| |
When the shift immediate is zero, PKHTB is an alias for PKHBT, but the order of
the input operands needs to be swapped.
Differential Revision: http://reviews.llvm.org/D16288
llvm-svn: 258044
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
going through PointerType::getElementType.
Patch by Eduard Burtescu.
Reviewers: dblaikie, mjacob
Subscribers: dsanders, llvm-commits, dblaikie
Differential Revision: http://reviews.llvm.org/D16273
llvm-svn: 258023
|
| |
|
|
|
|
|
|
|
|
| |
The feature flag is for VPERMB,VPERMI2B,VPERMT2B and VPMULTISHIFTQB instructions.
More about the instruction can be found in:
hattps://software.intel.com/sites/default/files/managed/07/b7/319433-023.pdf
Differential Revision: http://reviews.llvm.org/D16190
llvm-svn: 258012
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D16184
llvm-svn: 258009
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D16189
llvm-svn: 258008
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D16194
llvm-svn: 258006
|
| |
|
|
|
|
|
|
|
|
| |
shuffle lowering
Added support for the extraction of the upper 128-bit subvectors for lower/upper half undef shuffles if it would reduce the number of extractions/insertions or avoid loads of AVX2 permps/permd shuffle masks.
Minor follow up to D15477.
llvm-svn: 258000
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: mjacob
Subscribers: jholewinski, arsenm, dsanders, dblaikie
Patch by Eduard Burtescu.
Differential Revision: http://reviews.llvm.org/D16260
llvm-svn: 257999
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
%RBP can't be handled explicitly. We generate the following code:
pushq %rbp
movq %rsp, %rbp
...
movq %rbx, (%rbp) ## 8-byte Spill
where %rbp will be overwritten by the spilled value.
The fix is to let PEI handle %RBP.
PR26136
llvm-svn: 257997
|
| |
|
|
|
|
| |
FIXME: Add more targets to use emutls into clang/test/Driver/emulated-tls.cpp.
FIXME: Add cygwin tests into llvm/test/CodeGen/X86. Working in progress.
llvm-svn: 257984
|
| |
|
|
| |
llvm-svn: 257969
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D16246
llvm-svn: 257965
|
| |
|
|
|
|
|
|
|
|
| |
WebAssembly's stack will never be executable by default, so it isn't
necessary to declare .note.GNU-stack sections to request a non-executable
stack.
Differential Revision: http://reviews.llvm.org/D15969
llvm-svn: 257962
|
| |
|
|
|
|
| |
by PTX.
llvm-svn: 257961
|
| |
|
|
|
|
|
|
|
|
| |
When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.
PR26136
llvm-svn: 257930
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.
I will commit fixes to other platforms as well.
PR26136
llvm-svn: 257929
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.
I will commit fixes to other platforms as well.
PR26136
llvm-svn: 257925
|
| |
|
|
|
|
|
|
|
|
| |
Some compilers don't do exhaustive switch checking. For those compilers,
add an initialization to prevent un-initialized variable warnings from
firing. For compilers with exhaustive switch checking, we still get a
guarantee that the switch is exhaustive, and hence the initializations
are redundant, and a non-functional change.
llvm-svn: 257923
|
| |
|
|
|
|
|
|
|
|
| |
Baseline/Mainline"
This reverts commit r257883.
Somehow this didn't make it into r257916.
llvm-svn: 257919
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
# The first commit's message is:
Revert "[ARM] Add DSP build attribute and extension targeting"
This reverts commit b11cc50c0b4a7c8cdb628abc50b7dc226ff583dc.
# This is the 2nd commit message:
Revert "[ARM] Add new system registers to ARMv8-M Baseline/Mainline"
This reverts commit 837d08454e3e5beb8581951ac26b22fa07df3cd5.
llvm-svn: 257916
|
| |
|
|
| |
llvm-svn: 257891
|
| |
|
|
| |
llvm-svn: 257890
|