OSDN Git Service

android-x86/external-llvm.git
8 years ago[DAGCombiner] Use APInt directly to detect out of range shift constants
Simon Pilgrim [Wed, 27 Jul 2016 10:30:55 +0000 (10:30 +0000)]
[DAGCombiner] Use APInt directly to detect out of range shift constants

Using getZExtValue() will assert if the value doesn't fit into uint64_t - SHL was already doing this, I've just updated ASHR/LSHR to match

As mentioned on D22726

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

8 years agoRemoved unusued template function declaration that has no definition - fixes MSVC...
Simon Pilgrim [Wed, 27 Jul 2016 10:11:05 +0000 (10:11 +0000)]
Removed unusued template function declaration that has no definition - fixes MSVC warning.

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

8 years ago[mips] Update the link to the MIPS documentation in CompilerWriterInfo.rst.
Daniel Sanders [Wed, 27 Jul 2016 08:52:15 +0000 (08:52 +0000)]
[mips] Update the link to the MIPS documentation in CompilerWriterInfo.rst.

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

8 years ago[MBP] Added some more debug messages and some clean ups /NFC
Sjoerd Meijer [Wed, 27 Jul 2016 08:49:23 +0000 (08:49 +0000)]
[MBP] Added some more debug messages and some clean ups /NFC

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

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

8 years agoRefactor - CodeExtractor : Move check for valid block to static utility
Sean Silva [Wed, 27 Jul 2016 08:02:46 +0000 (08:02 +0000)]
Refactor - CodeExtractor : Move check for valid block to static utility

This lets you actually check to see if a block is valid before trying to
extract.

Patch by River Riddle!

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

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

8 years ago[GVNHoist] Fix typo in assert.
George Burgess IV [Wed, 27 Jul 2016 06:34:53 +0000 (06:34 +0000)]
[GVNHoist] Fix typo in assert.

This fixes PR28730.

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

8 years agoFix Coroutines doc example
Mehdi Amini [Wed, 27 Jul 2016 06:03:47 +0000 (06:03 +0000)]
Fix Coroutines doc example

SSA was broken.

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

8 years ago[MC] Add command-line option to choose the max nest level in asm macros.
Davide Italiano [Wed, 27 Jul 2016 05:51:56 +0000 (05:51 +0000)]
[MC] Add command-line option to choose the max nest level in asm macros.

Submitted by: t83wCSLq
Differential Revision:  https://reviews.llvm.org/D22313

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

8 years agoGVN-hoist: improve code generation for recursive GEPs
Sebastian Pop [Wed, 27 Jul 2016 05:48:12 +0000 (05:48 +0000)]
GVN-hoist: improve code generation for recursive GEPs

When loading or storing in a field of a struct like "a.b.c", GVN is able to
detect the equivalent expressions, and GVN-hoist would fail in the code
generation.  This is because the GEPs are not hoisted as scalar operations to
avoid moving the GEPs too far from their ld/st instruction when the ld/st is not
movable.  So we end up having to generate code for the GEP of a ld/st when we
move the ld/st.  In the case of a GEP referring to another GEP as in "a.b.c" we
need to code generate all the GEPs necessary to make all the operands available
at the new location for the ld/st.  With this patch we recursively walk through
the GEP operands checking whether all operands are available, and in the case of
a GEP operand, it recursively makes all its operands available. Code generation
happens from the inner GEPs out until reaching the GEP that appears as an
operand of the ld/st.

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

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

8 years agoGVN-hoist: use DFS numbers instead of walking the instruction stream
Sebastian Pop [Wed, 27 Jul 2016 05:13:52 +0000 (05:13 +0000)]
GVN-hoist: use DFS numbers instead of walking the instruction stream

The patch replaces a function that walks the IR with a call to firstInBB() that
uses the DFS numbering.  NFC.

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

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

8 years ago[coroutines] Part 2 of N: Adding Coroutine Intrinsics
David Majnemer [Wed, 27 Jul 2016 05:12:35 +0000 (05:12 +0000)]
[coroutines] Part 2 of N: Adding Coroutine Intrinsics

This is the second patch in the coroutine series. It adds coroutine
intrinsics and updates intrinsic cost in TargetTransformInfoImpl.h.

Patch by Gor Nishanov!

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

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

8 years agoadd a verbose mode to Loop->print() to print all the basic blocks of a loop
Sebastian Pop [Wed, 27 Jul 2016 05:02:17 +0000 (05:02 +0000)]
add a verbose mode to Loop->print() to print all the basic blocks of a loop

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

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

8 years agoadd function isLoopLatch
Sebastian Pop [Wed, 27 Jul 2016 05:02:15 +0000 (05:02 +0000)]
add function isLoopLatch

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

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

8 years agorefactor code in verifyLoop: NFC.
Sebastian Pop [Wed, 27 Jul 2016 04:36:06 +0000 (04:36 +0000)]
refactor code in verifyLoop: NFC.

Use std::any_of as requested in https://reviews.llvm.org/D22816

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

8 years ago[llvm-cov] Escape '\' in strings when emitting JSON
Vedant Kumar [Wed, 27 Jul 2016 04:08:32 +0000 (04:08 +0000)]
[llvm-cov] Escape '\' in strings when emitting JSON

Test that Windows path separators are escaped properly. Add a round-trip
test to verify the JSON produced by the exporter.

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

8 years agoMove assert as early as possible
Sebastian Pop [Wed, 27 Jul 2016 03:30:11 +0000 (03:30 +0000)]
Move assert as early as possible

Patch written by Aditya Kumar.

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

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

8 years ago[llvm-go] parameterize $GOPATH construction
Andrew Wilkins [Wed, 27 Jul 2016 03:21:51 +0000 (03:21 +0000)]
[llvm-go] parameterize $GOPATH construction

Summary:
To build llgo, you must currently ensure that llgo
is in the tools/llgo directory, due to a hard-coded
path in llvm-go.

To support the use of LLVM_EXTERNAL_LLGO_SOURCE_DIR,
we introduce a flag to llvm-go that enables the
caller to specify the paths to symlink in the
temporary $GOPATH.

Reviewers: pcc

Subscribers: llvm-commits

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

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

8 years ago[ConstantFolding] Correctly handle failures in ConstantFoldConstantExpressionImpl
David Majnemer [Wed, 27 Jul 2016 02:39:16 +0000 (02:39 +0000)]
[ConstantFolding] Correctly handle failures in ConstantFoldConstantExpressionImpl

Failures in ConstantFoldConstantExpressionImpl were ignored causing
crashes down the line.

This fixes PR28725.

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

8 years agoReverting r276771 due to MSan failures.
Andrew Kaylor [Wed, 27 Jul 2016 01:19:24 +0000 (01:19 +0000)]
Reverting r276771 due to MSan failures.

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

8 years agoAMDGPU: Use rcp for fdiv 1, x with fpmath metadata
Matt Arsenault [Tue, 26 Jul 2016 23:25:44 +0000 (23:25 +0000)]
AMDGPU: Use rcp for fdiv 1, x with fpmath metadata

Using rcp should be OK for safe math usually, so this
should not be replacing the original fdiv.

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

8 years agoRevert r276136 "Use ValueOffsetPair to enhance value reuse during SCEV expansion."
Hans Wennborg [Tue, 26 Jul 2016 23:25:13 +0000 (23:25 +0000)]
Revert r276136 "Use ValueOffsetPair to enhance value reuse during SCEV expansion."

It causes Clang tests to fail after Windows self-host (PR28705).

(Also reverts follow-up r276139.)

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

8 years agoAMDGPU: Add more tests for LDS size with occupancy
Matt Arsenault [Tue, 26 Jul 2016 23:15:59 +0000 (23:15 +0000)]
AMDGPU: Add more tests for LDS size with occupancy

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

8 years ago[docs] Fix a sphinx error in llvm-cov.rst
Vedant Kumar [Tue, 26 Jul 2016 23:09:57 +0000 (23:09 +0000)]
[docs] Fix a sphinx error in llvm-cov.rst

Failing bot:

  http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/12025

Fix tested with `ninja docs-llvm-html`.

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

8 years agoAMDGPU: Use implicit_def for selecting anyext
Matt Arsenault [Tue, 26 Jul 2016 23:06:33 +0000 (23:06 +0000)]
AMDGPU: Use implicit_def for selecting anyext

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

8 years agoRetry: [llvm-cov] Add support for exporting coverage data to JSON
Vedant Kumar [Tue, 26 Jul 2016 22:50:58 +0000 (22:50 +0000)]
Retry: [llvm-cov] Add support for exporting coverage data to JSON

This enables users to export coverage information as portable JSON for use by
analysis tools and storage in document based databases.

The export sub-command is invoked just like the others:

  llvm-cov export -instr-profile path/to/foo.profdata path/to/foo.binary

The resulting JSON contains a list of files and functions. Every file object
contains a list of segments, expansions, and a summary of the file's region,
function, and line coverage. Every function object contains the function's name
and regions. There is also a total summary for the entire object file.

Changes since the initial commit (r276813):

  - Fixed the regexes in the tests to handle Windows filepaths.

Patch by Eddie Hurtig!

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

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

8 years agodocs: Add reference to type metadata to langref.
Peter Collingbourne [Tue, 26 Jul 2016 22:31:30 +0000 (22:31 +0000)]
docs: Add reference to type metadata to langref.

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

8 years agoRevert "[llvm-cov] Add support for exporting coverage data to JSON"
Vedant Kumar [Tue, 26 Jul 2016 21:55:39 +0000 (21:55 +0000)]
Revert "[llvm-cov] Add support for exporting coverage data to JSON"

This reverts commit r276813. The Windows bots are complaining about some
of the filename regexes in the tests:

  http://bb.pgr.jp/builders/ninja-clang-i686-msc19-R/builds/5299

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

8 years agoMIRParser: Use dot instead of colon to mark subregisters
Matthias Braun [Tue, 26 Jul 2016 21:49:34 +0000 (21:49 +0000)]
MIRParser: Use dot instead of colon to mark subregisters

Change the syntax to use `%0.sub8` to denote a subregister.

This seems like a more natural fit to denote subregisters; I also plan
to introduce a new ":classname" syntax in upcoming patches to denote the
register class of a vreg.

Note that this commit disallows plain identifiers to start with a '.'
character.  This shouldn't affect anything as external names/IR
references are all prefixed with '$'/'%', plain identifiers are only
used for instruction names, register mask names and subreg indexes.

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

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

8 years ago[llvm-cov] Add support for exporting coverage data to JSON
Vedant Kumar [Tue, 26 Jul 2016 21:35:43 +0000 (21:35 +0000)]
[llvm-cov] Add support for exporting coverage data to JSON

This enables users to export coverage information as portable JSON for use by
analysis tools and storage in document based databases.

The export sub-command is invoked just like the others:

  llvm-cov export -instr-profile path/to/foo.profdata path/to/foo.binary

The resulting JSON contains a list of files and functions. Every file object
contains a list of segments, expansions, and a summary of the file's region,
function, and line coverage. Every function object contains the function's name
and regions. There is also a total summary for the entire object file.

Patch by Eddie Hurtig!

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

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

8 years agoFix docs/Coroutines.rst syntax highlighting on Linux
Sanjoy Das [Tue, 26 Jul 2016 21:03:41 +0000 (21:03 +0000)]
Fix docs/Coroutines.rst syntax highlighting on Linux

Summary:
s/code-block:: C++/code-block:: c++ in docs/Coroutines.rst .

Patch by Gor Nishanov!  Edited by Sanjoy to fix a missing s/C/c/.

Reviewers: sanjoy, rengolin

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

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

8 years agoAMDGPU/R600: Remove dead custom inserters
Matt Arsenault [Tue, 26 Jul 2016 21:03:38 +0000 (21:03 +0000)]
AMDGPU/R600: Remove dead custom inserters

The intrinsics for these were removed, so this is dead.

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

8 years agoAMDGPU: Minor AsmPrinter cleanups
Matt Arsenault [Tue, 26 Jul 2016 21:03:36 +0000 (21:03 +0000)]
AMDGPU: Minor AsmPrinter cleanups

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

8 years ago[Hexagon] Post-increment loads/stores enhancements
Krzysztof Parzyszek [Tue, 26 Jul 2016 20:30:30 +0000 (20:30 +0000)]
[Hexagon] Post-increment loads/stores enhancements

- Generate vector post-increment stores more aggressively.
- Predicate post-increment and vector stores in early if-conversion.

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

8 years agoGlobalISel: add generic load and store instructions.
Tim Northover [Tue, 26 Jul 2016 20:23:26 +0000 (20:23 +0000)]
GlobalISel: add generic load and store instructions.

Pretty straightforward, the only oddity is the MachineMemOperand (which it's
surprisingly difficult to share code for).

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

8 years ago[X86] Split out absdiff detection from SAD combine. NFC.
Michael Kuperstein [Tue, 26 Jul 2016 20:01:29 +0000 (20:01 +0000)]
[X86] Split out absdiff detection from SAD combine. NFC.

Preparation for supporting PSADBW emission for straight-line code.

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

8 years ago[Hexagon] Gracefully handle reg class mismatch in HexagonLoopReschedule
Krzysztof Parzyszek [Tue, 26 Jul 2016 19:17:13 +0000 (19:17 +0000)]
[Hexagon] Gracefully handle reg class mismatch in HexagonLoopReschedule

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

8 years ago[Hexagon] Rerun bit tracker on new instructions in RIE
Krzysztof Parzyszek [Tue, 26 Jul 2016 19:08:45 +0000 (19:08 +0000)]
[Hexagon] Rerun bit tracker on new instructions in RIE

Consider this case:
  vreg1 = A2_zxth vreg0   (1)
  ...
  vreg2 = A2_zxth vreg1   (2)

Redundant instruction elimination could delete the instruction (1)
because the user (2) only cares about the low 16 bits. Then it could
delete (2) because the input is already zero-extended. The problem
is that the properties allowing each individual instruction to be
deleted depend on the existence of the other instruction, so either
one can be deleted, but not both.
The existing check for this situation in RIE was insufficient. The
fix is to update all dependent cells when an instruction is removed
(replaced via COPY) in RIE.

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

8 years agoAdd link to the Hexagon documentation
Krzysztof Parzyszek [Tue, 26 Jul 2016 18:40:25 +0000 (18:40 +0000)]
Add link to the Hexagon documentation

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

8 years ago[Hexagon] Bitwise operations for insert/extract word not simplified
Krzysztof Parzyszek [Tue, 26 Jul 2016 18:30:11 +0000 (18:30 +0000)]
[Hexagon] Bitwise operations for insert/extract word not simplified

Change the bit simplifier to generate REG_SEQUENCE instructions in
addition to COPY, which will handle cases of word insert/extract.

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

8 years agoFix NVPTX/call-with-alloca-buffer.ll after r276777.
Justin Lebar [Tue, 26 Jul 2016 18:28:33 +0000 (18:28 +0000)]
Fix NVPTX/call-with-alloca-buffer.ll after r276777.

r276777 makes InstSimplify stronger, letting it see through some
unnecessary addrspace casts.

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

8 years agoMIRParser: Use shorter cfi identifiers
Matthias Braun [Tue, 26 Jul 2016 18:20:00 +0000 (18:20 +0000)]
MIRParser: Use shorter cfi identifiers

In an instruction like:
CFI_INSTRUCTION .cfi_def_cfa ...
we can drop the '.cfi_' prefix since that should be obvious by the
context:
CFI_INSTRUCTION def_cfa ...

While being a terser and cleaner syntax this also prepares to dropping
support for identifiers starting with a dot character so we can use it
for expressions.

Differential Revision: http://reviews.llvm.org/D22388

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

8 years ago[MC] Don't crash when trying to emit a relocation against .bss.
Davide Italiano [Tue, 26 Jul 2016 18:16:33 +0000 (18:16 +0000)]
[MC] Don't crash when trying to emit a relocation against .bss.

Turn that into an error instead.

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

8 years ago[CMAKE] Find ld64 using xcrun
Bruno Cardoso Lopes [Tue, 26 Jul 2016 18:09:23 +0000 (18:09 +0000)]
[CMAKE] Find ld64 using xcrun

Given similar reasons from r276710, ld64 scrubs DYLD_* environment if
called from the shim executable /usr/bin/ld.

Add support for finding ld64 via xcrun.

This is needed in order to get LIT to have the full path to the ld4
executable.

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

rdar://problem/24300926

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

8 years ago[InstSimplify] Cast folding can be made more generic
David Majnemer [Tue, 26 Jul 2016 17:58:05 +0000 (17:58 +0000)]
[InstSimplify] Cast folding can be made more generic

Use isEliminableCastPair to determine if a pair of casts are foldable.

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

8 years ago[LoopUtils] Sort headers
Adam Nemet [Tue, 26 Jul 2016 17:52:02 +0000 (17:52 +0000)]
[LoopUtils] Sort headers

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

8 years agoGlobalISel: add correct operand type to G_FRAME_INDEX instrs.
Tim Northover [Tue, 26 Jul 2016 17:42:40 +0000 (17:42 +0000)]
GlobalISel: add correct operand type to G_FRAME_INDEX instrs.

Frame indices should use "addFrameIndex", not "addImm".

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

8 years ago[Hexagon] Add support for proper handling of H and L constraints
Krzysztof Parzyszek [Tue, 26 Jul 2016 17:31:02 +0000 (17:31 +0000)]
[Hexagon] Add support for proper handling of H and L constraints

H -> High part of reg pair.
L -> Low part of reg pair.

Patch by Sundeep Kushwaha.

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

8 years agoGlobalISel: omit braces on MachineInstr types when there's only one.
Tim Northover [Tue, 26 Jul 2016 17:28:01 +0000 (17:28 +0000)]
GlobalISel: omit braces on MachineInstr types when there's only one.

Tidies up the representation a bit in the common case.

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

8 years agoRe-committing r275284: add support to inline __builtin_mempcpy
Andrew Kaylor [Tue, 26 Jul 2016 17:23:13 +0000 (17:23 +0000)]
Re-committing r275284: add support to inline __builtin_mempcpy

Patch by Sunita Marathe

Differential Revision: http://reviews.llvm.org/D21920

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

8 years agoAMDGPU: Make AMDGPUMachineFunction fields private
Matt Arsenault [Tue, 26 Jul 2016 16:45:58 +0000 (16:45 +0000)]
AMDGPU: Make AMDGPUMachineFunction fields private

ABIArgOffset is a problem because properly fsetting the
KernArgSize requires that the reserved area before the
real kernel arguments be correctly aligned, which requires
fixing clover.

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

8 years agoAMDGPU: Add missing tests for xnack option for HSA
Matt Arsenault [Tue, 26 Jul 2016 16:45:50 +0000 (16:45 +0000)]
AMDGPU: Add missing tests for xnack option for HSA

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

8 years agoAMDGPU: Add fp legacy instruction intrinsics
Matt Arsenault [Tue, 26 Jul 2016 16:45:45 +0000 (16:45 +0000)]
AMDGPU: Add fp legacy instruction intrinsics

This could use some additional optimization work
to use mad/mac legacy.

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

8 years agoGlobalISel: add specialized buildCopy function to MachineInstrBuilder.
Tim Northover [Tue, 26 Jul 2016 16:45:30 +0000 (16:45 +0000)]
GlobalISel: add specialized buildCopy function to MachineInstrBuilder.

NFC.

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

8 years agoGlobalISel: give MachineInstrBuilder a uniform interface. NFC.
Tim Northover [Tue, 26 Jul 2016 16:45:26 +0000 (16:45 +0000)]
GlobalISel: give MachineInstrBuilder a uniform interface. NFC.

Instead of an ad-hoc collection of "buildInstr" functions with varying numbers
of registers, this uses variadic templates to provide for as many regs as
needed!

Also make IRtranslator use new "buildBr" function instead of some weird generic
one that no-one else would really use.

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

8 years ago[mips] Fix typos in spelling of lowerRETURNADDR.
Daniel Sanders [Tue, 26 Jul 2016 14:46:11 +0000 (14:46 +0000)]
[mips] Fix typos in spelling of lowerRETURNADDR.

The first letter was mistakenly capitalized.

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

8 years ago[Hexagon] Update store offset when not packetizing it with allocframe
Krzysztof Parzyszek [Tue, 26 Jul 2016 14:24:46 +0000 (14:24 +0000)]
[Hexagon] Update store offset when not packetizing it with allocframe

When the packetizer wants to put a store to a stack slot in the same
packet with an allocframe, it updates the store offset to reflect the
value of SP before it is updated by allocframe. If the store cannot
be packetized with the allocframe after all, the offset needs to be
updated back to the previous value.

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

8 years ago[ARM] Improve error messages for .arch_extension directive
Oliver Stannard [Tue, 26 Jul 2016 14:24:43 +0000 (14:24 +0000)]
[ARM] Improve error messages for .arch_extension directive

- More informative message when extension name is not an identifier token.
- Stop parsing directive if extension is unknown (avoid duplicate error
  messages).
- Report unsupported extensions with a source location, rather than
  report_fatal_error.

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

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

8 years ago[ARM] Implement -mimplicit-it assembler option
Oliver Stannard [Tue, 26 Jul 2016 14:19:47 +0000 (14:19 +0000)]
[ARM] Implement -mimplicit-it assembler option

This option, compatible with gas's -mimplicit-it, controls the
generation/checking of implicit IT blocks in ARM/Thumb assembly.

This option allows two behaviours that were not possible before:
- When in ARM mode, emit a warning when assembling a conditional
  instruction that is not in an IT block. This is enabled with
  -mimplicit-it=never and -mimplicit-it=thumb.
- When in Thumb mode, automatically generate IT instructions when an
  instruction with a condition code appears outside of an IT block. This
  is enabled with -mimplicit-it=thumb and -mimplicit-it=always.

The default option is -mimplicit-it=arm, which matches the existing
behaviour (allow conditional ARM instructions outside IT blocks without
warning, and error if a conditional Thumb instruction is outside an IT
block).

The general strategy for generating IT blocks in Thumb mode is to keep a
small list of instructions which should be in the IT block, and only
emit them when we encounter something in the input which means we cannot
continue the block.  This could be caused by:
- A non-predicable instruction
- An instruction with a condition not compatible with the IT block
- The IT block already contains 4 instructions
- A branch-like instruction (including ALU instructions with the PC as
  the destination), which cannot appear in the middle of an IT block
- A label (branching into an IT block is not legal)
- A change of section, architecture, ISA, etc
- The end of the assembly file.

Some of these, such as change of section and end of file, are parsed
outside of the ARM asm parser, so I've added a new virtual function to
AsmParser to ensure any previously-parsed instructions have been
emitted. The ARM implementation of this flushes the currently pending IT
block.

We now have to try instruction matching up to 3 times, because we cannot
know if the current IT block is valid before matching, and instruction
matching changes depending on the IT block state (due to the 16-bit ALU
instructions, which set the flags iff not in an IT block). In the common
case of not having an open implicit IT block and the instruction being
matched not needing one, we still only have to run the matcher once.

I've removed the ITState.FirstCond variable, because it does not store
any information that isn't already represented by CurPosition. I've also
updated the comment on CurPosition to accurately describe it's meaning
(which this patch doesn't change).

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

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

8 years ago[lit] Document the 'available_features' member of the config object.
Daniel Sanders [Tue, 26 Jul 2016 13:23:27 +0000 (13:23 +0000)]
[lit] Document the 'available_features' member of the config object.

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

8 years ago[X86][SSE] Added extra memory folding tests for cvtsd2ss intrinsic
Simon Pilgrim [Tue, 26 Jul 2016 12:44:50 +0000 (12:44 +0000)]
[X86][SSE] Added extra memory folding tests for cvtsd2ss intrinsic

SSE only fold partial reg update instructions when optsize is enabled

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

8 years ago[X86][SSE] Fixed issue with memory folding of (v)cvtsd2ss intrinsics
Simon Pilgrim [Tue, 26 Jul 2016 10:41:28 +0000 (10:41 +0000)]
[X86][SSE] Fixed issue with memory folding of (v)cvtsd2ss intrinsics

Fixed typo in the intrinsic definitions of (v)cvtsd2ss with memory folding.

This was only unearthed when rL276102 started using the intrinsic again.....

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

8 years ago[mips] MIPS64R6 compact branch support
Simon Dardis [Tue, 26 Jul 2016 10:25:07 +0000 (10:25 +0000)]
[mips] MIPS64R6 compact branch support

MIPS64R6 compact branch support. As the MIPS LLVM backend uses distinct
MachineInstrs for certain 32 and 64 bit instructions (e.g. BEQ & BEQ64) that
map to the same instruction, extend compact branch support for the
corresponding 64bit branches.

Reviewers: dsanders

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

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

8 years agoFixed spelling in comment
Simon Pilgrim [Tue, 26 Jul 2016 09:55:31 +0000 (09:55 +0000)]
Fixed spelling in comment

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

8 years ago[tblgen] Compare const char * with strcmp instead of creating StringRef.
Benjamin Kramer [Tue, 26 Jul 2016 09:27:51 +0000 (09:27 +0000)]
[tblgen] Compare const char * with strcmp instead of creating StringRef.

Avoids a call to strlen on both strings which always reads the entire
string. strcmp can use early exit.

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

8 years ago[mips] sgtu, s[rl]l, sra, dnegu, neg instruction aliases
Simon Dardis [Tue, 26 Jul 2016 09:13:46 +0000 (09:13 +0000)]
[mips] sgtu, s[rl]l, sra, dnegu, neg instruction aliases

Add the instruction alias sgtu (register form only), two operand forms of
s[rl]l and sra, and missing single/two operand forms of dnegu/neg.

Reviewers: dsanders

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

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

8 years ago[X86] Remove isCommutable=1 from instructions that also load. Commuting such instruct...
Craig Topper [Tue, 26 Jul 2016 08:06:18 +0000 (08:06 +0000)]
[X86] Remove isCommutable=1 from instructions that also load. Commuting such instruction isn't useful as it would unfold the load. The exception being FMA3 instructions.

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

8 years ago[AVX512] Don't mark ADDSSZr_Int or MULSSZr_Int as commutable. The intrinsics have...
Craig Topper [Tue, 26 Jul 2016 08:06:14 +0000 (08:06 +0000)]
[AVX512] Don't mark ADDSSZr_Int or MULSSZr_Int as commutable. The intrinsics have one of their arguments indicated as passing through the high bits and we can't commute that.

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

8 years agoRemove obsolete XFAIL for a test that used to sometimes miscompile under
Dimitry Andric [Tue, 26 Jul 2016 06:49:14 +0000 (06:49 +0000)]
Remove obsolete XFAIL for a test that used to sometimes miscompile under
FreeBSD with gcc 4.2.1, a long time ago (see r113824).  Noticed by Pete
Cooper.

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

8 years agoReapply: [InstSimplify] Add support for bitcasts"
David Majnemer [Tue, 26 Jul 2016 05:52:29 +0000 (05:52 +0000)]
Reapply: [InstSimplify] Add support for bitcasts"

This reverts commit r276700 and reapplies r276698.
The relevant clang tests have been updated.

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

8 years agoPropery format doccomment in lto.h . NFC
Amaury Sechet [Tue, 26 Jul 2016 04:20:30 +0000 (04:20 +0000)]
Propery format doccomment in lto.h . NFC

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

8 years agoLiveIntervalAnalysis: Fix handleMoveDown() problem
Matthias Braun [Tue, 26 Jul 2016 03:57:45 +0000 (03:57 +0000)]
LiveIntervalAnalysis: Fix handleMoveDown() problem

If we move a last-use register read to a later position we may skip
intermediate segments. This may require us to not only extend the
segment before the NewIdx, but also extend the segment live-in to
OldIdx.

This switches LiveIntervalTest to use AMDGPU so we can test subregister
liveness.

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

8 years agoGlobalISel: remove redundant ';'s. NFC
Tim Northover [Tue, 26 Jul 2016 03:29:18 +0000 (03:29 +0000)]
GlobalISel: remove redundant ';'s. NFC

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

8 years ago[CMake] Updating Xcode Toolchain creation to support Xcode 7
Chris Bieneman [Tue, 26 Jul 2016 00:47:52 +0000 (00:47 +0000)]
[CMake] Updating Xcode Toolchain creation to support Xcode 7

Recent changes to Xcode have changed the structure of Xcode toolchains. This patch makes the xcode-toolchain goop construct a new-format Xcode toolchain that is compatible with Xcode 7.

The new format has a compatibility version key, so when a new format comes out we can support multiple formats in parallel.

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

8 years agoGVN-hoist: use a DFS numbering of instructions (PR28670)
Sebastian Pop [Tue, 26 Jul 2016 00:15:10 +0000 (00:15 +0000)]
GVN-hoist: use a DFS numbering of instructions (PR28670)

Instead of DFS numbering basic blocks we now DFS number instructions that avoids
the costly operation of which instruction comes first in a basic block.

Patch mostly written by Daniel Berlin.

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

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

8 years agoGVN-hoist: limit hoisting depth (PR28670)
Sebastian Pop [Tue, 26 Jul 2016 00:15:08 +0000 (00:15 +0000)]
GVN-hoist: limit hoisting depth (PR28670)

This patch adds an option to specify the maximum depth in a BB at which to
consider hoisting instructions.  Hoisting instructions from a deeper level is
not profitable as it increases register pressure and compilation time.

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

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

8 years ago[safestack] Fix stack guard live range.
Evgeniy Stepanov [Tue, 26 Jul 2016 00:05:14 +0000 (00:05 +0000)]
[safestack] Fix stack guard live range.

Stack guard slot is live throughout the function.

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

8 years ago[CMake] Support feeding DYLD_LIBRARY_PATH into archiver calls
Chris Bieneman [Mon, 25 Jul 2016 23:46:08 +0000 (23:46 +0000)]
[CMake] Support feeding DYLD_LIBRARY_PATH into archiver calls

OS X 10.11 has a feature named System Integrity Protection. The goal of the feature is to make system binaries immutable (even as root). One part of this is that protected binaries do not receive DYLD_* environment variables because the kernel scrubs them before process launch.

This causes problems for LTO bootstrap builds on Darwin that try to use the just-built libLTO with the host ar, ranlib, or libtool.

This patch addresses two problems.

(1) The tools themselves aren't protected binaries but the shim tools installed at / are, so we need to call xcrun -find to find libtool instead of using the one CMake finds.

(2) Some build tools (ninja and make) use /bin/sh to invoke their subprocesses. Since /bin/sh is a system binary, the kernel scrubs the DYLD envars from their environment. To work around this we need to set the environment variables as part of the archiver commands, so the envars are set by the shell process instead of on the shell process.

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

8 years ago[lit] Don't match tool names within new PM's <> markers
Adam Nemet [Mon, 25 Jul 2016 23:09:10 +0000 (23:09 +0000)]
[lit] Don't match tool names within new PM's <> markers

For example, stop expanding 'opt' in -passes='require<opt-remark-emit>'.

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

8 years agoAttempt to pacify windows bots, again.
Michael Kuperstein [Mon, 25 Jul 2016 22:29:04 +0000 (22:29 +0000)]
Attempt to pacify windows bots, again.

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

8 years ago[ARM] Saturation instructions are DSP-only
Renato Golin [Mon, 25 Jul 2016 22:25:25 +0000 (22:25 +0000)]
[ARM] Saturation instructions are DSP-only

The saturation instructions appeared in v6T2, with DSP extensions, but they
were being accepted / generated on any, with the new introduction of the
saturation detection in the back-end. This commit restricts the usage to
DSP-enable only cores.

Fixes PR28607.

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

8 years agoRevert "[InstSimplify] Add support for bitcasts"
David Majnemer [Mon, 25 Jul 2016 22:24:59 +0000 (22:24 +0000)]
Revert "[InstSimplify] Add support for bitcasts"

This reverts commit r276698.  Clang has tests which rely on the
optimizer :(

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

8 years ago[InstSimplify] Add support for bitcasts
David Majnemer [Mon, 25 Jul 2016 22:04:58 +0000 (22:04 +0000)]
[InstSimplify] Add support for bitcasts

BitCasts of BitCasts can be folded away as can BitCasts which don't
change the type of the operand.

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

8 years ago[WebAssembly] Update for Target API (TargetRegistry::RegisterMCAsmBackend) change
David Blaikie [Mon, 25 Jul 2016 21:41:42 +0000 (21:41 +0000)]
[WebAssembly] Update for Target API (TargetRegistry::RegisterMCAsmBackend) change

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

8 years ago[X86] Regenerate v2i256 shift legalization tests
Simon Pilgrim [Mon, 25 Jul 2016 21:14:22 +0000 (21:14 +0000)]
[X86] Regenerate v2i256 shift legalization tests

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

8 years ago[X86] Regenerate i64 shift legalization tests
Simon Pilgrim [Mon, 25 Jul 2016 21:11:45 +0000 (21:11 +0000)]
[X86] Regenerate i64 shift legalization tests

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

8 years agoGlobalISel: add generic casts to IRTranslator
Tim Northover [Mon, 25 Jul 2016 21:01:29 +0000 (21:01 +0000)]
GlobalISel: add generic casts to IRTranslator

This adds LLVM's 3 main cast instructions (inttoptr, ptrtoint, bitcast) to the
IRTranslator. The first two are direct translations (with 2 MachineInstr types
each). Since LLT discards information, a bitcast might become trivial and we
emit a COPY in those cases instead.

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

8 years agoGlobalISel[AArch64]: support pointer types in argument lowering.
Tim Northover [Mon, 25 Jul 2016 21:01:17 +0000 (21:01 +0000)]
GlobalISel[AArch64]: support pointer types in argument lowering.

They're basically i64 for AArch64, but we'll leave them intact for stranger
targets. Also add some tests for the (very few) other cases we can handle right
now.

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

8 years ago[PM] Port SymbolRewriter to the new PM
Michael Kuperstein [Mon, 25 Jul 2016 20:52:00 +0000 (20:52 +0000)]
[PM] Port SymbolRewriter to the new PM

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

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

8 years agoNext step along the way to getting good error messages for bad archives.
Kevin Enderby [Mon, 25 Jul 2016 20:36:36 +0000 (20:36 +0000)]
Next step along the way to getting good error messages for bad archives.

I consulted with Lang Hames on this work, and the goal was to add a bit
of "where" in the archive the error occurred along with what the error was.

So this step changes ArchiveMemberHeader into a class with a pointer
to the archive header and the parent archive.  Which allows the methods
in the ArchiveMemberHeader to determine which member the header is
for to include that information in the error message.

For this first step the "where" is just the offset to the member in the
archive.  The next step will be a new method on ArchiveMemberHeader
to get the full name, if possible, to be use in the error message.  Which
will now be possible as ArchiveMemberHeader contains a pointer to
the Archive with its string table and its size, etc. so the full name can
be determined from the header if it is valid.

Also this change adds the missing checks the archive header is actually
contained in the buffer and is not truncated, as well as if the terminating
characters are correct in the header.

And changes one error message in Archive::Child::getNext() where the
name or offset to member is now added.

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

8 years agoFix r276671 to not use a defaulted move constructor.
Jordan Rose [Mon, 25 Jul 2016 20:34:25 +0000 (20:34 +0000)]
Fix r276671 to not use a defaulted move constructor.

MSVC won't provide the body of this move constructor and assignment
operator, possibly because the copy constructor is banned. Just write
it manually.

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

8 years agoAMDGPU: Remove read_workdim intrinsic
Jan Vesely [Mon, 25 Jul 2016 20:17:02 +0000 (20:17 +0000)]
AMDGPU: Remove read_workdim intrinsic

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

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

8 years agoScalarizer: Support scalarizing intrinsics
Matt Arsenault [Mon, 25 Jul 2016 20:02:54 +0000 (20:02 +0000)]
Scalarizer: Support scalarizing intrinsics

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

8 years agoAMDGPU: Make skip threshold an option
Matt Arsenault [Mon, 25 Jul 2016 19:48:29 +0000 (19:48 +0000)]
AMDGPU: Make skip threshold an option

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

8 years agoAMDGPU: Fix missing verify-machineinstrs in control flow test
Matt Arsenault [Mon, 25 Jul 2016 19:39:06 +0000 (19:39 +0000)]
AMDGPU: Fix missing verify-machineinstrs in control flow test

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

8 years agoLiveIntervals: Return index from replaceMachineInstrInMaps
Matt Arsenault [Mon, 25 Jul 2016 19:39:04 +0000 (19:39 +0000)]
LiveIntervals: Return index from replaceMachineInstrInMaps

Fixes weird asymmetry with insertion

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

8 years agoMachineVerifier: Fix printing nonsense for physical registers
Matt Arsenault [Mon, 25 Jul 2016 19:39:01 +0000 (19:39 +0000)]
MachineVerifier: Fix printing nonsense for physical registers

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

8 years agoFix invalid iterator use in safestack coloring.
Evgeniy Stepanov [Mon, 25 Jul 2016 19:25:40 +0000 (19:25 +0000)]
Fix invalid iterator use in safestack coloring.

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

8 years agoAMDGPU: Delete dead code
Matt Arsenault [Mon, 25 Jul 2016 19:06:25 +0000 (19:06 +0000)]
AMDGPU: Delete dead code

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

8 years ago[PGO] Fix profile mismatch in COMDAT function with pre-inliner
Rong Xu [Mon, 25 Jul 2016 18:45:37 +0000 (18:45 +0000)]
[PGO] Fix profile mismatch in COMDAT function with pre-inliner

Pre-instrumentation inline (pre-inliner) greatly improves the IR
instrumentation code performance, among other benefits. One issue of the
pre-inliner is it can introduce CFG-mismatch for COMDAT functions. This
is due to the fact that the same COMDAT function may have different early
inline decisions across different modules -- that means different copies
of COMDAT functions will have different CFG checksum.

In this patch, we propose a partially renaming the COMDAT group and its
member function/variable so we have different profile counter for each
version. We will post-fix the COMDAT function and the group name with its
FunctionHash.

Differential Revision: http://reviews.llvm.org/D22600

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

8 years agoAttempt to pacify windows bots.
Michael Kuperstein [Mon, 25 Jul 2016 18:39:08 +0000 (18:39 +0000)]
Attempt to pacify windows bots.

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