OSDN Git Service

android-x86/external-llvm.git
5 years ago[MSP430] Move InstPrinter files to MCTargetDesc. NFC
Richard Trieu [Sat, 11 May 2019 01:58:52 +0000 (01:58 +0000)]
[MSP430] Move InstPrinter files to MCTargetDesc.  NFC

For some targets, there is a circular dependency between InstPrinter and
MCTargetDesc.  Merging them together will fix this.  For the other targets,
the merging is to maintain consistency so all targets will have the same
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360498 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[Mips] Move InstPrinter files to MCTargetDesc. NFC
Richard Trieu [Sat, 11 May 2019 01:38:56 +0000 (01:38 +0000)]
[Mips] Move InstPrinter files to MCTargetDesc.  NFC

For some targets, there is a circular dependency between InstPrinter and
MCTargetDesc.  Merging them together will fix this.  For the other targets,
the merging is to maintain consistency so all targets will have the same
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360497 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[Lanai] Move InstPrinter files to MCTargetDesc. NFC
Richard Trieu [Sat, 11 May 2019 01:25:58 +0000 (01:25 +0000)]
[Lanai] Move InstPrinter files to MCTargetDesc.  NFC

For some targets, there is a circular dependency between InstPrinter and
MCTargetDesc.  Merging them together will fix this.  For the other targets,
the merging is to maintain consistency so all targets will have the same
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360496 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[BPF] Move InstPrinter files to MCTargetDesc. NFC
Richard Trieu [Sat, 11 May 2019 01:13:21 +0000 (01:13 +0000)]
[BPF] Move InstPrinter files to MCTargetDesc.  NFC

For some targets, there is a circular dependency between InstPrinter and
MCTargetDesc.  Merging them together will fix this.  For the other targets,
the merging is to maintain consistency so all targets will have the same
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360494 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[AVR] Move InstPrinter files to MCTargetDesc. NFC
Richard Trieu [Sat, 11 May 2019 01:03:03 +0000 (01:03 +0000)]
[AVR] Move InstPrinter files to MCTargetDesc.  NFC

For some targets, there is a circular dependency between InstPrinter and
MCTargetDesc.  Merging them together will fix this.  For the other targets,
the merging is to maintain consistency so all targets will have the same
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360493 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agogn build: merge r360490
David L. Jones [Sat, 11 May 2019 00:44:30 +0000 (00:44 +0000)]
gn build: merge r360490

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360492 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agogn build: merge r360484 and r360486
David L. Jones [Sat, 11 May 2019 00:35:53 +0000 (00:35 +0000)]
gn build: merge r360484 and r360486

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360491 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] Move InstPrinter files to MCTargetDesc. NFC
Richard Trieu [Sat, 11 May 2019 00:34:07 +0000 (00:34 +0000)]
[ARM] Move InstPrinter files to MCTargetDesc.  NFC

For some targets, there is a circular dependency between InstPrinter and
MCTargetDesc.  Merging them together will fix this.  For the other targets,
the merging is to maintain consistency so all targets will have the same
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360490 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agogn build: merge r360345
David L. Jones [Sat, 11 May 2019 00:20:18 +0000 (00:20 +0000)]
gn build: merge r360345

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360489 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARC] Move InstPrinter files to MCTargetDesc. NFC
Richard Trieu [Sat, 11 May 2019 00:13:01 +0000 (00:13 +0000)]
[ARC] Move InstPrinter files to MCTargetDesc.  NFC

For some targets, there is a circular dependency between InstPrinter and
MCTargetDesc.  Merging them together will fix this.  For the other targets,
the merging is to maintain consistency so all targets will have the same
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360488 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[AMDGPU] Move InstPrinter files to MCTargetDesc. NFC
Richard Trieu [Sat, 11 May 2019 00:03:35 +0000 (00:03 +0000)]
[AMDGPU] Move InstPrinter files to MCTargetDesc.  NFC

For some targets, there is a circular dependency between InstPrinter and
MCTargetDesc.  Merging them together will fix this.  For the other targets,
the merging is to maintain consistency so all targets will have the same
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360487 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[AArch64] Move InstPrinter files to MCTargetDesc. NFC
Richard Trieu [Fri, 10 May 2019 23:50:01 +0000 (23:50 +0000)]
[AArch64] Move InstPrinter files to MCTargetDesc.  NFC

For some targets, there is a circular dependency between InstPrinter and
MCTargetDesc.  Merging them together will fix this.  For the other targets,
the merging is to maintain consistency so all targets will have the same
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360486 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[XCore] Move InstPrinter files to MCTargetDesc. NFC
Richard Trieu [Fri, 10 May 2019 23:36:49 +0000 (23:36 +0000)]
[XCore] Move InstPrinter files to MCTargetDesc.  NFC

For some targets, there is a circular dependency between InstPrinter and
MCTargetDesc.  Merging them together will fix this.  For the other targets,
the merging is to maintain consistency so all targets will have the same
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360485 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86] Move InstPrinter files to MCTargetDesc. NFC
Richard Trieu [Fri, 10 May 2019 23:24:38 +0000 (23:24 +0000)]
[X86] Move InstPrinter files to MCTargetDesc.  NFC

For some targets, there is a circular dependency between InstPrinter and
MCTargetDesc.  Merging them together will fix this.  For the other targets,
the merging is to maintain consistency so all targets will have the same
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360484 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoRevert [DAGCombiner] Avoid creating large tokenfactors in visitTokenFactor
Jordan Rupprecht [Fri, 10 May 2019 23:20:02 +0000 (23:20 +0000)]
Revert [DAGCombiner] Avoid creating large tokenfactors in visitTokenFactor

This reverts r360171 (git commit a9d6c32eafc645c55b07eb50698c428e14c0bffd). A repro showing the asan/msan failures is forthcoming.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360481 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoFactor out redzone ABI checks [NFCI]
Philip Reames [Fri, 10 May 2019 22:55:42 +0000 (22:55 +0000)]
Factor out redzone ABI checks [NFCI]

As requested in D58632, cleanup our red zone detection logic in the X86 backend. The existing X86MachineFunctionInfo flag is used to track whether we *use* the redzone (via a particularly optimization?), but there's no common way to check whether the function *has* a red zone.

I'd appreciate careful review of the uses being updated. I think they are NFC, but a careful eye from someone else would be appreciated.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360479 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ORC] Make a narrowing-cast explicit to silence a compiler warning.
Lang Hames [Fri, 10 May 2019 22:51:03 +0000 (22:51 +0000)]
[ORC] Make a narrowing-cast explicit to silence a compiler warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360478 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[JITLink][MachO] Mark atoms in sections 'no-dead-strip' set live by default.
Lang Hames [Fri, 10 May 2019 22:24:37 +0000 (22:24 +0000)]
[JITLink][MachO] Mark atoms in sections 'no-dead-strip' set live by default.

If a MachO section has the no-dead-strip attribute set then its atoms should
be preserved, regardless of whether they're public or referenced elsewhere in
the object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360477 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86] Disable speculative load hardening for operations with an explicit RSP base.
Craig Topper [Fri, 10 May 2019 22:03:33 +0000 (22:03 +0000)]
[X86] Disable speculative load hardening for operations with an explicit RSP base.

After D58632, we can create idempotent atomic operations to the top of stack.
This confused speculative load hardening because it thinks accesses should have
virtual register base except for the cases it already excluded.

This commit adds a new exclusion for this case. I'll try to reduce a test case
for this, but this fix was verified to work by the reporter. This should avoid
needing to revert D58632.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360475 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[COFF] Fix .bss section size bug in obj2yaml / yaml2obj
Reid Kleckner [Fri, 10 May 2019 21:53:44 +0000 (21:53 +0000)]
[COFF] Fix .bss section size bug in obj2yaml / yaml2obj

We need to serialize SizeOfRawData through even when there is no data,
as in a .bss section.

Fixes PR41836

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360473 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[LegalizeVectorOps] Remove calls to LegalizeOp on the return value from ExpandLoad...
Craig Topper [Fri, 10 May 2019 21:42:27 +0000 (21:42 +0000)]
[LegalizeVectorOps] Remove calls to LegalizeOp on the return value from ExpandLoad/ExpandStore.

We already updated the LegalizedNodes map at the end of the Expand call. This
would have marked the new node as being mapped to itself. So the LegalizeOp
call will find that an immediately return.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360472 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoSkip over prefetches
Mircea Trofin [Fri, 10 May 2019 21:27:55 +0000 (21:27 +0000)]
Skip over prefetches

Summary: Skip over prefetches when assigning debug info to instructions with memory operands. This way, the debug info is stable after instrumenting a binary with prefetches, allowing for iterative profiling and instrumentation.

Reviewers: davidxl

Reviewed By: davidxl

Subscribers: aprantl, hiraditya, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360471 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[SDAG] Recursively legalize both vector mulo results
Nikita Popov [Fri, 10 May 2019 20:42:48 +0000 (20:42 +0000)]
[SDAG] Recursively legalize both vector mulo results

Split out from D61692 per RKSimon's suggestion. Vector op
legalization will automatically recursively legalize the returned
SDValue, but we need to take care of the other results ourselves.
Otherwise it will end up getting legalized only during op
legalization, by which point it might be too late (though I'm not
aware of any specific cases right now).

There are codegen differences because expansion occurs earlier now
and we don't get a DAGCombiner run in between.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360470 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ThinLTO] Auto-hide prevailing linkonce_odr only when all copies eligible
Teresa Johnson [Fri, 10 May 2019 20:08:24 +0000 (20:08 +0000)]
[ThinLTO] Auto-hide prevailing linkonce_odr only when all copies eligible

Summary:
We hit undefined references building with ThinLTO when one source file
contained explicit instantiations of a template method (weak_odr) but
there were also implicit instantiations in another file (linkonce_odr),
and the latter was the prevailing copy. In this case the symbol was
marked hidden when the prevailing linkonce_odr copy was promoted to
weak_odr. It led to unsats when the resulting shared library was linked
with other code that contained a reference (expecting to be resolved due
to the explicit instantiation).

Add a CanAutoHide flag to the GV summary to allow the thin link to
identify when all copies are eligible for auto-hiding (because they were
all originally linkonce_odr global unnamed addr), and only do the
auto-hide in that case.

Most of the changes here are due to plumbing the new flag through the
bitcode and llvm assembly, and resulting test changes. I augmented the
existing auto-hide test to check for this situation.

Reviewers: pcc

Subscribers: mehdi_amini, inglorion, eraman, dexonsmith, arphaman, dang, llvm-commits, steven_wu, wmi

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360466 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[DAGCombiner] reduce code duplication; NFC
Sanjay Patel [Fri, 10 May 2019 20:02:30 +0000 (20:02 +0000)]
[DAGCombiner] reduce code duplication; NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360462 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoAdd InstCombine::visitFNeg(...)
Cameron McInally [Fri, 10 May 2019 20:01:04 +0000 (20:01 +0000)]
Add InstCombine::visitFNeg(...)

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360461 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[CVP] Add tests for urem, sdiv, srem ranges; NFC
Nikita Popov [Fri, 10 May 2019 19:36:38 +0000 (19:36 +0000)]
[CVP] Add tests for urem, sdiv, srem ranges; NFC

We currently don't calcuate result ranges for these binary operators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360460 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoDebugInfo: Only move types out of type units if they're named or type united
David Blaikie [Fri, 10 May 2019 19:15:29 +0000 (19:15 +0000)]
DebugInfo: Only move types out of type units if they're named or type united

Follow up to r359122, after a bug was reported in it - the original
change too aggressively tried to move related types out of type units,
which included unnamed types (like array types) which can't reasonably
be declared-but-not-defined.

A step beyond that is that some types in type units can be anonymous, if
they are types with a name for linkage purposes (eg: "typedef struct { }
x;"). So ensure those don't get turned into plain declarations (without
signatures) because, lacking names, they can't be resolved to the
definition.

[Also include a fix for llvm-dwarfdump/libDebugInfoDWARF to pretty print
types in type units]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360458 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[SLP] Refactor VectorizableTree to use unique_ptr.
Simon Pilgrim [Fri, 10 May 2019 18:55:17 +0000 (18:55 +0000)]
[SLP] Refactor VectorizableTree to use unique_ptr.

This patch fixes the TreeEntry dangling pointer issue caused by reallocations of VectorizableTree.

Committed on behalf of @vporpo (Vasileios Porpodas)

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360456 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoReplace 'REQUIRES: nozlib' with '!zlib' because we don't need two ways
Paul Robinson [Fri, 10 May 2019 18:47:39 +0000 (18:47 +0000)]
Replace 'REQUIRES: nozlib' with '!zlib' because we don't need two ways
to say the same thing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360455 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoReplace 'REQUIRES: not_?san' with 'UNSUPPORTED: ?san' as that better
Paul Robinson [Fri, 10 May 2019 18:08:02 +0000 (18:08 +0000)]
Replace 'REQUIRES: not_?san' with 'UNSUPPORTED: ?san' as that better
expresses the intent of the exclusion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360449 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[CVP] Add tests for abs and nabs spf; NFC
Nikita Popov [Fri, 10 May 2019 17:39:50 +0000 (17:39 +0000)]
[CVP] Add tests for abs and nabs spf; NFC

One half of the bound is already computed correctly for these
tests, the other isn't.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360445 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[LSR] Tweak setup cost depth threshold to 10.
Amara Emerson [Fri, 10 May 2019 17:29:35 +0000 (17:29 +0000)]
[LSR] Tweak setup cost depth threshold to 10.

The original change introduced a depth limit of 7 which caused a 22% regression
in the Swift MapReduceLazyCollection & Ackermann benchmarks. This new threshold
still ensures that the original test case doesn't hang.

rdar://50359639

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360444 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[MC][ELF] Copy top 3 bits of st_other to .symver aliases
Fangrui Song [Fri, 10 May 2019 17:09:25 +0000 (17:09 +0000)]
[MC][ELF] Copy top 3 bits of st_other to .symver aliases

On PowerPC64 ELFv2 ABI, the top 3 bits of st_other encode the local
entry offset. A versioned symbol alias created by .symver should copy
the bits from the source symbol.

This partly fixes PR41048. A full fix needs tracking of .set assignments
and updating st_other fields when finish() is called, see D56586.

Patch by Alfredo Dal'Ava Júnior

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360442 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoAdjust MachineScheduler to use ProcResource counts
Momchil Velikov [Fri, 10 May 2019 16:54:32 +0000 (16:54 +0000)]
Adjust MachineScheduler to use ProcResource counts

This fix allows the scheduler to take into account the number of instances of
each ProcResource specified. Previously a declaration in a scheduler of
ProcResource<1> would be treated identically to a declaration of
ProcResource<2>. Now the hazard recognizer would report a hazard only after all
of the resource instances are busy.

Patch by Jackson Woodruff and Momchil Velikov.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360441 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[llvm-objdump] Print st_other
Fangrui Song [Fri, 10 May 2019 16:24:57 +0000 (16:24 +0000)]
[llvm-objdump] Print st_other

Add support for ".hidden" ".internal" ".protected" and " 0x%02x" for
other st_other bits used by some architectures.

Reviewed By: sfertile

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360439 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoPull r360426 as it is breaking the build bots.
Nemanja Ivanovic [Fri, 10 May 2019 16:03:22 +0000 (16:03 +0000)]
Pull r360426 as it is breaking the build bots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360437 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86] Avoid SFB - Fix inconsistent codegen with/without debug info
Robert Lougher [Fri, 10 May 2019 15:55:06 +0000 (15:55 +0000)]
[X86] Avoid SFB - Fix inconsistent codegen with/without debug info

Fixes https://bugs.llvm.org/show_bug.cgi?id=40969

The functions findPotentiallyBlockedCopies and buildCopy are currently not
accounting for the presence of debug instructions. In the former this results
in the optimization not being trigerred, and in the latter results in
inconsistent codegen.

This patch enables the optimization to be performed in a debug build and
ensures the codegen is consistent with non-debug builds.

Patch by Chris Dawson.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360436 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86][SSE] Add getHopForBuildVector vector splitting
Simon Pilgrim [Fri, 10 May 2019 15:46:04 +0000 (15:46 +0000)]
[X86][SSE] Add getHopForBuildVector vector splitting

If we only use the lower xmm of a ymm hop, then extract the xmm's (for free), perform the xmm hop and then insert back into a ymm (for free).

Fixes some of the regressions noted in D61782

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360435 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoAnother attempt to fix the build bot breaks after r360426
Nemanja Ivanovic [Fri, 10 May 2019 15:44:56 +0000 (15:44 +0000)]
Another attempt to fix the build bot breaks after r360426

The test case checks were produced by the update_test_checks.py
scripts and I assumed that is sufficient. However, the behaviour
is different with different default target triples. Specify the
triple explicitly in the test case.

If this doesn't clean up the build bot breaks, I'll remove the test
case until I can get to the bottom of why the behaviour on build bots
is different from my machine.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360434 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoFix build break after r360426
Nemanja Ivanovic [Fri, 10 May 2019 15:11:40 +0000 (15:11 +0000)]
Fix build break after r360426

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360433 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[InferAddressSpaces] Enhance the handling of cosntexpr.
Michael Liao [Fri, 10 May 2019 14:57:42 +0000 (14:57 +0000)]
[InferAddressSpaces] Enhance the handling of cosntexpr.

Summary:
- Constant expressions may not be added in strict postorder as the
  forward instruction scan order. Thus, for a constant express (CE0), if
  its operand (CE1) is used in an previous instruction, they are not in
  postorder. However, different from
  `cloneInstructionWithNewAddressSpace`,
  `cloneConstantExprWithNewAddressSpace` doesn't bookkeep uninferred
  instructions for later resolving. That results in failure of inferring
  constant address.
- This patch adds the support to infer constant expression operand
  recursively, since there won't be loop, if that operand is another
  constant expression.

Reviewers: arsenm

Subscribers: jholewinski, jvesely, wdng, nhaehnle, hiraditya, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360431 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[PowerPC] custom lower `v2f64 fpext v2f32`
Lei Huang [Fri, 10 May 2019 14:04:06 +0000 (14:04 +0000)]
[PowerPC] custom lower `v2f64 fpext v2f32`

Reduces scalarization overhead via custom lowering of v2f64 fpext v2f32.

eg. For the following IR
  %0 = load <2 x float>, <2 x float>* %Ptr, align 8
  %1 = fpext <2 x float> %0 to <2 x double>
  ret <2 x double> %1

Pre custom lowering:
  ld r3, 0(r3)
  mtvsrd f0, r3
  xxswapd vs34, vs0
  xscvspdpn f0, vs0
  xxsldwi vs1, vs34, vs34, 3
  xscvspdpn f1, vs1
  xxmrghd vs34, vs0, vs1

After custom lowering:
  lfd f0, 0(r3)
  xxmrghw vs0, vs0, vs0
  xvcvspdp vs34, vs0

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360429 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[Pass Pipeline][NFC] Add a test prior to committing D61726
Nemanja Ivanovic [Fri, 10 May 2019 13:47:00 +0000 (13:47 +0000)]
[Pass Pipeline][NFC] Add a test prior to committing D61726

This patch just adds a test case to show the differences in code emitted
by opt before and after https://reviews.llvm.org/D61726.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360426 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoPre-commit InstCombine::visitFNeg(...) test.
Cameron McInally [Fri, 10 May 2019 13:18:57 +0000 (13:18 +0000)]
Pre-commit InstCombine::visitFNeg(...) test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360424 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[llvm-objcopy] Add additional testing for various cases
James Henderson [Fri, 10 May 2019 12:58:52 +0000 (12:58 +0000)]
[llvm-objcopy] Add additional testing for various cases

This patch adds a number of tests to test various cases not covered by
existing tests. All of them work correctly, with no need to change
llvm-objcopy itself, although some do indicate possible areas for
improvement.

Reviewed by: MaskRay

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360422 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoSelectionDAG: accommodate atomic floating stores.
Tim Northover [Fri, 10 May 2019 11:23:04 +0000 (11:23 +0000)]
SelectionDAG: accommodate atomic floating stores.

We were applying a pointer truncation to floating types, which crashed LLVM.
That is Not A Good Thing(TM).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360421 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[Object] Fix macho-invalid.test
Fangrui Song [Fri, 10 May 2019 10:47:30 +0000 (10:47 +0000)]
[Object] Fix macho-invalid.test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360420 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[cmake] Remove MSVC C4800 override
Simon Pilgrim [Fri, 10 May 2019 10:22:13 +0000 (10:22 +0000)]
[cmake] Remove MSVC C4800 override

Remove C4800 : ''type' : forcing value to bool 'true' or 'false' (performance warning)' from the list of forced disabled warnings.

I'm not seeing any regressions in VS2017/VS2019 llvm/clang builds from removing this.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360417 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[Object] Move ELF specific ObjectFile::getBuildAttributes to ELFObjectFileBase
Fangrui Song [Fri, 10 May 2019 10:19:08 +0000 (10:19 +0000)]
[Object] Move ELF specific ObjectFile::getBuildAttributes to ELFObjectFileBase

Change the return type from std::error_code to Error and make the
function protected.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360416 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[DebugInfo] Use zero linenos for debug intrinsics when promoting dbg.declare
Jeremy Morse [Fri, 10 May 2019 10:03:41 +0000 (10:03 +0000)]
[DebugInfo] Use zero linenos for debug intrinsics when promoting dbg.declare

In certain circumstances, optimizations pick line numbers from debug
intrinsic instructions as the new location for altered instructions. This
is problematic because the line number of a debugging intrinsic is
meaningless (it doesn't produce any machine instruction), only the scope
information is valid. The result can be the line number of a variable
declaration "leaking" into real code from debugging intrinsics, making the
line table un-necessarily jumpy, and potentially different with / without
variable locations.

Fix this by using zero line numbers when promoting dbg.declare intrinsics
into dbg.values: this is safe for debug intrinsics as their line numbers
are meaningless, and reduces the scope for damage / misleading stepping
when optimizations pick locations from the wrong place.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360415 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[Object] Change SymbolicFile::printSymbolName to use Error
Fangrui Song [Fri, 10 May 2019 09:59:04 +0000 (09:59 +0000)]
[Object] Change SymbolicFile::printSymbolName to use Error

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360414 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[cmake] Remove MSVC C4355 override
Simon Pilgrim [Fri, 10 May 2019 09:54:42 +0000 (09:54 +0000)]
[cmake] Remove MSVC C4355 override

Remove C4355 : ''this' : used in base member initializer list' from the list of forced disabled warnings.

I'm not seeing any regressions in VS2017/VS2019 llvm/clang builds from removing this.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360413 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoRemove an unnecessary header from SROA.h.
Eric Christopher [Fri, 10 May 2019 07:58:47 +0000 (07:58 +0000)]
Remove an unnecessary header from SROA.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360410 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[WebAssembly] Don't assume that strongly defined symbols are DSO-local
Sam Clegg [Fri, 10 May 2019 01:52:08 +0000 (01:52 +0000)]
[WebAssembly] Don't assume that strongly defined symbols are DSO-local

The current PIC model for WebAssembly is more like ELF in that it
allows symbol interposition.

This means that more functions end up being addressed via the GOT
and fewer directly added to the wasm table.

One effect is a reduction in the number of wasm table entries similar
to the previous attempt in https://reviews.llvm.org/D61539 which was
reverted.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360402 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[WebAssembly] Remove friend18.C from list of known gcc torture test failures. NFC.
Sam Clegg [Fri, 10 May 2019 01:45:34 +0000 (01:45 +0000)]
[WebAssembly] Remove friend18.C from list of known gcc torture test failures. NFC.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360401 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[llvm] X86DiscriminateMemOps: insert debug info when missing
Mircea Trofin [Fri, 10 May 2019 00:12:51 +0000 (00:12 +0000)]
[llvm] X86DiscriminateMemOps: insert debug info when missing

Reviewers: davidxl

Reviewed By: davidxl

Subscribers: aprantl, hiraditya, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360396 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[AMDGPU] Pattern for v_xor3_b32
Stanislav Mekhanoshin [Fri, 10 May 2019 00:09:01 +0000 (00:09 +0000)]
[AMDGPU] Pattern for v_xor3_b32

This also allows three op patterns to use increased constant bus
limit of GFX10.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360395 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86] Improve lowering of idemptotent RMW operations
Philip Reames [Thu, 9 May 2019 23:23:42 +0000 (23:23 +0000)]
[X86] Improve lowering of idemptotent RMW operations

The current lowering uses an mfence. mfences are substaintially higher latency than the locked operations originally requested, but we do want to avoid contention on the original cache line. As such, use a locked instruction on a cache line assumed to be thread local.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360393 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[JITLink] Fixed a signedness bug when processing X86_64_RELOC_SUBTRACTOR.
Lang Hames [Thu, 9 May 2019 23:17:41 +0000 (23:17 +0000)]
[JITLink] Fixed a signedness bug when processing X86_64_RELOC_SUBTRACTOR.

Subtractor relocation addends are signed, so we need to read them via signed
int pointers. Accidentally treating 32-bit addends as unsigned leads to
out-of-range errors when we try to add very large (>INT32_MAX) bogus addends.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360392 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoCompile time tweak for libcall lookup
Philip Reames [Thu, 9 May 2019 23:13:09 +0000 (23:13 +0000)]
Compile time tweak for libcall lookup

If we have a large module which is mostly intrinsics, we hammer the lib call lookup path from CodeGenPrepare.  Adding a fastpath reduces compile by 15% for one such example.

The problem is really more general than intrinsics - a module with lots of non-intrinsics non-libcall calls has the same problem - but we might as well avoid an easy case quickly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360391 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ORC] Simplify logic for updating edges when should-discard atoms are pruned.
Lang Hames [Thu, 9 May 2019 22:03:58 +0000 (22:03 +0000)]
[ORC] Simplify logic for updating edges when should-discard atoms are pruned.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360384 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[JITLink] Improve/fix some JITLink debugging output.
Lang Hames [Thu, 9 May 2019 22:03:57 +0000 (22:03 +0000)]
[JITLink] Improve/fix some JITLink debugging output.

Adds full edge details (rather than just edge targets) when out-of-range errors
are generated. Also fixes a bug where debugging output accessed an invalidated
DenseMap iterator by moving the debugging output above the invalidation point.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360383 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ORC] Fix a formatting bug.
Lang Hames [Thu, 9 May 2019 22:03:53 +0000 (22:03 +0000)]
[ORC] Fix a formatting bug.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360382 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoAdd ".dword" directive
Bill Wendling [Thu, 9 May 2019 21:57:44 +0000 (21:57 +0000)]
Add ".dword" directive

Summary:
The ".dword" directive is a synonym for ".xword" and is used used
by klibc, a minimalistic libc subset for initramfs.

Reviewers: t.p.northover, nickdesaulniers

Reviewed By: nickdesaulniers

Subscribers: nickdesaulniers, javed.absar, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360381 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agollvm-dwarfdump: Add dwo parsing to --statistics.
Caroline Tice [Thu, 9 May 2019 21:53:33 +0000 (21:53 +0000)]
llvm-dwarfdump: Add dwo parsing to --statistics.

Add check for, and parsing of, .dwo files to Statistics.cpp; create a new getNon
SkeletonUnitDie function for DWARFUnit.h

Reviewers: dblaikie

Differential Revision: https://review.llvm.org/D61755

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360380 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoDebugInfo/DWARF: Minor expression simplification
David Blaikie [Thu, 9 May 2019 21:23:40 +0000 (21:23 +0000)]
DebugInfo/DWARF: Minor expression simplification

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360377 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoUse UNSUPPORTED: windows in shtest-timeout.py. Apparently system-windows does not...
Stella Stamenova [Thu, 9 May 2019 20:22:02 +0000 (20:22 +0000)]
Use UNSUPPORTED: windows in shtest-timeout.py. Apparently system-windows does not cover all cases either and the case it doesn't cover affects one of the buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360373 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoUse UNSUPPORTED: system-windows instead of REQUIRES: nowindows or UNSUPPORTED: window...
Stella Stamenova [Thu, 9 May 2019 19:40:21 +0000 (19:40 +0000)]
Use UNSUPPORTED: system-windows instead of REQUIRES: nowindows or UNSUPPORTED: windows. nowindows is not currently defined and windows does not cover all cases. system-windows is also consistent with how other platforms are used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360368 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[CodeGen] Add comment about FSUB <-> FNEG xforms
Cameron McInally [Thu, 9 May 2019 19:28:52 +0000 (19:28 +0000)]
[CodeGen] Add comment about FSUB <-> FNEG xforms

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360366 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[AMDGPU] gfx1010 v_interp_* instructions
Stanislav Mekhanoshin [Thu, 9 May 2019 18:38:55 +0000 (18:38 +0000)]
[AMDGPU] gfx1010 v_interp_* instructions

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360364 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86][SSE] Fold add(shuffle(),shuffle()) to hadd on 'slow' targets (PR39920)
Simon Pilgrim [Thu, 9 May 2019 17:45:01 +0000 (17:45 +0000)]
[X86][SSE] Fold add(shuffle(),shuffle()) to hadd on 'slow' targets (PR39920)

As reported on PR39920, "slow horizontal ops" targets tend to internally expand to 2*shuffle+add/sub - so if we can reduce 2*shuffle+add/sub to a hadd/sub then we should do it - similar port usage but reduced instruction count.

This works out in most cases, although the "PR22377" regression in vector-shuffle-combining.ll is annoying - going from 2*shuffle+add+shuffle to hadd+2*shuffle - I've opened PR41813 to cover this.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360360 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[DAGCombiner] Limit number of nodes explored as store candidates.
Florian Hahn [Thu, 9 May 2019 17:05:52 +0000 (17:05 +0000)]
[DAGCombiner] Limit number of nodes explored as store candidates.

To find the candidates to merge stores we iterate over all nodes in a chain
for each store, which leads to quadratic compile times for large basic blocks
with a large number of stores.

Reviewers: niravd, spatel, craig.topper

Reviewed By: niravd

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360357 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoRe-enable lit test shtest-timeout.py on non-Windows.
Paul Robinson [Thu, 9 May 2019 17:01:03 +0000 (17:01 +0000)]
Re-enable lit test shtest-timeout.py on non-Windows.

It was disabled incorrectly, which meant it wasn't running anywhere.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360356 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[AMDGPU] gfx1010 changes for PAL metadata
Stanislav Mekhanoshin [Thu, 9 May 2019 16:34:13 +0000 (16:34 +0000)]
[AMDGPU] gfx1010 changes for PAL metadata

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360353 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[llvm-cxxfilt] Fix -Wshadow warning. NFCI.
Simon Pilgrim [Thu, 9 May 2019 15:58:16 +0000 (15:58 +0000)]
[llvm-cxxfilt] Fix -Wshadow warning. NFCI.

Local variable Decorated was shadowing the global variable Decorated

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360352 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[MCA] Add support for nested and overlapping region markers
Andrea Di Biagio [Thu, 9 May 2019 15:18:09 +0000 (15:18 +0000)]
[MCA] Add support for nested and overlapping region markers

This patch fixes PR41523
https://bugs.llvm.org/show_bug.cgi?id=41523

Regions can now nest/overlap provided that they have different names.
Anonymous regions cannot overlap.

Region end markers must specify the region name. The only exception is for when
there is only one user-defined region; in that particular case, the region end
marker doesn't need to specify a name.

Incorrect region end markers are no longer ignored. Instead, the tool reports an
error and we exit with an error code.

Added test cases to verify the new diagnostic error messages.

Updated the llvm-mca docs to reflect this feature change.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360351 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoMinidumpYAML: add support for the ThreadList stream
Pavel Labath [Thu, 9 May 2019 15:13:53 +0000 (15:13 +0000)]
MinidumpYAML: add support for the ThreadList stream

Summary:
The implementation is a pretty straightforward extension of the pattern
used for (de)serializing the ModuleList stream. Since there are other
streams which use the same format (MemoryList and MemoryList64, at
least). I tried to generalize the code a bit so that adding future
streams of this type can be done with less code.

Reviewers: amccarth, jhenderson, clayborg

Subscribers: markmentovai, lldb-commits, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360350 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[CodeGenPrepare] Limit recursion depth for collectBitParts
David Stuttard [Thu, 9 May 2019 15:02:10 +0000 (15:02 +0000)]
[CodeGenPrepare] Limit recursion depth for collectBitParts

Summary:
Seeing some issues for windows debug pathological cases with collectBitParts
recursion (1525 levels of recursion!)
Setting the limit to 64 as this should be sufficient - passes all lit cases

Subscribers: llvm-commits

Tags: #llvm

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

Change-Id: I7f44cdc6c1badf1c2ccbf1b0c4b6afe27ecb39a1

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360347 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agogn build: Merge r960255
Nico Weber [Thu, 9 May 2019 14:14:21 +0000 (14:14 +0000)]
gn build: Merge r960255

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360343 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86] AMD Piledriver (BdVer2): major cleanup (mainly inverse throughput)
Roman Lebedev [Thu, 9 May 2019 13:54:51 +0000 (13:54 +0000)]
[X86] AMD Piledriver (BdVer2): major cleanup (mainly inverse throughput)

I've started this cleanup more several times now, but got sidetracked
elsewhere, e.g. by llvm-exegesis problems. Not this time, finally!

This is mainly cleaning up the inverse throughput values,
and a few latencies/uops, based on the llvm-exegesis measured values.

Though this is not complete by any means,
there's certainly more cleanup to be done.

The performance numbers (i've only checked by RawSpeed benchmark) aren't
really surprising - overall this *slightly* (< -1%) improves perf.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360341 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[LoopVectorizer] fix test file to not run the entire -O3 pipeline
Sanjay Patel [Thu, 9 May 2019 13:43:22 +0000 (13:43 +0000)]
[LoopVectorizer] fix test file to not run the entire -O3 pipeline

This test file has a long history of edits from changes outside
of vectorization, and it would happen again with the proposal in
D61726.

End-to-end testing shouldn't be happening in a test file that is
specifically checking for vector masked load/store ops.
Larger-scale testing goes in PhaseOrdering or the test-suite.

I've hopefully preserved the intent by taking what was completely
unoptimized IR in some tests and passing that through the -O1
pipeline. That becomes the input IR, and now we just run the loop
vectorizer and verify that the vector masked ops are produced as
expected.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360340 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[llvm-nm] Fix handling of symbol types 't' 'd' 'r'
Fangrui Song [Thu, 9 May 2019 12:43:37 +0000 (12:43 +0000)]
[llvm-nm] Fix handling of symbol types 't' 'd' 'r'

This restores part of r359311 that was reverted by r359830.

Rewrite the symbol types to fix several issues.

Notable difference is that the type of __init_array_start changes from
't' to 'd'.

GNU nm used to mark ELF symbols relative to .init_array as 't'
https://sourceware.org/bugzilla/show_bug.cgi?id=24505 (before 2.33)
because ".init" is the prefix. The bug was copied by r287803.

Reviewed By: jhenderson

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360339 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[PowerPC][NFC] Add test for D60506 to show differences in code-gen
Nemanja Ivanovic [Thu, 9 May 2019 12:26:39 +0000 (12:26 +0000)]
[PowerPC][NFC] Add test for D60506 to show differences in code-gen

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360338 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoFix local variable shadow warning in SmallVectorBase constructor. NFCI.
Simon Pilgrim [Thu, 9 May 2019 12:21:53 +0000 (12:21 +0000)]
Fix local variable shadow warning in SmallVectorBase constructor. NFCI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360337 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoFix uninitialized value warnings in StatepointBase constructors. NFCI.
Simon Pilgrim [Thu, 9 May 2019 12:21:00 +0000 (12:21 +0000)]
Fix uninitialized value warnings in StatepointBase constructors. NFCI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360335 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM][CGP] Guard against signext args and sitofp
Sam Parker [Thu, 9 May 2019 11:56:16 +0000 (11:56 +0000)]
[ARM][CGP] Guard against signext args and sitofp

Add an Argument that has the SExtAttr attached, as well as SIToFP
instructions, as values that generate sign bits. SIToFP doesn't
strictly do this and could be treated as a sink to be sign-extended.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360331 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[CodeGenPrepare] Ensure we get a non-null result from getTrueOrFalseValue. NFCI.
Simon Pilgrim [Thu, 9 May 2019 10:51:26 +0000 (10:51 +0000)]
[CodeGenPrepare] Ensure we get a non-null result from getTrueOrFalseValue. NFCI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360328 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[SPIR] Simplified target checking.
Anastasia Stulova [Thu, 9 May 2019 10:16:33 +0000 (10:16 +0000)]
[SPIR] Simplified target checking.

Added Triple::isSPIR() helper to simplify code.

Patch by kpet (Kevin Petit)!

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360323 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoFix LLVM_USE_PERF build after getPageSize change
Sven van Haastregt [Thu, 9 May 2019 10:10:44 +0000 (10:10 +0000)]
Fix LLVM_USE_PERF build after getPageSize change

Commit r360221 ("[Support] Add error handling to
sys::Process::getPageSize().", 2019-05-08) seems to have missed these
uses of getPageSize().  Update them to getPageSizeEstimate().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360322 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM GlobalISel] Map DBG_VALUE for types != s32
Diana Picus [Thu, 9 May 2019 09:49:36 +0000 (09:49 +0000)]
[ARM GlobalISel] Map DBG_VALUE for types != s32

...and make sure we fail elegantly for unsupported values.

s64 goes into DPR, anything <= 32 into GPR.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360321 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoX86WinAllocaExpander: Drop code looking through register copies (PR41786)
Hans Wennborg [Thu, 9 May 2019 09:22:56 +0000 (09:22 +0000)]
X86WinAllocaExpander: Drop code looking through register copies (PR41786)

This code was never covered by tests, in PR41786 it was pointed out that
the deletion part doesn't work, and in a full Chrome build I was never
able to hit the code path that looks through copies. It seems the
situation it's supposed to handle doesn't actually come up in practice.

Delete it to simplify the code.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360320 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[MergeICmps][NFC] Re-generate tests with update_test_checks.
Clement Courbet [Thu, 9 May 2019 08:37:58 +0000 (08:37 +0000)]
[MergeICmps][NFC] Re-generate tests with update_test_checks.

And use a more compact name for the tested struct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360319 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoMake sub-registers index names case sensitive in the MIRParser
Markus Lavin [Thu, 9 May 2019 08:29:04 +0000 (08:29 +0000)]
Make sub-registers index names case sensitive in the MIRParser

Prior to this change sub-register index names are assumed to be lower
case (but they are printed with original casing). This means that if a
target has some upper case characters in its sub-register names then
mir-export directly followed by mir-import is not possible. This also
means that sub-register indices currently are (and will continue to be)
slightly inconsistent with register names which are printed and assumed
to be lower case.

As the current textual representation of mir has a few inconsistencies
in this area it is a bit arbitrary how to address the matter. This
change is towards the direction that we feel is most correct (i.e. case
sensitivity).

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360318 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoBugfix for nullptr check by klocwork
Pengfei Wang [Thu, 9 May 2019 08:09:21 +0000 (08:09 +0000)]
Bugfix for nullptr check by klocwork

Klocwork static check:
Pointer from call to function `DebugLoc::operator DILocation *() const `
may be NULL and will be dereference in function `printExtendedName```
Patch by Shengchen Kan (skan)
Differential Revision: https://reviews.llvm.org/D61715

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360317 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[CodeGen] Use "DL.getPointerSizeInBits" instead of "8 * DL.getPointerSize". NFC
Bjorn Pettersson [Thu, 9 May 2019 08:07:36 +0000 (08:07 +0000)]
[CodeGen] Use "DL.getPointerSizeInBits" instead of "8 * DL.getPointerSize". NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360315 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC] Fix typo.
Clement Courbet [Thu, 9 May 2019 07:12:25 +0000 (07:12 +0000)]
[NFC] Fix typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360314 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NewPM] Setup Passes for KASan and KMSan
Petr Hosek [Thu, 9 May 2019 06:09:35 +0000 (06:09 +0000)]
[NewPM] Setup Passes for KASan and KMSan

While ASan and MSan passes were already ported to new PM, the kernel
variants weren't setup in the pipeline which makes the KASan and KMSan
tests in Clang fail.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360313 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agolit config: disable LSan for Apple clang compiler in addition to Apple LLVM
Alex Lorenz [Thu, 9 May 2019 02:46:20 +0000 (02:46 +0000)]
lit config: disable LSan for Apple clang compiler in addition to Apple LLVM

Apple clang is the canonical way to refer to the compiler shipped with Xcode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360307 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[SelectionDAG] Expand ADD/SUBCARRY
Leonard Chan [Thu, 9 May 2019 01:17:48 +0000 (01:17 +0000)]
[SelectionDAG] Expand ADD/SUBCARRY

This patch allows for expansion of ADDCARRY and SUBCARRY when the target does not support it.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360303 91177308-0d34-0410-b5e6-96231b3b80d8