OSDN Git Service
Vyacheslav Klochkov [Wed, 9 Dec 2015 00:12:13 +0000 (00:12 +0000)]
X86-FMA3: Defined the ExeDomain property for Scalar FMA3 opcodes.
Reviewer: Simon Pilgrim.
Differential Revision: http://reviews.llvm.org/D15317
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255080
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 9 Dec 2015 00:08:22 +0000 (00:08 +0000)]
Simplify memory management a bit. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255079
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 8 Dec 2015 23:57:17 +0000 (23:57 +0000)]
Return a std::unique_ptr from CloneModule. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255078
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 8 Dec 2015 23:52:58 +0000 (23:52 +0000)]
[IndVars] Use any_of and foreach instead of explicit for loops; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255077
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 8 Dec 2015 23:16:52 +0000 (23:16 +0000)]
[OperandBundles] Have PruneEH work correct with operand bundles.
For an invoke with operand bundles, the [op_begin(), op_end()-3] range
can contain things other than invoke arguments. This change teaches
PruneEH to use arg_begin() and arg_end() explicitly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255073
91177308-0d34-0410-b5e6-
96231b3b80d8
Pirama Arumuga Nainar [Tue, 8 Dec 2015 23:07:06 +0000 (23:07 +0000)]
Define selection for v4f16, v8f16 scalar_to_vector
Summary:
This fixes failure when trying to select
insertelement <4 x half> undef, half %a, i64 0
which gets transformed to a scalar_to_vector node.
The accompanying v4 and v8 tests fail instruction selection without this
patch.
Reviewers: ab, jmolloy
Subscribers: srhines, llvm-commits
Differential Revision: http://reviews.llvm.org/D15322
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255072
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Tue, 8 Dec 2015 23:04:19 +0000 (23:04 +0000)]
Fix/Improve Debug print in FunctionImport pass
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255071
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 8 Dec 2015 23:00:03 +0000 (23:00 +0000)]
[CGP] Reimplement r255055 a different way
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255070
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 8 Dec 2015 22:53:36 +0000 (22:53 +0000)]
[SCEV] Use for-each; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255069
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Tue, 8 Dec 2015 22:39:40 +0000 (22:39 +0000)]
Remove caching in FunctionImport: a Module can't be reused after being linked from
The Linker destroys the source module (API change coming to make it explicit)
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255064
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 8 Dec 2015 22:33:23 +0000 (22:33 +0000)]
Revert "[CGP] Check that we have an insert point before moving llvm.dbg.value around"
This reverts commit r255055.
Breakage has been reported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255063
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 8 Dec 2015 22:26:08 +0000 (22:26 +0000)]
[OperandBundles] Fix a transform in simplifycfg
Reviewers: pcc, majnemer, reames
Subscribers: reames, llvm-commits
Differential Revision: http://reviews.llvm.org/D15345
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255062
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 8 Dec 2015 22:17:11 +0000 (22:17 +0000)]
[X86][AVX] Fold loads + splats into broadcast instructions
On AVX and AVX2, BROADCAST instructions can load a scalar into all elements of a target vector.
This patch improves the lowering of 'splat' shuffles of a loaded vector into a broadcast - currently the lowering only works for cases where we are splatting the zero'th element, which is now generalised to any element.
Fix for PR23022
Differential Revision: http://reviews.llvm.org/D15310
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255061
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Tue, 8 Dec 2015 21:51:48 +0000 (21:51 +0000)]
[CMake] Ignore externalizing debuginfo for unit tests
If you externalize debug info for unit tests the test runner finds the mach-o inside the dsym bundle and tries to execute it as a test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255056
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 8 Dec 2015 21:50:52 +0000 (21:50 +0000)]
[CGP] Check that we have an insert point before moving llvm.dbg.value around
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255055
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Tue, 8 Dec 2015 21:45:41 +0000 (21:45 +0000)]
[EarlyCSE] Value forwarding for unordered atomics
This patch teaches the fully redundant load part of EarlyCSE how to forward from atomic and volatile loads and stores, and how to eliminate unordered atomics (only). This patch does not include dead store elimination support for unordered atomics, that will follow in the near future.
The basic idea is that we allow all loads and stores to be tracked by the AvailableLoad table. We store a bit in the table which tracks whether load/store was atomic, and then only replace atomic loads with ones which were also atomic.
No attempt is made to refine our handling of ordered loads or stores. Those are still treated as full fences. We could pretty easily extend the release fence handling to release stores, but that should be a separate patch.
Differential Revision: http://reviews.llvm.org/D15337
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255054
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 8 Dec 2015 21:43:41 +0000 (21:43 +0000)]
[X86][SSE4A] Added fast-isel intrinsics tests
As discussed on PR24580, this patch adds fast-isel codegen tests to match the IR generated in clang/test/CodeGen/sse4a-builtins.c
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255053
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 8 Dec 2015 21:32:08 +0000 (21:32 +0000)]
[X86][SSSE3] Added fast-isel intrinsics tests
As discussed on PR24580, this patch adds fast-isel codegen tests to match the IR generated in clang/test/CodeGen/ssse3-builtins.c
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255052
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 8 Dec 2015 21:27:19 +0000 (21:27 +0000)]
[X86][SSE3] Added fast-isel intrinsics tests
As discussed on PR24580, this patch adds fast-isel codegen tests to match the IR generated in clang/test/CodeGen/sse3-builtins.c
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255051
91177308-0d34-0410-b5e6-
96231b3b80d8
Artyom Skrobov [Tue, 8 Dec 2015 19:59:01 +0000 (19:59 +0000)]
Fix ARMv4T (Thumb1) epilogue generation
Summary:
Before ARMv5T, Thumb1 code could not pop PC, as described at D14357 and D14986;
so we need the special fixup in the epilogue.
Reviewers: jroelofs, qcolombet
Subscribers: aemerson, llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D15126
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255047
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Tue, 8 Dec 2015 19:13:31 +0000 (19:13 +0000)]
Revert "Add Available Externally linkage type to isWeakForLinker()"
This reverts r255043, as per post-review concern were raised on the correctness.
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255045
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Tue, 8 Dec 2015 19:02:55 +0000 (19:02 +0000)]
Cleanup test: remove useless alignment
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255044
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Tue, 8 Dec 2015 19:01:29 +0000 (19:01 +0000)]
Add Available Externally linkage type to isWeakForLinker()
Per LangRef: "Globals with available_externally linkage are
allowed to be discarded at will, and are otherwise the same
as linkonce_odr", since linkonce_odr is in this list it makes
sense to have available_externally there as well.
Reviewers: rafael
Differential Revision: http://reviews.llvm.org/D15323
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255043
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 8 Dec 2015 18:31:35 +0000 (18:31 +0000)]
X86: produce more friendly errors during MachO relocation handling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255036
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Tue, 8 Dec 2015 18:10:58 +0000 (18:10 +0000)]
[ARM] Allowing SP/PC for AND/BIC mod_imm_not
AND/BIC instructions do accept SP/PC, so the register class should be
more generic (rGPR -> GPR) to cope with that case. Adding more tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255034
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Aizatsky [Tue, 8 Dec 2015 17:44:51 +0000 (17:44 +0000)]
adding readability-identifier-naming to llvm clang-tidy configuration.
Differential Revision: http://reviews.llvm.org/D15196
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255028
91177308-0d34-0410-b5e6-
96231b3b80d8
Ron Lieberman [Tue, 8 Dec 2015 16:28:32 +0000 (16:28 +0000)]
[Hexagon] Add NewValueJump support for C4_cmpneq, C4_cmplte, C4_cmplteu
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255027
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 8 Dec 2015 14:54:49 +0000 (14:54 +0000)]
Move all private members together. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255021
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Tue, 8 Dec 2015 14:42:10 +0000 (14:42 +0000)]
[mips][ias] Range check uimm8 operands
Summary:
Reviewers: vkalintiris
Subscribers: llvm-commits, dsanders
Differential Revision: http://reviews.llvm.org/D15226
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255018
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Tue, 8 Dec 2015 13:49:19 +0000 (13:49 +0000)]
[mips][ias] Range check uimm6 operands and fix a bug this revealed.
Summary:
We don't check the size operand on ext/dext*/ins/dins* yet because the
permitted range depends on the pos argument and we can't check that using
this mechanism.
The bug was that dextu/dinsu accepted 0..31 in the pos operand instead of 32..63.
Reviewers: vkalintiris
Subscribers: llvm-commits, dsanders
Differential Revision: http://reviews.llvm.org/D15190
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255015
91177308-0d34-0410-b5e6-
96231b3b80d8
Asaf Badouh [Tue, 8 Dec 2015 12:34:34 +0000 (12:34 +0000)]
[x86][avx512] more changes in intrinsics to be align with gcc format
Differential Revision: http://reviews.llvm.org/D15329
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255011
91177308-0d34-0410-b5e6-
96231b3b80d8
Oliver Stannard [Tue, 8 Dec 2015 12:16:10 +0000 (12:16 +0000)]
[AArch64] Add ARMv8.2-A FP16 vector instructions
ARMv8.2-A adds 16-bit floating point versions of all existing SIMD
floating-point instructions. This is an optional extension, so all of
these instructions require the FeatureFullFP16 subtarget feature.
Note that VFP without SIMD is not a valid combination for any version of
ARMv8-A, but I have ensured that these instructions all depend on both
FeatureNEON and FeatureFullFP16 for consistency.
The ".2h" vector type specifier is now legal (for the scalar pairwise
reduction instructions), so some unrelated tests have been modified as
different error messages are emitted. This is not a problem as the
invalid operands are still caught.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255010
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Tue, 8 Dec 2015 12:00:24 +0000 (12:00 +0000)]
dding test for fnstsw
continue of Wrong FNSTSW size operator
url: http://reviews.llvm.org/D14953
Differential Revision: http://reviews.llvm.org/D15155
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255007
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 8 Dec 2015 04:32:54 +0000 (04:32 +0000)]
[SCEV] Move some struct declarations inside functions; NFC
Reduces the scope over which the struct is visible, making its usages
obvious. I did not move structs in cases where this wasn't a clear
win (the struct is too large, or is grouped in some other interesting
way).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255003
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 8 Dec 2015 04:32:51 +0000 (04:32 +0000)]
[SCEV] Fix indentation; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255002
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 8 Dec 2015 03:50:32 +0000 (03:50 +0000)]
[OperandBundles] Remove unncessary constructor
The StringRef constructor is unnecessary (since we're converting to
std::string anyway), and having it requires an explicit call to
StringRef's or std::string's constructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255000
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Dec 2015 03:43:03 +0000 (03:43 +0000)]
[WebAssembly] Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254999
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Dec 2015 03:42:50 +0000 (03:42 +0000)]
[WebAssembly] Remove an unneeded static_cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254998
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Dec 2015 03:36:00 +0000 (03:36 +0000)]
[WebAssembly] Fix an emacs syntax highlighting comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254997
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Dec 2015 03:33:51 +0000 (03:33 +0000)]
[WebAssembly] Convert a file-level comment to doxygen style.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254996
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Dec 2015 03:30:42 +0000 (03:30 +0000)]
[WebAssembly] Assert MRI.isSSA() in passes that depend on SSA form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254995
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Dec 2015 03:25:35 +0000 (03:25 +0000)]
[WebAssembly] Trim some unneeded #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254994
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Dec 2015 03:22:33 +0000 (03:22 +0000)]
[WebAssembly] Remove the override of haveFastSqrt.
The default implementation in BasicTTI already checks TLI and does
the right thing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254993
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Tue, 8 Dec 2015 03:01:16 +0000 (03:01 +0000)]
IR: Allow vectors of halfs to be ConstantDataVectors
Currently, vectors of halfs end up as ConstantVectors, but there isn't
a good reason they can't be ConstantDataVectors. This should save some
memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254991
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Tue, 8 Dec 2015 02:45:59 +0000 (02:45 +0000)]
[llvm-objdump/MachO] Don't cut'n'paste the same code over and over.
Use the appropriate helper instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254990
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 8 Dec 2015 02:38:14 +0000 (02:38 +0000)]
Add a test showing that we internalize lazily linked GVs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254989
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Tue, 8 Dec 2015 02:37:48 +0000 (02:37 +0000)]
AsmPrinter: Use emitGlobalConstantFP to emit elements of constant data
It's strange to duplicate the logic for emitting FP values into
emitGlobalConstantDataSequential, and it's even stranger that we end
up printing the verbose assembly comments differently between the two
paths. Just call into emitGlobalConstantFP rather than crudely
duplicating its logic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254988
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 8 Dec 2015 02:29:45 +0000 (02:29 +0000)]
Simplify test. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254987
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 8 Dec 2015 00:14:38 +0000 (00:14 +0000)]
[CXX TLS calling convention] Add support for AArch64.
rdar://
9001553
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254978
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 8 Dec 2015 00:13:21 +0000 (00:13 +0000)]
[IndVars] Have getInsertPointForUses preserve LCSSA
Summary:
Also add a stricter post-condition for IndVarSimplify.
Fixes PR25578. Test case by Michael Zolotukhin.
Reviewers: hfinkel, atrick, mzolotukhin
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D15059
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254977
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 8 Dec 2015 00:13:17 +0000 (00:13 +0000)]
[SCEVExpander] Have hoistIVInc preserve LCSSA
Summary:
(Note: the problematic invocation of hoistIVInc that caused PR24804 came
from IndVarSimplify, not from SCEVExpander itself)
Fixes PR24804. Test case by David Majnemer.
Reviewers: hfinkel, majnemer, atrick, mzolotukhin
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D15058
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254976
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 8 Dec 2015 00:13:12 +0000 (00:13 +0000)]
Add Instruction::getFunction; NFC
Will be used in a upcoming patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254975
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Tue, 8 Dec 2015 00:10:56 +0000 (00:10 +0000)]
[PassManager] Tuning Memory Usage of AnalysisUsage
We were using unneccessarily large initial sizes for these SmallVectors. This was wasting around 50kb of memory for the O3 pipeline, even after the uniquing changes. We're still using around 20kb which is a bit much, but it's definitely better. This is about a 6% improvement in total O3 memory usage.
Note: The raw data on structure size which were used to pick these thresholds can be found in the review thread.
Differential Revision: http://reviews.llvm.org/D15244
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254974
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 7 Dec 2015 23:34:30 +0000 (23:34 +0000)]
fix return values to match bool return type; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254968
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 7 Dec 2015 23:32:39 +0000 (23:32 +0000)]
Factor two calls to a common location.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254967
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 7 Dec 2015 23:15:57 +0000 (23:15 +0000)]
Stabilize llvm/test/Object/archive-update.test a bit.
A manipulation (in this case, mkdir) can make slack between creating and touching %t.older/evenlen.
I would make this rewrote with python if this were still unstable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254965
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Mon, 7 Dec 2015 23:12:26 +0000 (23:12 +0000)]
Support: Teach Asan about BumpPtrAllocator
Based on patch by Pete Cooper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254964
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 7 Dec 2015 23:07:16 +0000 (23:07 +0000)]
Let llvm-lto installed. A few tests in clang/test are using it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254963
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Mon, 7 Dec 2015 22:43:56 +0000 (22:43 +0000)]
Remove debug output that snuck into 254957
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254960
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Mon, 7 Dec 2015 22:41:23 +0000 (22:41 +0000)]
Reapply 254950 w/fix
254950 ended up being not NFC. The previous code was overriding the flags for whether an instruction read or wrote memory using the target specific flags returned via TTI. I'd missed this in my refactoring. Since I mistakenly built only x86 and didn't notice the number of unsupported tests, I didn't catch that before the original checkin.
This raises an interesting issue though. Given we have function attributes (i.e. readonly, readnone, argmemonly) which describe the aliasing of intrinsics, why does TTI have this information overriding the instruction definition at all? I see no reason for this, but decided to preserve existing behavior for the moment. The root issue might be that we don't have a "writeonly" attribute.
Original commit message:
[EarlyCSE] Simplify and invert ParseMemoryInst [NFCI]
Restructure ParseMemoryInst - which was introduced to abstract over target specific load and stores instructions - to just query the underlying instructions. In theory, this could be slightly slower than caching the results, but in practice, it's very unlikely to be measurable.
The simple query scheme makes it far easier to understand, and much easier to extend with new queries. Given I'm about to need to add new query types, doing the cleanup first seemed worthwhile.
Do we still believe the target specific intrinsic handling is worthwhile in EarlyCSE? It adds quite a bit of complexity and makes the code harder to read. Being able to delete the abstraction entirely would be wonderful.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254957
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Mon, 7 Dec 2015 22:27:19 +0000 (22:27 +0000)]
Remove useless hack that avoids calling LLVMLinkInInterpreter()
This is supposed to force-link the Interpreter, by inserting a dead
call to LLVMLinkInInterpreter().
Since it is actually an empty function, there is no reason for the
call to be dead.
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254956
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Mon, 7 Dec 2015 21:41:29 +0000 (21:41 +0000)]
Revert 254950
It's causing test failures on AArch64. Due to a bad build config on my part, I apparently wasn't running the tests I thought I was.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254954
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 7 Dec 2015 21:40:09 +0000 (21:40 +0000)]
Update doc for C++ TLS calling convention.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254953
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 7 Dec 2015 21:28:22 +0000 (21:28 +0000)]
Simplify the error handling a bit. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254952
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Mon, 7 Dec 2015 21:27:15 +0000 (21:27 +0000)]
[EarlyCSE] Simplify and invert ParseMemoryInst [NFCI]
Restructure ParseMemoryInst - which was introduced to abstract over target specific load and stores instructions - to just query the underlying instructions. In theory, this could be slightly slower than caching the results, but in practice, it's very unlikely to be measurable.
The simple query scheme makes it far easier to understand, and much easier to extend with new queries. Given I'm about to need to add new query types, doing the cleanup first seemed worthwhile.
Do we still believe the target specific intrinsic handling is worthwhile in EarlyCSE? It adds quite a bit of complexity and makes the code harder to read. Being able to delete the abstraction entirely would be wonderful.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254950
91177308-0d34-0410-b5e6-
96231b3b80d8
Easwaran Raman [Mon, 7 Dec 2015 21:21:20 +0000 (21:21 +0000)]
Use updated threshold for indirect call bonus
When considering foo->bar inlining, if there is an indirect call in foo which gets resolved to a direct call (say baz), then we try to inline baz into bar with a threshold T and subtract max(T - Cost(bar->baz), 0) from Cost(foo->bar). This patch uses max(Threshold(bar->baz) - Cost(bar->baz)) instead, where Thresheld(bar->baz) could be different from T due to bonuses or subtractions. Threshold(bar->baz) - Cost(bar->baz) better represents the desirability of inlining baz into bar.
Differential Revision: http://reviews.llvm.org/D14309
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254945
91177308-0d34-0410-b5e6-
96231b3b80d8
Kit Barton [Mon, 7 Dec 2015 20:50:29 +0000 (20:50 +0000)]
[PPC64] Convert bool literals to i32
Convert i1 values to i32 values if they should be allocated in GPRs instead of CRs.
Phabricator: http://reviews.llvm.org/D14064
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254942
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 7 Dec 2015 20:36:00 +0000 (20:36 +0000)]
Fix line endings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254939
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Mon, 7 Dec 2015 19:53:38 +0000 (19:53 +0000)]
Fix function return type in declaration (bot errors from r254926).
Try to fix bot build errors from r254926 by correcting the function
return type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254934
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 7 Dec 2015 19:31:34 +0000 (19:31 +0000)]
don't repeat function names in comments; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254930
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 7 Dec 2015 19:21:39 +0000 (19:21 +0000)]
fix 'the the '; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254928
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Mon, 7 Dec 2015 19:21:11 +0000 (19:21 +0000)]
[ThinLTO] Support for specifying function index from pass manager
Summary:
Add a field on the PassManagerBuilder that clang or gold can use to pass
down a pointer to the function index in memory to use for importing when
the ThinLTO backend is triggered. Add support to supply this to the
function import pass.
Reviewers: joker.eph, dexonsmith
Subscribers: davidxl, llvm-commits, joker.eph
Differential Revision: http://reviews.llvm.org/D15024
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254926
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 7 Dec 2015 19:13:40 +0000 (19:13 +0000)]
remove redundant check: optForSize() includes a check for the minsize attribute; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254925
91177308-0d34-0410-b5e6-
96231b3b80d8
Ron Lieberman [Mon, 7 Dec 2015 18:52:39 +0000 (18:52 +0000)]
[Hexagon] Adding v60 test, vasr in particular.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254923
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 7 Dec 2015 18:46:41 +0000 (18:46 +0000)]
[llvm-dwp] Restructure inputs for test case so they're all grouped together
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254922
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 7 Dec 2015 17:39:48 +0000 (17:39 +0000)]
Tighten checks so we can see existing codegen
The 2-element vector case shows a surprising bug: we failed to
eliminate ops on undefs, so there are 4 fmax calls even though
there can only be 2 valid elements in the inputs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254920
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 7 Dec 2015 17:35:56 +0000 (17:35 +0000)]
[Orc] Removing traces of takeOwnershipOfBuffers left after r251560.
Patch by Joshua Gerrard. Thanks Joshua!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254919
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 7 Dec 2015 16:31:41 +0000 (16:31 +0000)]
Link declaration lazily.
We already linked available_externally and linkonce lazily, this just
adds declarations to the list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254917
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 7 Dec 2015 16:01:40 +0000 (16:01 +0000)]
Simplify test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254916
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 7 Dec 2015 15:44:34 +0000 (15:44 +0000)]
Silence all C4592 warnings with MSVC 2015 Update 1. This warning produces false positives that Microsoft says will be fixed in Update 2. Until this produces reliable diagnostics, it is safe to disable the diagnostic -- the compiler is not doing anything different than it previously did aside from issuing the diagnostic.
(Note, this silences at least one false positive in LLVM with FeatureBitset uses.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254915
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Mon, 7 Dec 2015 15:05:44 +0000 (15:05 +0000)]
[ThinLTO] Support cloning of temporary DILocation metadata
This is needed to support linking of module-level metadata as a
postpass after function importing, where we will be leaving temporary
metadata on imported instructions until the postpass metadata import.
Also added unittest. Split from D14838.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254914
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Mon, 7 Dec 2015 14:33:34 +0000 (14:33 +0000)]
VX-512: Fixed a bug in FP logic operation lowering
FP logic instructions are supported in DQ extension on AVX-512 target.
I use integer operations instead.
Added tests.
I also enabled FABS in this patch in order to check ANDPS.
The operations are FOR, FXOR, FAND, FANDN.
The instructions, that supported for 512-bit vector under DQ are:
VORPS/PD, VXORPS/PD, VANDPS/PD, FANDNPS/PD.
Differential Revision: http://reviews.llvm.org/D15110
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254913
91177308-0d34-0410-b5e6-
96231b3b80d8
Artyom Skrobov [Mon, 7 Dec 2015 14:22:39 +0000 (14:22 +0000)]
[ARM] Generate ABI_optimization_goals build attribute, as described in the ARM ARM.
Summary: This reverts r254234, and adds a simple fix for the annoying case of use-after-free.
Reviewers: rengolin
Subscribers: aemerson, llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D15236
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254912
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Mon, 7 Dec 2015 14:12:44 +0000 (14:12 +0000)]
[mips][ias] Removed DSP/DSPr2 instructions from base architecture valid-xfail.s's.
Summary:
valid-xfail.s is for instructions that should be valid in the given ISA but
incorrectly fail. DSP/DSPr2 instructions are correct to fail since DSP/DSPr2 is
not enabled.
Reviewers: vkalintiris
Subscribers: dsanders, llvm-commits
Differential Revision: http://reviews.llvm.org/D15072
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254911
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Mon, 7 Dec 2015 13:39:24 +0000 (13:39 +0000)]
AVX-512: Fixed masked load / store instruction selection for KNL.
Patterns were missing for KNL target for <8 x i32>, <8 x float> masked load/store.
This intrinsic comes with all legal types:
<8 x float> @llvm.masked.load.v8f32(<8 x float>* %addr, i32 align, <8 x i1> %mask, <8 x float> %passThru),
but still requires lowering, because VMASKMOVPS, VMASKMOVDQU32 work with 512-bit vectors only.
All data operands should be widened to 512-bit vector.
The mask operand should be widened to v16i1 with zeroes.
Differential Revision: http://reviews.llvm.org/D15265
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254909
91177308-0d34-0410-b5e6-
96231b3b80d8
Igor Breger [Mon, 7 Dec 2015 13:25:18 +0000 (13:25 +0000)]
AVX-512: implement kunpck intrinsics.
Differential Revision: http://reviews.llvm.org/D14821
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254908
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 7 Dec 2015 13:24:23 +0000 (13:24 +0000)]
Change how the linker handles the old llvm.global_ctors.
Now instead of changing it to the new format and then linking, it just
handles the old format while copying it over.
The main differences are:
* There is no rauw in the source module.
* An old format input is always upgraded.
The first item helps with having a sane API that passes in a GV list to
the linker.
The second one is a small step in deprecating the old format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254907
91177308-0d34-0410-b5e6-
96231b3b80d8
Asaf Badouh [Mon, 7 Dec 2015 13:14:14 +0000 (13:14 +0000)]
[avx512] rename gcc intrinsics to be align with gcc format
rename the gcc intrinsics suffix : _mask ->_round
Differential Revision: http://reviews.llvm.org/D15285
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254905
91177308-0d34-0410-b5e6-
96231b3b80d8
Marina Yatsina [Mon, 7 Dec 2015 13:09:20 +0000 (13:09 +0000)]
[X86] Adding support for FWORD type for MS inline asm
Adding support for FWORD type for MS inline asm.
Differential Revision: http://reviews.llvm.org/D15268
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254904
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Mon, 7 Dec 2015 10:54:36 +0000 (10:54 +0000)]
[ARM] Flag vcvt{t,b} with an f16 type specifier as part of the FP16 extension
Additionally correct the Cortex-R7 definition to allow the FP16 feature.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254900
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 7 Dec 2015 09:09:54 +0000 (09:09 +0000)]
[X86][AVX] Added tests to load+broadcast non-zero'th vector elements
Baseline for an upcoming patch for PR23022
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254898
91177308-0d34-0410-b5e6-
96231b3b80d8
Zlatko Buljan [Mon, 7 Dec 2015 08:29:31 +0000 (08:29 +0000)]
[mips][microMIPS] Implement LH, LHE, LHU and LHUE instructions
Differential Revision: http://reviews.llvm.org/D9824
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254897
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 7 Dec 2015 06:31:41 +0000 (06:31 +0000)]
Add uint8_t size to LegalizeTypeAction enum and use the enum type directly to remove some typecasts. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254895
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 7 Dec 2015 06:01:51 +0000 (06:01 +0000)]
Add uint8_t size to LegalizeAction enum so we can use the enum type directly and remove some casts. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254893
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Mon, 7 Dec 2015 00:03:28 +0000 (00:03 +0000)]
[llvm-objdump/MachoDump] Make code much more concise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254888
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Sun, 6 Dec 2015 23:05:38 +0000 (23:05 +0000)]
[Verifier] Fix !dbg validation if Scope is the Subprogram
Summary:
We are inserting both Scope and SP into the Seen map and check whether
it was already there in which case we skip the validation (the idea
being that we already checked this Subprogram before). However,
if (Scope == SP) as MDNodes, then inserting the Scope, will trigger
the Seen check causing us to incorrectly not validate this !dbg
attachment. Fix this by not performing the SP Seen check if Scope == SP
Reviewers: pcc, dexonsmith, dblaikie
Subscribers: dblaikie, llvm-commits
Differential Revision: http://reviews.llvm.org/D14697
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254887
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 6 Dec 2015 20:12:19 +0000 (20:12 +0000)]
[X86][AVX] Tidied up BROADCASTPD/BROADCASTPS tests
Regenerate tests using update_llc_test_checks.py
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254886
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Sun, 6 Dec 2015 19:44:45 +0000 (19:44 +0000)]
[Orc] Rename IndirectStubsManagerBase to IndirectStubsManager.
No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254885
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sun, 6 Dec 2015 19:42:29 +0000 (19:42 +0000)]
[WebAssembly] Factor out a TypeToString function, since we need it in multiple places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254884
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sun, 6 Dec 2015 19:34:57 +0000 (19:34 +0000)]
[WebAssembly] Make tableswitch's 'default' operand explicit. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254883
91177308-0d34-0410-b5e6-
96231b3b80d8