James Molloy [Mon, 9 Nov 2015 14:32:05 +0000 (14:32 +0000)]
[LoopVectorize] Address post-commit feedback on r250032
Implemented as many of Michael's suggestions as were possible:
* clang-format the added code while it is still fresh.
* tried to change Value* to Instruction* in many places in computeMinimumValueSizes - unfortunately there are several places where Constants need to be handled so this wasn't possible.
* Reduce the pass list on loop-vectorization-factors.ll.
* Fix a bug where we were querying MinBWs for I->getOperand(0) but using MinBWs[I].
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252469
91177308-0d34-0410-b5e6-
96231b3b80d8
Silviu Baranga [Mon, 9 Nov 2015 13:26:09 +0000 (13:26 +0000)]
Allow LLE/LD and the loop versioning infrastructure to use SCEV predicates
Summary:
LAA currently generates a set of SCEV predicates that must be checked by users.
In the case of Loop Distribute/Loop Load Elimination, no such predicates could have
been emitted, since we don't allow stride versioning. However, in the future there
could be SCEV predicates that will need to be checked.
This change adds support for SCEV predicate versioning in the Loop Distribute, Loop
Load Eliminate and the loop versioning infrastructure.
Reviewers: anemet
Subscribers: mssimpso, sanjoy, llvm-commits
Differential Revision: http://reviews.llvm.org/D14240
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252467
91177308-0d34-0410-b5e6-
96231b3b80d8
Charlie Turner [Mon, 9 Nov 2015 13:10:52 +0000 (13:10 +0000)]
[AArch64] Add UABDL patterns for log2 shuffle.
Summary:
This matches the sum-of-absdiff patterns emitted by the vectoriser using log2 shuffles.
Relies on D14207 to be able to match the `extract_subvector(..., 0)`
Reviewers: t.p.northover, jmolloy
Subscribers: aemerson, llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D14208
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252465
91177308-0d34-0410-b5e6-
96231b3b80d8
Charlie Turner [Mon, 9 Nov 2015 12:45:11 +0000 (12:45 +0000)]
[AArch64] Handle extract_subvector(..., 0) in ISel.
Summary:
Lowering this pattern early to an `EXTRACT_SUBREG` was making it impossible to match larger patterns in tblgen that use `extract_subvector(..., 0)` as part of the their input pattern.
It seems like there will exist somewhere a better way of specifying this pattern over all relevant register value types, but I didn't manage to find it.
Reviewers: t.p.northover, jmolloy
Subscribers: aemerson, llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D14207
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252464
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Mon, 9 Nov 2015 12:40:30 +0000 (12:40 +0000)]
[EABI] Add LLVM support for -meabi flag
"GCC requires the freestanding environment provide memcpy, memmove, memset
and memcmp": https://gcc.gnu.org/onlinedocs/gcc-5.2.0/gcc/Standards.html
Hence in GNUEABI targets LLVM should not convert 'memops' to their equivalent
'__aeabi_memops'. This convertion violates GCC contract.
The -meabi flag controls whether or not LLVM will modify 'memops' in GNUEABI
targets.
Without -meabi: use the triple default EABI.
With -meabi=default: use the triple default EABI.
With -meabi=gnu: use 'memops'.
With -meabi=4 or -meabi=5: use '__aeabi_memops'.
With -meabi set to an unknown value: same as -meabi=default.
Patch by Vinicius Tinti.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252462
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Mon, 9 Nov 2015 12:19:10 +0000 (12:19 +0000)]
Revert "[ARM] Combine CMOV into BFI where possible"
This reverts commit r252057, as it broke ARM self-hosting buildbots, probably
due to a code-gen fault.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252460
91177308-0d34-0410-b5e6-
96231b3b80d8
Oliver Stannard [Mon, 9 Nov 2015 11:03:18 +0000 (11:03 +0000)]
[CodeGen] Always promote f16 if not legal
We don't currently have any runtime library functions for operations on
f16 values (other than conversions to and from f32 and f64), so we
should always promote it to f32, even if that is not a legal type. In
that case, the f32 values would be softened to f32 library calls.
SoftenFloatRes_FP_EXTEND now needs to check the promoted operand's type,
as it may ne a no-op or require a different library call.
getCopyFromParts and getCopyToParts now need to cope with a
floating-point value stored in a larger integer part, as is the case for
any target that needs to store an f16 value in a 32-bit integer
register.
Differential Revision: http://reviews.llvm.org/D12856
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252459
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 9 Nov 2015 07:10:24 +0000 (07:10 +0000)]
[Hexagon] Adding override to methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252453
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 9 Nov 2015 06:15:55 +0000 (06:15 +0000)]
[Hexagon] Removing XFAIL on Hexagon target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252450
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 9 Nov 2015 05:47:56 +0000 (05:47 +0000)]
[Hexagon] Fixing warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252448
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 9 Nov 2015 05:31:39 +0000 (05:31 +0000)]
[Hexagon] Removing extra gen line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252447
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 9 Nov 2015 05:16:08 +0000 (05:16 +0000)]
[Hexagon] Maybe the makefile?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252446
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 9 Nov 2015 04:31:02 +0000 (04:31 +0000)]
[Hexagon] Adding LLVMBuild.txt reference to HexagonAsmParser.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252444
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 9 Nov 2015 04:07:48 +0000 (04:07 +0000)]
[Hexagon] Enabling ASM parsing on Hexagon backend and adding instruction parsing tests. General updating of the code emission.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252443
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Mon, 9 Nov 2015 02:46:41 +0000 (02:46 +0000)]
Add a method to the BitcodeReader to parse only the identification block
Summary: Mimic parseTriple(); and exposes it to LTOModule.cpp
Reviewers: dexonsmith, rafael
Subscribers: llvm-commits
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252442
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 9 Nov 2015 00:46:46 +0000 (00:46 +0000)]
[AsmParser] Generalize matching for grammars without mnemonic-lead statements
Differential Revision: http://reviews.llvm.org/D14257
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252440
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 9 Nov 2015 00:31:07 +0000 (00:31 +0000)]
[AsmParser] Backends can parameterize ASM tokenization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252439
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 9 Nov 2015 00:15:45 +0000 (00:15 +0000)]
[AsmParser] Provide target direct access to mnemonic token. Allow assignment parsing to be hooked by target. Allow target to specify if identifier is a label.
Differential Revision: http://reviews.llvm.org/D14255
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252435
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Mon, 9 Nov 2015 00:01:22 +0000 (00:01 +0000)]
[PGO] Instr func name var creation code refactoring
Move the code from cfe to LLMV and become shared interfaces.
There is no functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252433
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Sun, 8 Nov 2015 23:48:23 +0000 (23:48 +0000)]
[AsmParser] Allow tokens to be put back in to the token stream.
Differential Revision: http://reviews.llvm.org/D14252
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252432
91177308-0d34-0410-b5e6-
96231b3b80d8
Maksim Panchenko [Sun, 8 Nov 2015 19:34:17 +0000 (19:34 +0000)]
[RuntimeDyld] Add support for R_X86_64_PC8 relocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252423
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sun, 8 Nov 2015 09:45:06 +0000 (09:45 +0000)]
Appease hosts without HAVE_BACKTRACE nor ENABLE_BACKTRACES.
llvm/lib/Support/Signals.cpp:66:13: warning: unused function 'printSymbolizedStackTrace' [-Wunused-function]
llvm/lib/Support/Signals.cpp:52:13: warning: function 'findModulesAndOffsets' has internal linkage but is not defined [-Wundefined-internal]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252418
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Sun, 8 Nov 2015 08:04:40 +0000 (08:04 +0000)]
[PowerPC] Fix LoopPreIncPrep not to depend on SCEV constant simplifications
Under most circumstances, if SCEV can simplify X-Y to a constant, then it can
also simplify Y-X to a constant. However, there is no guarantee that this is
always true, and concensus is not to consider that a correctness bug in SCEV
(although it is undesirable).
PPCLoopPreIncPrep gathers pointers used to access memory (via loads, stores and
prefetches) into buckets, where in each bucket the relative pointer offsets are
constant. We used to keep each bucket as a multimap, where SCEV's subtraction
operation was used to define the ordering predicate. Instead, use a fixed SCEV
base expression for each bucket, record the constant offsets from that base
expression, and adjust it later, if desirable, once all pointers have been
collected.
Doing it this way should be more compile-time efficient than the previous
scheme (in addition to making the implementation less sensitive to SCEV
simplification quirks).
Fixes PR25170.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252417
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sun, 8 Nov 2015 05:04:07 +0000 (05:04 +0000)]
[LoopStrengthReduce] Don't bother fixing up PHIs from EH Pad preds
We cannot really insert fixup code into a PHI's predecessor.
This fixes PR25445.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252416
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sun, 8 Nov 2015 04:16:12 +0000 (04:16 +0000)]
Make bugpoint ehpad/token friendly
Tokens shouldn't be blindly replaced with undef/null. Also, don't try
to remove EH pad instructions from the top of basic blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252414
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sun, 8 Nov 2015 02:36:00 +0000 (02:36 +0000)]
[WinEH] Update PHIs of CATCHRET successors
The TailDuplication machine pass ran across a malformed CFG: a PHI node
referred it's predecessor's predecessor instead of it's predecessor.
This occurred because we split the edge in X86ISelLowering when we
processed the CATCHRET but forgot to do something about the PHI nodes.
This fixes PR25444.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252413
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaron Keren [Sat, 7 Nov 2015 10:21:25 +0000 (10:21 +0000)]
Erase unused FunctionDIs variables after r252219.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252401
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Sat, 7 Nov 2015 02:48:49 +0000 (02:48 +0000)]
[Bitcode] Add enums for call instruction markers and flags. NFC.
This commit adds enums in LLVMBitCodes.h to improve readability and
maintainability. This is a follow-up to r252368 which was discussed
here:
http://reviews.llvm.org/D12923
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252395
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Sat, 7 Nov 2015 02:47:31 +0000 (02:47 +0000)]
Try to fix build more -- like r252392 but for WebAssembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252394
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Sat, 7 Nov 2015 02:26:53 +0000 (02:26 +0000)]
Unbreak the build
My code clashed with some ilist iterator changes upstream. Fix by
adding an explicit "&*" coercion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252392
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Sat, 7 Nov 2015 01:56:07 +0000 (01:56 +0000)]
[FunctionAttrs] Add comment and clarify assertion message; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252389
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Sat, 7 Nov 2015 01:56:04 +0000 (01:56 +0000)]
[OperandBundles] Rename accessor, NFC
Rename getOperandBundle to getOperandBundleAt since that's more obvious.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252388
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Sat, 7 Nov 2015 01:56:00 +0000 (01:56 +0000)]
[FunctionAttrs] Add handling for operand bundles
Summary:
Teach the FunctionAttrs to do the right thing for IR with operand
bundles.
Reviewers: reames, chandlerc
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14408
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252387
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Sat, 7 Nov 2015 01:55:53 +0000 (01:55 +0000)]
[FunctionAttrs] Fix an iterator wraparound bug
Summary:
This change fixes an iterator wraparound bug in
`determinePointerReadAttrs`.
Ideally, ++'ing off the `end()` of an iplist should result in a failed
assert, but currently iplist seems to silently wrap to the head of the
list on `end()++`. This is why the bad behavior is difficult to
demonstrate.
Reviewers: chandlerc, reames
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14350
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252386
91177308-0d34-0410-b5e6-
96231b3b80d8
Joseph Tremoulet [Sat, 7 Nov 2015 01:11:31 +0000 (01:11 +0000)]
[WinEH] Update exception pointer registers
Summary:
The CLR's personality routine passes these in rdx/edx, not rax/eax.
Make getExceptionPointerRegister a virtual method parameterized by
personality function to allow making this distinction.
Similarly make getExceptionSelectorRegister a virtual method parameterized
by personality function, for symmetry.
Reviewers: pgavlin, majnemer, rnk
Subscribers: jyknight, dsanders, llvm-commits
Differential Revision: http://reviews.llvm.org/D14344
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252383
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Sat, 7 Nov 2015 00:59:29 +0000 (00:59 +0000)]
Reapply "ADT: Require explicit ilist iterator/pointer conversions"
This reverts commit r252373, reapplying r252372 now that I've updated
clang-tools-extra. Original commit message follows.
ADT: Require explicit ilist iterator/pointer conversions
Disallow implicit conversions between ilist iterators and element
points. Explicit conversions still work of course.
This is the first step toward removing the undefined behaviour in
`ilist` and `iplist`:
http://lists.llvm.org/pipermail/llvm-dev/2015-October/091115.html
The motivation for removing the implicit iterators is that I came across
real bugs (that were *really* getting lucky). More details and some
brief discussion later in that thread:
http://lists.llvm.org/pipermail/llvm-dev/2015-October/091617.html
Note: if you have out-of-tree code, it should be fairly easy to revert
this patch downstream while you update your out-of-tree call sites.
Note that these conversions are occasionally latent bugs (that may
happen to "work" now, but only because of getting lucky with UB;
follow-ups will change your luck). When they are valid, I suggest using
`->getIterator()` to go from pointer to iterator, and `&*` to go from
iterator to pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252380
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Sat, 7 Nov 2015 00:55:46 +0000 (00:55 +0000)]
examples: Remove implicit ilist iterator conversions, NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252379
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sat, 7 Nov 2015 00:52:53 +0000 (00:52 +0000)]
[InstCombine] Teach FoldPHIArgZextsIntoPHI about EHPads
FoldPHIArgZextsIntoPHI cannot insert an instruction after the PHI if
there is an EHPad in the BB. Doing so would result in an instruction
inserted after a terminator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252377
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Sat, 7 Nov 2015 00:09:14 +0000 (00:09 +0000)]
Revert "ADT: Require explicit ilist iterator/pointer conversions"
This reverts commit r252372. Apparently I missed clang-tools-extra.
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/2534/steps/build/logs/stdio
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252373
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Sat, 7 Nov 2015 00:02:32 +0000 (00:02 +0000)]
ADT: Require explicit ilist iterator/pointer conversions
Disallow implicit conversions between ilist iterators and element
points. Explicit conversions still work of course.
This is the first step toward removing the undefined behaviour in
`ilist` and `iplist`:
http://lists.llvm.org/pipermail/llvm-dev/2015-October/091115.html
The motivation for removing the implicit iterators is that I came across
real bugs (that were *really* getting lucky). More details and some
brief discussion later in that thread:
http://lists.llvm.org/pipermail/llvm-dev/2015-October/091617.html
Note: if you have out-of-tree code, it should be fairly easy to revert
this patch downstream while you update your out-of-tree call sites.
Note that these conversions are occasionally latent bugs (that may
happen to "work" now, but only because of getting lucky with UB;
follow-ups will change your luck). When they are valid, I suggest using
`->getIterator()` to go from pointer to iterator, and `&*` to go from
iterator to pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252372
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Sat, 7 Nov 2015 00:01:16 +0000 (00:01 +0000)]
ADT: Remove last implicit ilist iterator conversions, NFC
Some implicit ilist iterator conversions have crept back into Analysis,
Transforms, Hexagon, and llvm-stress. This removes them.
I'll commit a patch immediately after this to disallow them (in a
separate patch so that it's easy to revert if necessary).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252371
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 6 Nov 2015 23:59:23 +0000 (23:59 +0000)]
[InstCombine] Don't insert an instruction after a terminator
We tried to insert a cast of a phi in a block whose terminator is an
EHPad. This is invalid. Do not attempt the transform in these
circumstances.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252370
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 6 Nov 2015 23:55:38 +0000 (23:55 +0000)]
Add 'notail' marker for call instructions.
This marker prevents optimization passes from adding 'tail' or
'musttail' markers to a call. Is is used to prevent tail call
optimization from being performed on the call.
rdar://problem/
22667622
Differential Revision: http://reviews.llvm.org/D12923
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252368
91177308-0d34-0410-b5e6-
96231b3b80d8
Pawel Bylica [Fri, 6 Nov 2015 23:44:23 +0000 (23:44 +0000)]
Revert r252366: [Support] Use GetTempDir to get the temporary dir path on Windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252367
91177308-0d34-0410-b5e6-
96231b3b80d8
Pawel Bylica [Fri, 6 Nov 2015 23:21:49 +0000 (23:21 +0000)]
[Support] Use GetTempDir to get the temporary dir path on Windows.
Summary:
In general GetTempDir follows the same logic as the replaced code: checks env variables TMP, TEMP, USERPROFILE in order. However, it also perform other checks like making separators native (\), making the path absolute, etc.
This change fixes FileSystemTest.CreateDir unittest that had been failing when run from Unix-like shell on Windows (Unix-like path separator (/) used in env variables).
Reviewers: chapuni, rafael, aaron.ballman
Subscribers: rafael, llvm-commits
Differential Revision: http://reviews.llvm.org/D14231
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252366
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 6 Nov 2015 23:16:53 +0000 (23:16 +0000)]
[AArch64][FastISel] Don't even try to select vector icmps.
We used to try to constant-fold them to i32 immediates.
Given that fast-isel doesn't otherwise support vNi1, when selecting
the result users, we'd fallback to SDAG anyway.
However, if the users were in another block, we'd insert broken
cross-class copies (GPR32 to FPR64).
Give up, let SDAG agree with itself on a vNi1 legalization strategy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252364
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 6 Nov 2015 23:16:48 +0000 (23:16 +0000)]
[X86] Fold (trunc (i32 (zextload i16))) into vbroadcast.
When matching non-LSB-extracting truncating broadcasts, we now insert
the necessary SRL. If the scalar resulted from a load, the SRL will be
folded into it, creating a narrower, offset, load.
However, i16 loads aren't Desirable, so we get i16->i32 zextloads.
We already catch i16 aextloads; catch these as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252363
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 6 Nov 2015 23:16:43 +0000 (23:16 +0000)]
[X86] SRL non-LSB extracts when folding to truncating broadcasts.
Now that we recognize this, we can support it instead of bailing out.
That is, we can fold:
(v8i16 (shufflevector
(v8i16 (bitcast (v4i32 (build_vector X, Y, ...)))),
<1,1,...,1>))
into:
(v8i16 (vbroadcast (i16 (trunc (srl Y, 16)))))
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252362
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 6 Nov 2015 23:16:38 +0000 (23:16 +0000)]
[X86] Don't fold non-LSB extracts into truncating broadcasts.
We used to incorrectly assume that the offset we're extracting from
was a multiple of the element size. So, we'd fold:
(v8i16 (shufflevector
(v8i16 (bitcast (v4i32 (build_vector X, Y, ...)))),
<1,1,...,1>))
into:
(v8i16 (vbroadcast (i16 (trunc Y))))
whereas we should have extracted the higher bits from X.
Instead, bail out if the assumption doesn't hold.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252361
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 6 Nov 2015 21:58:37 +0000 (21:58 +0000)]
DAGCombiner: Check shouldReduceLoadWidth before combining (and (load), x) -> extload
Reviewers: resistor, arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D13805
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252349
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 6 Nov 2015 21:32:42 +0000 (21:32 +0000)]
[WebAssembly] Use more explicit types in testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252345
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 6 Nov 2015 21:26:50 +0000 (21:26 +0000)]
[WebAssembly] Add more explicit pushes to the tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252344
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 6 Nov 2015 21:26:32 +0000 (21:26 +0000)]
[InstCombine] Don't RAUW tokens with undef
Let SimplifyCFG remove unreachable BBs which define token instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252343
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Fri, 6 Nov 2015 21:05:07 +0000 (21:05 +0000)]
[SimplifyLibCalls] Don't hardcode the function name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252342
91177308-0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Fri, 6 Nov 2015 21:00:13 +0000 (21:00 +0000)]
[ShrinkWrapping] Teach shrink-wrapping how to analyze RegMask.
Previously we were conservatively assuming that RegMask operands clobber
callee saved registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252341
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 6 Nov 2015 20:59:02 +0000 (20:59 +0000)]
MachineScheduler: Add regpressure information to debug dump
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252340
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 6 Nov 2015 20:56:18 +0000 (20:56 +0000)]
AMDGPU/SI: Refactor VOP[12C] tablegen definitions
Summary:
Pass the VOPProfile object all the through to *_m multiclasses. This will
allow us to do more simplifications in the future.
Reviewers: arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D13437
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252339
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Fri, 6 Nov 2015 20:17:51 +0000 (20:17 +0000)]
Fix SLPVectorizer commutativity reordering
The SLPVectorizer had a very crude way of trying to benefit
from associativity: it tried to optimize for splat/broadcast
or in order to have the same operator on the same side.
This is benefitial to the cost model and allows more vectorization
to occur.
This patch improve the logic and make the detection optimal (locally,
we don't look at the full tree but only at the immediate children).
Should fix https://llvm.org/bugs/show_bug.cgi?id=25247
Reviewers: mzolotukhin
Differential Revision: http://reviews.llvm.org/D13996
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252337
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Fri, 6 Nov 2015 19:47:25 +0000 (19:47 +0000)]
Improved the operands commute transformation for X86-FMA3 instructions.
All 3 operands of FMA3 instructions are commutable now.
Patch by Slava Klochkov
Reviewers: Quentin Colombet(qcolombet), Ahmed Bougacha(ab).
Differential Revision: http://reviews.llvm.org/D13269
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252335
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 6 Nov 2015 19:45:01 +0000 (19:45 +0000)]
[WebAssembly] Make expression-stack pushing explicit
Modelling of the expression stack is evolving. This patch takes another
step by making pushes explicit.
Differential Revision: http://reviews.llvm.org/D14338
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252334
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 6 Nov 2015 19:01:08 +0000 (19:01 +0000)]
[ValueTracking] Add parameters to isImpliedCondition; NFC
Summary:
This change makes the `isImpliedCondition` interface similar to the rest
of the functions in ValueTracking (in that it takes a DataLayout,
AssumptionCache etc.). This is an NFC, intended to make a later diff
less noisy.
Depends on D14369
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14391
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252333
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 6 Nov 2015 19:01:03 +0000 (19:01 +0000)]
[ValueTracking] De-pessimize isImpliedCondition around unsigned compares
Summary:
Currently `isImpliedCondition` will optimize "I +_nuw C < L ==> I < L"
only if C is positive. This is an unnecessary restriction -- the
implication holds even if `C` is negative.
Reviewers: reames, majnemer
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14369
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252332
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 6 Nov 2015 19:00:57 +0000 (19:00 +0000)]
[ValueTracking] Add a framework for encoding implication rules
Summary:
This change adds a framework for adding more smarts to
`isImpliedCondition` around inequalities. Informally,
`isImpliedCondition` will now try to prove "A < B ==> C < D" by proving
"C <= A && B <= D", since then it follows "C <= A < B <= D".
While this change is in principle NFC, I could not think of a way to not
handle cases like "i +_nsw 1 < L ==> i < L +_nsw 1" (that ValueTracking
did not handle before) while keeping the change understandable. I've
added tests for these cases.
Reviewers: reames, majnemer, hfinkel
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14368
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252331
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Fri, 6 Nov 2015 18:39:34 +0000 (18:39 +0000)]
[Docs] Change ARM build info to CMake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252329
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 6 Nov 2015 18:23:00 +0000 (18:23 +0000)]
AMDGPU: Cleanup includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252328
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 6 Nov 2015 18:17:45 +0000 (18:17 +0000)]
AMDGPU: Create emergency stack slots during frame lowering
Test has a bogus verifier error which will be fixed by later commits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252327
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 6 Nov 2015 18:07:53 +0000 (18:07 +0000)]
AMDGPU: Remove unused scratch resource operands
The SGPR spill pseudos don't actually use them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252324
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 6 Nov 2015 18:01:57 +0000 (18:01 +0000)]
AMDGPU: Add pass to detect used kernel features
Mark kernels that use certain features that require user
SGPRs to support with kernel attributes. We need to know
before instruction selection begins because it impacts
the kernel calling convention lowering.
For now this only detects the workitem intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252323
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 6 Nov 2015 17:54:47 +0000 (17:54 +0000)]
AMDGPU: Fix hardcoded alignment of spill.
Instead of forcing 4 alignment when spilled, set register class
alignments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252322
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 6 Nov 2015 17:54:43 +0000 (17:54 +0000)]
AMDGPU: Hack for VS_32 register pressure
For some reason VS_32 ends up factoring into the pressure heuristics
even though we should never see a virtual register with this class.
When SGPRs are reserved for register spilling, this for some reason
triggers reg-crit scheduling.
Setting isAllocatable = 0 may help with this since that seems to remove
it from the default implementation's generated table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252321
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Fri, 6 Nov 2015 17:50:53 +0000 (17:50 +0000)]
Restore "Move metadata linking after lazy global materialization/linking."
Summary:
This reverts commit r251965.
Restore "Move metadata linking after lazy global materialization/linking."
This restores commit r251926, with fixes for the LTO bootstrapping bot
failure.
The bot failure was caused by references from debug metadata to
otherwise unreferenced globals. Previously, this caused the lazy linking
to link in their defs, which is unnecessary. With this patch, because
lazy linking is complete when we encounter the metadata reference, the
materializer created a declaration. For definitions such as aliases and
comdats, it is illegal to have a declaration. Furthermore, metadata
linking should not change code generation. Therefore, when linking of
global value bodies is complete, the materializer will simply return
nullptr as the new reference for the linked metadata.
This change required fixing a different test to ensure there was a
real reference to a linkonce global that was only being reference from
metadata.
Note that the new changes to the only-needed-named-metadata.ll test
illustrate an issue with llvm-link -only-needed handling of comdat
groups, whereby it may result in an incomplete comdat group. I note this
in the test comments, but the issue is orthogonal to this patch (it can
be reproduced without any metadata at head).
Reviewers: dexonsmith, rafael, tra
Subscribers: tobiasvk, joker.eph, llvm-commits
Differential Revision: http://reviews.llvm.org/D14447
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252320
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Fri, 6 Nov 2015 17:50:48 +0000 (17:50 +0000)]
Restore "Move metadata linking after lazy global materialization/linking."
This reverts commit r251965.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252319
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 6 Nov 2015 17:06:38 +0000 (17:06 +0000)]
[WinEH] Mark funclet entries and exits as clobbering all registers
Summary:
In this implementation, LiveIntervalAnalysis invents a few register
masks on basic block boundaries that preserve no registers. The nice
thing about this is that it prevents the prologue inserter from thinking
it needs to spill all XMM CSRs, because it doesn't see any explicit
physreg defs in the MI.
Reviewers: MatzeB, qcolombet, JosephTremoulet, majnemer
Subscribers: MatzeB, llvm-commits
Differential Revision: http://reviews.llvm.org/D14407
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252318
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 6 Nov 2015 16:33:57 +0000 (16:33 +0000)]
[LIR] Simplify code by making DataLayout globally accessible. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252317
91177308-0d34-0410-b5e6-
96231b3b80d8
Jun Bum Lim [Fri, 6 Nov 2015 16:27:47 +0000 (16:27 +0000)]
[AArch64]Enable the narrow ld promotion only on profitable microarchitectures
The benefit from converting narrow loads into a wider load (r251438) could be
micro-architecturally dependent, as it assumes that a single load with two bitfield
extracts is cheaper than two narrow loads. Currently, this conversion is
enabled only in cortex-a57 on which performance benefits were verified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252316
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 6 Nov 2015 15:30:45 +0000 (15:30 +0000)]
Bring r252305 back with a test fix.
We now create the .eh_frame section early, just like every other special
section.
This means that the special flags are visible in code that explicitly
asks for ".eh_frame".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252313
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 6 Nov 2015 14:51:09 +0000 (14:51 +0000)]
Revert "Simplify the creation of .eh_frame/.debug_frame sections."
This reverts commit r252305.
Investigating a test failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252306
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 6 Nov 2015 14:47:44 +0000 (14:47 +0000)]
Simplify the creation of .eh_frame/.debug_frame sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252305
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 6 Nov 2015 14:12:17 +0000 (14:12 +0000)]
git clang-format and fix variable names. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252304
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 6 Nov 2015 13:35:35 +0000 (13:35 +0000)]
Use SHT_X86_64_UNWIND on every OS.
That is the ABI required type. Linkers still check the section name, so
everything should still work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252300
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 6 Nov 2015 13:14:59 +0000 (13:14 +0000)]
Pass SectionStart directly to the one function that uses it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252299
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 6 Nov 2015 12:41:43 +0000 (12:41 +0000)]
[mips][ias] Range check uimm4 operands and fixed a bug this revealed.
Summary:
The bug was that the sldi instructions have immediate widths dependant on
their element size. So sldi.d has a 1-bit immediate and sldi.b has a 4-bit
immediate. All of these were using 4-bit immediates previously.
Reviewers: vkalintiris
Subscribers: llvm-commits, atanasyan, dsanders
Differential Revision: http://reviews.llvm.org/D14018
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252297
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 6 Nov 2015 12:31:27 +0000 (12:31 +0000)]
[mips][ias] Range check uimm3 operands.
Summary:
Reviewers: vkalintiris
Subscribers: atanasyan, dsanders, llvm-commits
Differential Revision: http://reviews.llvm.org/D14016
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252296
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 6 Nov 2015 12:22:31 +0000 (12:22 +0000)]
[mips][ias] Range check uimm2 operands and fix a bug this revealed.
Summary:
The bug was that the MIPS32R6/MIPS64R6/microMIPS32R6 versions of LSA and DLSA
(unlike the MSA version) failed to account for the off-by-one encoding of the
immediate. The range is actually 1..4 rather than 0..3.
Reviewers: vkalintiris
Subscribers: atanasyan, dsanders, llvm-commits
Differential Revision: http://reviews.llvm.org/D14015
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252295
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 6 Nov 2015 12:11:03 +0000 (12:11 +0000)]
[mips][ias] Range check uimmz operands.
Reviewers: vkalintiris
Subscribers: dsanders, atanasyan, llvm-commits
Differential Revision: http://reviews.llvm.org/D14013
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252294
91177308-0d34-0410-b5e6-
96231b3b80d8
Vasileios Kalintiris [Fri, 6 Nov 2015 12:07:20 +0000 (12:07 +0000)]
[mips] Define patterns for the atomic_{load,store}_{8,16,32,64} nodes.
Summary:
Without these patterns we would generate a complete LL/SC sequence.
This would be problematic for memory regions marked as WRITE-only or
READ-only, as the instructions LL/SC would read/write to the protected
memory regions correspondingly.
Reviewers: dsanders
Subscribers: llvm-commits, dsanders
Differential Revision: http://reviews.llvm.org/D14397
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252293
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 6 Nov 2015 11:45:14 +0000 (11:45 +0000)]
AMDGPU/SI: Emit HSA kernels with symbol type STT_AMDGPU_HSA_KERNEL
Reviewers: arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D13804
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252291
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Fri, 6 Nov 2015 10:32:53 +0000 (10:32 +0000)]
Add a new attribute: norecurse
This attribute allows the compiler to assume that the function never recurses into itself, either directly or indirectly (transitively). This can be used among other things to demote global variables to locals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252282
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 6 Nov 2015 10:30:32 +0000 (10:30 +0000)]
DIBuilder.h: Prune \param(s) corresponding to r252219. [-Wdocumentation]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252280
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 6 Nov 2015 10:07:33 +0000 (10:07 +0000)]
Revert r252249 (and r252255, r252258), "[WinEH] Clone funclets with multiple parents"
It behaved flaky due to iterating pointer key values on std::set and std::map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252279
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 6 Nov 2015 07:54:21 +0000 (07:54 +0000)]
Code style fix (caused by wrongly default clang-format style) (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252276
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 6 Nov 2015 03:02:51 +0000 (03:02 +0000)]
Simplify the alignment handling in FDE emission.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252271
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 6 Nov 2015 02:44:22 +0000 (02:44 +0000)]
Delete dead store. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252270
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 6 Nov 2015 02:41:02 +0000 (02:41 +0000)]
docs: Document function-attached metadata and IR changes from r252219.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252268
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 6 Nov 2015 02:01:02 +0000 (02:01 +0000)]
Range-for some LiveIntervals code under review
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252267
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 6 Nov 2015 01:49:05 +0000 (01:49 +0000)]
[WinEH] Split EH_RESTORE out of CATCHRET for 32-bit EH
This adds the EH_RESTORE x86 pseudo instr, which is responsible for
restoring the stack pointers: EBP and ESP, and ESI if stack realignment
is involved. We only need this on 32-bit x86, because on x64 the runtime
restores CSRs for us.
Previously we had to keep the CATCHRET instruction around during SEH so
that we could convince X86FrameLowering to restore our frame pointers.
Now we can split these instructions earlier.
This was confusing, because we had a return instruction which wasn't
really a return and was ultimately going to be removed by
X86FrameLowering. This change also simplifies X86FrameLowering, which
really shouldn't be building new MBBs.
No observable functional change currently, but with the new register
mask stuff in D14407, CATCHRET will become a register allocator barrier,
and our existing tests rely on us having reasonable register allocation
around SEH.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252266
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Esfahani [Fri, 6 Nov 2015 01:45:30 +0000 (01:45 +0000)]
NFC: Update documentation for createUniqueFile() to explain that models without an absolute path will be created in the current directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252265
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 6 Nov 2015 01:25:56 +0000 (01:25 +0000)]
Use a range loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252260
91177308-0d34-0410-b5e6-
96231b3b80d8
Igor Laevsky [Fri, 6 Nov 2015 01:15:58 +0000 (01:15 +0000)]
[Statepoints] Mark gc.result and gc.relocate as readonly
Differential Revision: http://reviews.llvm.org/D14386
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252259
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Fri, 6 Nov 2015 01:15:04 +0000 (01:15 +0000)]
Temporarily disable flaky checks in wineh-multi-parent-cloning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252258
91177308-0d34-0410-b5e6-
96231b3b80d8