| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 191576
|
|
|
|
| |
llvm-svn: 191574
|
|
|
|
| |
llvm-svn: 191571
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into StackProtector.h and StackProtector.cpp.
No functionality change. Future patches will add analysis which will be used
in other passes (PEI, StackSlot). The end goal is to support ssp-strong stack
layout rules.
WIP.
Differential Revision: http://llvm-reviews.chandlerc.com/D1521
llvm-svn: 191570
|
|
|
|
|
|
|
| |
It is mentioned in the LLVM coding standard that _begin() and _end() suffixes
should be used.
llvm-svn: 191569
|
|
|
|
| |
llvm-svn: 191564
|
|
|
|
|
|
|
| |
range that includes a tab character will cause out-of-bounds access to the
fixit string.
llvm-svn: 191563
|
|
|
|
| |
llvm-svn: 191558
|
|
|
|
|
| |
llvm-objdump: Dump COFF import table if -private-headers option is given.
llvm-svn: 191557
|
|
|
|
|
|
|
|
|
|
| |
Currently foldSelectICmpAndOr asserts if the "or" involves a vector
containing several of the same power of two. We can easily avoid this by
only performing the fold on integer types, like foldSelectICmpAnd does.
Fixes <rdar://problem/15012516>
llvm-svn: 191552
|
|
|
|
|
|
| |
No intended functionality change.
llvm-svn: 191546
|
|
|
|
|
|
| |
Phabricator code review is located here: http://llvm-reviews.chandlerc.com/D1750
llvm-svn: 191539
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the command line argument "struct-path-tbaa" since we should not depend
on command line argument to decide which format the IR file is using. Instead,
we check the first operand of the tbaa tag node, if it is a MDNode, we treat
it as struct-path aware TBAA format, otherwise, we treat it as scalar TBAA
format.
When clang starts to use struct-path aware TBAA format no matter whether
struct-path-tbaa is no, and we can auto-upgrade existing bc files, the support
for scalar TBAA format can be dropped.
Existing testing cases are updated to use the struct-path aware TBAA format.
llvm-svn: 191538
|
|
|
|
|
|
|
|
|
|
| |
We were previously using getFirstInsertionPt to insert PHI
instructions when vectorizing, but getFirstInsertionPt also skips past
landingpads, causing this to generate invalid IR.
We can avoid this issue by using getFirstNonPHI instead.
llvm-svn: 191526
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The backend tries to use block operations like MVC, NC, OC and XC for
simple scalar operations. For correctness reasons, it rejects any case
in which the regions might partially overlap. However, for performance
reasons, it should also reject cases where the regions might be equal,
since the instruction might then not use the fast path.
This fixes a performance regression seen in bzip2. We may want to limit
the optimisation even more in future, or even remove it entirely, but I'll
try with this for now.
llvm-svn: 191525
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The backend previously folded offsets into PC-relative addresses
whereever possible. That's the right thing to do when the address
can be used directly in a PC-relative memory reference (using things
like LRL). But if we have a register-based memory reference and need
to load the PC-relative address separately, it's better to use an anchor
point that could be shared with other accesses to the same area of the
variable.
Fixes a FIXME.
llvm-svn: 191524
|
|
|
|
|
|
|
| |
This intrinsic is lowered into an equivalent INSERT_VECTOR_ELT which is
further lowered into a sequence of insert.w's on MIPS32.
llvm-svn: 191521
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
register operands.
As specified in A8.8.72/A8.8.73/A8.8.74 in the ARM ARM, all variants of the ARM LDRD instruction have the following two constraints:
LDRD<c> <Rt>, <Rt2>, ...
(a) Rt must be even-numbered and not r14
(b) Rt2 must be R(t+1)
If those two constraints are not met the result of executing the instruction will be unpredictable.
Constraint (b) was already enforced, this commit adds support for constraint (a).
Fixes rdar://14479793.
llvm-svn: 191520
|
|
|
|
|
|
|
| |
This intrinsic is lowered into an equivalent BUILD_VECTOR which is further
lowered into a sequence of insert.w's on MIPS32.
llvm-svn: 191519
|
|
|
|
|
|
|
| |
This intrinsic is lowered into equivalent copy_s.w instructions during
legalization.
llvm-svn: 191518
|
|
|
|
|
|
|
|
| |
expected values.
No functional change.
llvm-svn: 191517
|
|
|
|
|
|
|
| |
For v4f32 and v2f64, INSERT_VECTOR_ELT is matched by a pseudo-insn which is
later expanded to appropriate insve.[wd] insns.
llvm-svn: 191515
|
|
|
|
|
|
|
| |
For v4f32 and v2f64, EXTRACT_VECTOR_ELT is matched by a pseudo-insn which may
be expanded to subregister copies and/or instructions as appropriate.
llvm-svn: 191514
|
|
|
|
| |
llvm-svn: 191512
|
|
|
|
|
|
|
|
| |
intrinsics)
Updated some of the vshf since they (correctly) emit splati's now
llvm-svn: 191511
|
|
|
|
|
|
|
|
|
|
| |
This change fixes the problem reported in pr17380 and re-add the dagcombine
transformation ensuring that the value types are always legal if the
transformation is triggered after Legalization took place.
Added the test case from pr17380.
llvm-svn: 191509
|
|
|
|
|
|
|
|
| |
This file contains notes about the instruction selection for MSA. For example,
it notes that ilvl.d is cannot be selected because ilvev.d covers the same
cases and is selected instead of ilvl.d.
llvm-svn: 191507
|
|
|
|
| |
llvm-svn: 191505
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(literal/immediate) destination register operands.
LDRD<c> <Rt>, <Rt2>, <label>
LDRD<c> <Rt>, <Rt2>, [<Rn>{, #+/-<imm>}]
LDRD<c> <Rt>, <Rt2>, [<Rn>], #+/-<imm>
LDRD<c> <Rt>, <Rt2>, [<Rn>, #+/-<imm>]!
As specified in A8.8.72/A8.8.73 in the ARM ARM, the T1 encoding has a constraint which enforces that Rt != Rt2.
If this constraint is not met the result of executing the instruction will be unpredictable.
Fixes rdar://14479780.
llvm-svn: 191504
|
|
|
|
|
|
|
|
|
|
|
|
| |
lowerMSABinaryIntr, lowerMSABinaryImmIntr, lowerMSABranchIntr,
and lowerMSAUnaryIntr were trivially small functions. Inlined them into
their callers.
lowerMSASplat now takes its callers SDLoc instead of making a new one.
No functional change.
llvm-svn: 191503
|
|
|
|
|
|
| |
error when using it in FR=0 mode.
llvm-svn: 191498
|
|
|
|
| |
llvm-svn: 191496
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: jacksprat, dsanders
Reviewed By: dsanders
Differential Revision: http://llvm-reviews.chandlerc.com/D1755
llvm-svn: 191495
|
|
|
|
| |
llvm-svn: 191491
|
|
|
|
|
|
| |
AVX512 isn't enabled. Currently it works simply because the SSE and AVX version of the same patterns are checked first in the DAG isel table.
llvm-svn: 191490
|
|
|
|
|
|
| |
is used in AVX512 mode.
llvm-svn: 191489
|
|
|
|
| |
llvm-svn: 191488
|
|
|
|
|
|
| |
Phabricator code review is located at: http://llvm-reviews.chandlerc.com/D1759
llvm-svn: 191481
|
|
|
|
|
|
|
|
| |
given."
This reverts commit r191472 because it's failing on BE machine.
llvm-svn: 191480
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a patch to add capability to llvm-objdump to dump COFF Import Table
entries, so that we can write tests for LLD checking Import Table contents.
llvm-objdump did not print anything but just file name if the format is COFF
and -private-headers option is given. This is a patch adds capability for
dumping DLL Import Table, which is specific to the COFF format.
In this patch I defined a new iterator to iterate over import table entries.
Also added a few functions to COFFObjectFile.cpp to access fields of the entry.
Differential Revision: http://llvm-reviews.chandlerc.com/D1719
llvm-svn: 191472
|
|
|
|
|
|
|
|
| |
CFE produces it to indicate artificial locations.
c.f.: DWARF standard, Table 6.2:
line -- An unsigned integer indicating a source line number. Lines are numbered beginning at 1. The compiler may emit the value 0 in cases where an instruction cannot be attributed to any source line.
llvm-svn: 191471
|
|
|
|
|
|
| |
Patch by Matheus Almeida
llvm-svn: 191461
|
|
|
|
|
|
|
|
|
|
| |
revision of the MSA spec (1.06).
This does not affect any of the existing output.
Patch by Matheus Almeida
llvm-svn: 191460
|
|
|
|
|
|
|
| |
t2PLDi12, t2PLDi8, t2PLDs was omitted in Thumb2InstrInfo.
This patch fixes it.
llvm-svn: 191441
|
|
|
|
|
|
|
|
| |
When generating code for shared libraries, even local calls may be
intercepted, so we need a nop after the call for the linker to fix up the
TOC. Test case adapted from the one provided in PR17354.
llvm-svn: 191440
|
|
|
|
| |
llvm-svn: 191438
|
|
|
|
| |
llvm-svn: 191432
|
|
|
|
| |
llvm-svn: 191431
|
|
|
|
|
|
| |
Patch by Artyom Skrobov.
llvm-svn: 191428
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When asked to pad an irregular number of bytes, we should fill with
zeros. This is consistent with the behavior specified in the AIX
Assembler Language Reference as well as other LLVM and binutils
assemblers.
N.B. There is a small deviation from binutils' PPC assembler:
when handling pads which are greater than 4 bytes but not mod 4,
binutils will not emit any NOP sequences at all and only use zeros.
This may or may not be a bug but there is no excellent rationale as to
why that behavior is important to emulate. If that behavior is needed,
we can change writeNopData() to behave in the same way.
This fixes PR17352.
llvm-svn: 191426
|