Commit Graph

180465 Commits

Author SHA1 Message Date
Sjoerd Meijer
99d381459a [ARM] MVE VPT Block Pass
Initial commit of a new pass to create vector predication blocks, called VPT
blocks, that are supported by the Armv8.1-M MVE architecture.

This is a first naive implementation. I.e., for 2 consecutive predicated
instructions I1 and I2, for example, it will generate 2 VPT blocks:

VPST
I1
VPST
I2

A more optimal implementation would obviously put instructions in the same VPT
block when they are predicated on the same condition and when it is allowed to
do this:

VPTT
I1
I2

We will address this optimisation with follow up patches when the groundwork is
in. Creating VPT Blocks is very similar to IT Blocks, which is the reason I
added this to Thumb2ITBlocks.cpp. This allows reuse of the def use analysis
that we need for the more optimal implementation.

VPT blocks cannot be nested in IT blocks, and vice versa, and so these 2 passes
cannot interact with each other. Instructions allowed in VPT blocks must
be MVE instructions that are marked as VPT compatible.

Differential Revision: https://reviews.llvm.org/D63247


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363370 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 11:46:05 +00:00
George Rimar
abc1500538 [yaml2obj] - Allow setting the custom Address for .strtab
Despite the fact that .strtab is non-allocatable,
there is no reason to disallow setting the custom address
for it.

The patch also adds a test case showing we can set any address
we want for other implicit sections.

Differential revision: https://reviews.llvm.org/D63137

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363368 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 11:13:32 +00:00
George Rimar
f24bfab8e0 [yaml2obj] - Allow setting cutom Flags for implicit sections.
With this patch we get ability to set any flags we want
for implicit sections defined in YAML.

Differential revision: https://reviews.llvm.org/D63136

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363367 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 11:01:14 +00:00
Sam Parker
d021f415d1 [SCEV] Pass NoWrapFlags when expanding an AddExpr
InsertBinop now accepts NoWrapFlags, so pass them through when
expanding a simple add expression.

This is the first re-commit of the functional changes from rL362687,
which was previously reverted.

Differential Revision: https://reviews.llvm.org/D61934


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363364 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 09:19:41 +00:00
Eugene Leviant
f8592d26be [llvm-objcopy][IHEX] Improve test case formatting. NFC
Differential revision: https://reviews.llvm.org/D63258


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363359 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 08:09:10 +00:00
Eric Christopher
7a01be2925 Move commentary on opcode translation for code16 mov instructions
to segment registers closer to the segment register check for when
we add further optimizations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363355 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 04:51:55 +00:00
Alex Brachet
ee28aef98c [llvm-objcopy] Remove no-op flush of errs
Reviewers: alexshap, rupprecht, jhenderson

Subscribers: jakehehrlich, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D63313

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363354 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 04:34:26 +00:00
Nico Weber
d2380d1dbb gn build: Merge r363204 (clang-scan-deps)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363353 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 04:26:01 +00:00
Alex Brachet
d8baf47f54 [llvm-objcopy] Changed command line parsing errors
Summary: Tidied up errors during command line parsing to be more consistent with the rest of llvm-objcopy errors.

Reviewers: jhenderson, rupprecht, espindola, alexshap

Reviewed By: jhenderson, rupprecht

Subscribers: emaste, arichardson, MaskRay, llvm-commits, jakehehrlich

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62973

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363350 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 02:04:02 +00:00
David Blaikie
55019e5ab6 DebugInfo: Include enumerators in pubnames
This is consistent with GCC's behavior (which is the defacto standard
for pubnames). Though I find the presence of enumerators from enum
classes to be a bit confusing, possibly a bug on GCC's end (since they
can't be named unqualified, unlike the other names - and names nested in
classes don't go in pubnames, for instance - presumably because one must
name the class first & that's enough to limit the scope of the search)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363349 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 01:58:56 +00:00
Tim Shen
6ed0a84e05 [X86] Add target triple for live-debug-values-fragments.mir
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363348 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 01:41:04 +00:00
Douglas Yung
dd17935216 Add REQUIRES: zlib to test added in r363325 as the profile uses zlib compression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363347 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 01:08:50 +00:00
Stanislav Mekhanoshin
eaed96ae3e [AMDGPU] gfx1011/gfx1012 targets
Differential Revision: https://reviews.llvm.org/D63307

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363344 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 00:33:31 +00:00
Francis Visoiu Mistrih
0f00485ae2 Revert "[Remarks] Refactor optimization remarks setup"
This reverts commit 6e6e3af55bb97e1a4c97375c15a2b0099120c5a7.

This breaks greendragon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363343 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 00:05:56 +00:00
Vedant Kumar
f2cd8ff302 [Coverage] Speculative fix for r363325 for an older compiler
It looks like an older version of gcc can't figure out that it needs to
move a unique_ptr while implicitly constructing an Expected object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363342 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 00:03:22 +00:00
Stanislav Mekhanoshin
6e4d9e6a89 [AMDGPU] gfx1010 wave32 icmp/fcmp intrinsic changes for wave32
Differential Revision: https://reviews.llvm.org/D63301

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363339 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 23:47:36 +00:00
Seiya Nuta
bfbea497c9 [llvm-objcopy] Fix sparc target endianness
Summary: AFAIK, the "sparc" target is big endian and the target for 32-bit little-endian SPARC is denoted as "sparcel". This patch fixes the endianness of "sparc" target and adds "sparcel" target for 32-bit little-endian SPARC.

Reviewers: espindola, alexshap, rupprecht, jhenderson

Reviewed By: jhenderson

Subscribers: jyknight, emaste, arichardson, fedor.sergeev, jakehehrlich, MaskRay, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D63251

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363336 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 23:24:12 +00:00
Amy Huang
20f2420fc6 Use fully qualified name when printing S_CONSTANT records
Summary:
Before it was using the fully qualified name only for static data members.
Now it does for all variable names to match MSVC.

Reviewers: rnk

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D63012

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363335 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 22:53:43 +00:00
Peter Collingbourne
08a3e83c75 Symbolize: Remove dead code. NFCI.
The only caller of SymbolizableObjectFile::create passes a non-null
DebugInfoContext and asserts that they do so. Move the assert into
SymbolizableObjectFile::create and remove null checks.

Differential Revision: https://reviews.llvm.org/D63298

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363334 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 22:49:34 +00:00
Stanislav Mekhanoshin
50d6e67368 [AMDGPU] gfx10 documentation update. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363332 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 22:18:47 +00:00
Amara Emerson
ebed2cc716 [GlobalISel][IRTranslator] Add debug loc with line 0 to constants emitted into the entry block.
Constants, including G_GLOBAL_VALUE, are all emitted into the entry block which
lets us use the vreg def assuming it dominates all other users. However, it can
cause jumpy debug behaviour since the DebugLoc attached to these MIs are from
a user instruction that could be in a different block.

Fixes PR40887.

Differential Revision: https://reviews.llvm.org/D63286

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363331 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 22:15:35 +00:00
Craig Topper
b854e64f61 [X86Disassembler] Unify the EVEX and VEX code in emitContextTable. Merge the ATTR_VEXL/ATTR_EVEXL bits. NFCI
Merging the two bits shrinks the context table from 16384 bytes to 8192 bytes.

Remove the ATTRIBUTE_BITS macro and just create an enum directly. Then fix the ATTR_max define to be 8192 to reflect the table size so we stop hardcoding it separately.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363330 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 22:15:25 +00:00
Jinsong Ji
714e2a9c2b [MachinePiepliner] Don't check boundary node in checkValidNodeOrder
This was exposed by PowerPC target enablement.

In ScheduleDAG, if we haven't seen any uses in this scheduling region,
we will create a dependence edge to ExitSU to model the live-out latency.
This is required for vreg defs with no in-region use, and prefetches with
no vreg def.

When we build NodeOrder in Scheduler, we ignore these boundary nodes.
However, when we check Succs in checkValidNodeOrder, we did not skip
them, so we still assume all the nodes have been sorted and in order in
Indices array. So when we call lower_bound() for ExitSU, it will return
Indices.end(), causing memory issues in following Node access.

Differential Revision: https://reviews.llvm.org/D63282

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363329 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 21:51:12 +00:00
Francis Visoiu Mistrih
eb1d34aaa7 [Remarks] Refactor optimization remarks setup
* Add a common function to setup opt-remarks
* Rename common options to the same names
* Add error types to distinguish between file errors and regex errors

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363328 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 21:46:57 +00:00
Vedant Kumar
235358f255 [Coverage] Load code coverage data from archives
Support loading code coverage data from regular archives, thin archives,
and from MachO universal binaries which contain archives.

Testing: check-llvm, check-profile (with {A,UB}San enabled)

rdar://51538999

Differential Revision: https://reviews.llvm.org/D63232

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363325 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 20:48:57 +00:00
Nico Weber
521eae8a46 gn build: Merge r363242
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363324 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 20:25:18 +00:00
Stanislav Mekhanoshin
273309dc7a [AMDGPU] gfx1010 AMDGPUSetCCOp definition
It was missing from D63293 and breaks in a debug tablegen w/o
this part.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363323 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 20:23:02 +00:00
Lang Hames
fed30998fe [ORC] Rename MaterializationResponsibility resolve and emit methods to
notifyResolved/notifyEmitted.

The 'notify' prefix better describes what these methods do: they update the JIT
symbol states and notify any pending queries that the 'resolved' and 'emitted'
states have been reached (rather than actually performing the resolution or
emission themselves). Since new states are going to be introduced in the near
future (to track symbol registration/initialization) it's worth changing the
convention pre-emptively to avoid further confusion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363322 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 20:11:23 +00:00
Nikita Popov
2528c30938 [LangRef] Clarify poison semantics
I find the current documentation of poison somewhat confusing,
mainly because its use of "undefined behavior" doesn't seem to
align with our usual interpretation (of immediate UB). Especially
the sentence "any instruction that has a dependence on a poison
value has undefined behavior" is very confusing.

Clarify poison semantics by:

 * Replacing the introductory paragraph with the standard rationale
   for having poison values.
 * Spelling out that instructions depending on poison return poison.
 * Spelling out how we go from a poison value to immediate undefined
   behavior and give the two examples we currently use in ValueTracking.
 * Spelling out that side effects depending on poison are UB.

Differential Revision: https://reviews.llvm.org/D63044

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363320 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:45:36 +00:00
Shawn Landden
2305c8a70b [SimplifyCFG] NFC, update Switch tests as a baseline.
Also add baseline tests to show effect of later patches.

There were a couple of regressions here that were never caught,
but my patch set that this is a preparation to will fix them.

This is the third attempt to land this patch.

Differential Revision: https://reviews.llvm.org/D61150



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363319 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:36:38 +00:00
Philip Reames
1f610924b7 Add a clarifying comment about branching on poison
I recently got this wrong (again), and I'm sure I'm not the only one.  Put a comment in the logical place someone would look to "fix" the obvious "missed optimization" which arrises based on the common misunderstanding.  Hopefully, this will save others time.  :)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363318 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:27:56 +00:00
Cameron McInally
1bc8cb5271 Revert "[NFC][CodeGen] Add unary fneg tests to fp-fast.ll fp-fold.ll fp-in-intregs.ll fp-stack-compare-cmov.ll fp-stack-compare.ll fsxor-alignment.ll"
This reverts commit 1d85a7518c6b660a85caabd580b632f9abd5a8ab.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363317 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:25:16 +00:00
Cameron McInally
fce74874d2 Revert "[NFC][CodeGen] Add unary fneg tests to fmul-combines.ll fnabs.ll"
This reverts commit 5c0114058126757ce21e546997121afffc8119cd.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363316 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:25:12 +00:00
Cameron McInally
e2c6da4cb7 Revert "[NFC][CodeGen] Add unary fneg tests to X86/fma_patterns_wide.ll"
This reverts commit f1b8c6ac4f9d31899a2bc128f8a37b5a1c3e1f77.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363315 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:25:09 +00:00
Cameron McInally
4ebb766de6 Revert "[NFC][CodeGen] Add unary fneg tests to X86/fma_patterns.ll"
This reverts commit 06de52674da73f30751f3ff19fdf457f87077c65.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363314 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:25:06 +00:00
Cameron McInally
ca6f95c849 Revert "[NFC][CodeGen] Add unary fneg tests to X86/fma4-fneg-combine.ll"
This reverts commit f288a0685f874d2b965db25a16b9c44f78c55b12.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363313 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:25:03 +00:00
Cameron McInally
14f03a76ad Revert "[NFC][CodeGen] Add unary fneg tests to X86/fma-scalar-combine.ll"
This reverts commit 3d2ee0053aa2576fd19cd169798c496199f0a29b.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363312 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:25:00 +00:00
Cameron McInally
89e83d63fb Revert "[NFC][CodeGen] Add unary fneg tests to X86/fma-intrinsics-x86.ll"
This reverts commit 169fc2b0209d5574fca0927a707706ea2d5f5a09.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363311 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:57 +00:00
Cameron McInally
39790134b2 Revert "[NFC][CodeGen] Add unary fneg tests to X86/fma4-intrinsics-x86.ll"
This reverts commit 66f286845cad73a280617a606e29c9009bb4da87.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363310 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:54 +00:00
Cameron McInally
58c78758f4 Revert "[NFC][CodeGen] Add unary FNeg tests to some X86/ and XCore/ tests."
This reverts commit 4f3cf3853e1145e3e08fb42ace79ba3e4e268540.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363309 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:51 +00:00
Cameron McInally
a591b4d47d Revert "[NFC][CodeGen] Add unary FNeg tests to X86/fma-intrinsics-canonical.ll"
This reverts commit ee5881a88cbe148bb64d14b8a5b31a314ee22343.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363308 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:47 +00:00
Cameron McInally
882994f69e Revert "[NFC][CodeGen] Forgot 2 unary FNeg tests in X86/fma-intrinsics-canonical.ll"
This reverts commit 5f39a3096f8e7b09bd1645f4e4ca66343066a6e1.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363307 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:44 +00:00
Cameron McInally
f9d9f3b98e Revert "[NFC][CodeGen] Add unary fneg tests to X86/fma-fneg-combine.ll"
This reverts commit 10c085554215e84831d272f2e6a93b7c70d143bf.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363306 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:41 +00:00
Cameron McInally
08c7e1e7d6 Revert "[NFC][CodeGen] Add unary FNeg tests to X86/combine-fcopysign.ll X86/dag-fmf-cse.ll X86/fast-isel-fneg.ll X86/fdiv.ll"
This reverts commit e04c4b6af81d6142c4ff8dd9d00f44a27e9a66eb.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363305 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:38 +00:00
Cameron McInally
881c869628 Revert "[NFC][CodeGen] Add unary FNeg tests to X86/avx512vl-intrinsics-fast-isel.ll X86/combine-fabs.ll"
This reverts commit 6fe46ec25d849a9fd5be25acf0ee77e3c06c0786.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363304 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:34 +00:00
Cameron McInally
5aad997e84 Revert "[NFC][CodeGen] Add unary FNeg tests to X86/avx512vl-intrinsics-fast-isel.ll"
This reverts commit 2aa5ada267d268fec2b1e90efeae1ddee24617be.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363303 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:31 +00:00
Cameron McInally
6d24f0f5c2 Revert "[NFC][CodeGen] Add unary FNeg tests to X86/avx512vl-intrinsics-fast-isel.ll"
This reverts commit 27a5db9de57d13d44c7a7704e06d8ba69ec8b4af.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363302 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:28 +00:00
Cameron McInally
265b1bb37a Revert "[NFC][CodeGen] Add unary FNeg tests to X86/avx512-intrinsics-fast-isel.ll"
This reverts commit 41e0b9f2803089155536bdec7cbea6b82680a727.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363301 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:24 +00:00
Cameron McInally
ae3b422633 Revert "[NFC][CodeGen] Add unary FNeg tests to X86/avx512-intrinsics-fast-isel.ll"
This reverts commit aeb89f8b33d8fca4e819ba41267093699a7e4885.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363300 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:24:21 +00:00
Stanislav Mekhanoshin
5c3ee716e4 [AMDGPU] gfx1010 base changes for wave32
Differential Revision: https://reviews.llvm.org/D63293

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363299 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 19:18:29 +00:00