Commit Graph

130390 Commits

Author SHA1 Message Date
Lang Hames
a6af3574e1 [Orc] Explicitly delete RPC::SequenceNumberManager's copy-constructor and
copy-assignment operator.

MSVC is trying to synthesize these and failing. Hopefully explicitly deleting
them will help.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266665 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 20:56:22 +00:00
Lang Hames
6320b788a2 [Orc] Re-commit r266581 with fixes for MSVC, and format cleanups.
Fixes:

(1) Removes constexpr (unsupported in MSVC)
(2) Move constructors (remove explicitly defaulted ones)
(3) <future> - Add warning suppression for MSVC.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266663 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 19:55:43 +00:00
Simon Pilgrim
9fac7e29e8 [X86][AVX] Added extra memory folding tests for D19228
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266662 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 19:48:16 +00:00
Sanjay Patel
dc8be91d13 try to make comments more meaningful; NFC
Retry r266541 without the range-based-for-loop-change that was wrong.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266658 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 19:11:57 +00:00
Chad Rosier
093fece1f7 [ValueTracking] Correct lit test comments. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266657 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 19:11:45 +00:00
Marcin Koscielnicki
31068d57c7 Fix shared build of LLVMPasses.
It's missing a dependency on Instrumentation (needed for
llvm::InstrProfiling::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&))

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266656 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 19:04:19 +00:00
Sanjoy Das
7f8cd41782 [BPI] Consider deoptimize calls as "unreachable"
Summary:
Calls to @llvm.experimental.deoptimize are expected to "never execute",
so optimize them as such.

Reviewers: chandlerc

Subscribers: junbuml, mcrosier, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266654 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 19:01:28 +00:00
Mehdi Amini
14e400843e lli: avoid global variables, use a local unique_ptr instead
There was issue with order of destruction in some cases.

From: Mehdi Amini <mehdi.amini@apple.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266652 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 18:52:39 +00:00
Kostya Serebryany
d8fa185e03 [libFuzzer] add fresh openssl trophies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266649 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 18:41:25 +00:00
JF Bastien
1b711b23e2 NFC: unify clang / LLVM atomic ordering
This makes the C11 / C++11 *ABI* atomic ordering accessible from LLVM,
as discussed in http://reviews.llvm.org/D18200#inline-151433

This re-applies r266573 which I had reverted in r266576.

Original review: http://reviews.llvm.org/D18875

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266640 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 18:01:43 +00:00
Xinliang David Li
cc76a0c46e Add missing new file for r266637
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266639 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 17:54:25 +00:00
Xinliang David Li
6be977abce Port InstrProfiling pass to the new pass manager
Differential Revision: http://reviews.llvm.org/D18126


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266637 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 17:47:38 +00:00
Simon Pilgrim
ed7bef54d2 [X86][AVX] Added zero+blend vs vperm2f128 optsize tests cases (PR22984)
We should be trying to use vperm2f128 instead of zero+blend (if we're only the user of zero?) when optsize is enabled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266632 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 17:14:04 +00:00
Easwaran Raman
e9b1c6efef Revert r266488.
This goes with r266477 which has been  reverted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266631 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 17:10:17 +00:00
JF Bastien
c6f7492fbb Lanai: fix debug build
There's currently no raw_ostream &operator<<(SimpleValueType); provided by LLVM. It could be added by refactoring utils/TableGen/CodeGenTarget.cpp:getEnumName, but that's much more work than fixing the build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266627 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 16:33:41 +00:00
Konstantin Zhuravlyov
5d42fbaf4c [AMDGPU] Add insert nops pass based on subtarget features instead of cl::opt
Also,
- Skip pass if machine module does not have debug info
- Minor comment changes
- Added test

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266626 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 16:28:23 +00:00
Simon Pilgrim
7d71f38955 [X86][AVX] Renamed vperm2f128 test to make it quicker to review
missed one the first time round...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266623 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 16:08:19 +00:00
Simon Pilgrim
6f9e8d852e [X86][AVX] Renamed vperm2f128 tests to make it quicker to review
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266621 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 15:37:45 +00:00
Igor Kudrin
66a92f3b19 Reapply "[Coverage] Prevent detection of false instantiations in case of macro expansion."
The root of the problem was that findMainViewFileID(File, Function)
could return some ID for any given file, even though that file
was not the main file for that function.

This patch ensures that the result of this function is conformed
with the result of findMainViewFileID(Function).

This commit reapplies r266436, which was reverted by r266458,
with the .covmapping file serialized in v1 format.

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266620 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 15:36:30 +00:00
Eric Liu
dcefe3154e Revert "Replace the use of MaxFunctionCount module flag"
This reverts commit r266477.

This commit introduces cyclic dependency. This commit has "Analysis" depend on "ProfileData",
while "ProfileData" depends on "Object", which depends on "BitCode", which
depends on "Analysis".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266619 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 15:31:11 +00:00
Artem Tamazov
ae5612e1d6 [AMDGPU][llvm-mc] s_setreg* - Fix order of operands
Order should match the sp3 syntax, where destination (simm16 denoting the hwreg) is coming first.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266617 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 14:54:26 +00:00
Aaron Ballman
4ebefaf4e2 Silence some "initialized but unused" warnings from MSVC -- the function being called is a static function, so there's no need for an instance variable. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266616 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 14:47:19 +00:00
Nico Weber
18061690cb Revert 266581 (and follow-up 266588), it doesn't build on Windows.
Three problems:
1. <future> can't be easily used.  If you must use it, see
   include/Support/ThreadPool.h for how.
2. constexpr problems, even after 266588.
3. Move assignment operators can't be defaulted in MSVC2013.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266615 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 13:57:08 +00:00
Nico Weber
55044047e6 Unbreak building unit tests on Windows after r266595.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266614 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 13:54:50 +00:00
Nico Weber
2e7ff2cd6d Unbreak building LLVMTarget on Windows after r266595.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266613 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 13:38:58 +00:00
Nico Weber
a3a95e8a04 Unbreak building llvm-pdbdump on Windows after r266595.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266612 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 13:31:31 +00:00
Daniel Sanders
9251559657 [mips][ias] Prevent double-filling of delay slots by generating '.set noreorder' regions.
Summary:
When clang is given -save-temps or -via-file-asm, any inline assembly in
the source is parsed twice. Once by the compiler, and again by the
assembler. We must take care to ensure that this doesn't lead to
double-filling delay slots.

Reviewers: sdardis, vkalintiris

Subscribers: dsanders, sdardis, llvm-commits

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266608 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 12:35:36 +00:00
Eric Liu
e87a43ef03 Include SmallVector.h header in lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266606 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 12:21:59 +00:00
Renato Golin
d30dbb6c8c [ARM] AArch32 v8 NEON is still not IEEE-754 compliant
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266603 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 12:06:47 +00:00
Daniel Sanders
b144c8fa84 [mips][ias] Stream macro expansions to output instead of buffering them. NFC.
Summary:
This will allows us to eliminate some magic numbers from the offset operand of
branch instructions in favour of symbols and makes it possible to avoid
double-filling delay slots when clang is given -save-temps.

parseDirectiveCpRestore() is calling isIntegratedAssemblerRequired() for the
moment since correctly pushing the generation of these instructions into the
ELF target streamer is tricky enough to warrant a separate patch.

Reviewers: sdardis, vkalintiris

Subscribers: dsanders, llvm-commits, sdardis

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266602 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 12:06:15 +00:00
Strahinja Petrovic
895fbaa13c [PowerPC] add comment to test
Added comment in test for soft-float operations on ppc architecture.
Test commit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266600 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 11:52:14 +00:00
Mehdi Amini
f6071e14c5 [NFC] Header cleanup
Removed some unused headers, replaced some headers with forward class declarations.

Found using simple scripts like this one:
clear && ack --cpp -l '#include "llvm/ADT/IndexedMap.h"' | xargs grep -L 'IndexedMap[<]' | xargs grep -n --color=auto 'IndexedMap'

Patch by Eugene Kosov <claprix@yandex.ru>

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

From: Mehdi Amini <mehdi.amini@apple.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266595 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 09:17:29 +00:00
Lang Hames
81499739d6 [Orc] Tweak some of the new RPC code to silence a warning (extraneous ';') and
MSVC errors related to constexpr.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266588 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 05:22:32 +00:00
Duncan P. N. Exon Smith
35f771e8a9 BitcodeWriter: WorkList => Worklist, NFC
I have no idea how I chose two different spellings in the space of a
couple of weeks, but now I can't remember what to use where.  Choose
"Worklist".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266582 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 01:24:58 +00:00
Lang Hames
bd1968ac09 [ORC] Generalize the ORC RPC utils to support RPC function return values and
asynchronous call/handle. Also updates the ORC remote JIT API to use the new
scheme.

The previous version of the RPC tools only supported void functions, and
required the user to manually call a paired function to return results. This
patch replaces the Procedure typedef (which only supported void functions) with
the Function typedef which supports return values, e.g.:

  Function<FooId, int32_t(std::string)> Foo;

The RPC primitives and channel operations are also expanded. RPC channels must
support four new operations: startSendMessage, endSendMessage,
startRecieveMessage and endRecieveMessage, to handle channel locking. In
addition, serialization support for tuples to RPCChannels is added to enable
multiple return values.

The RPC primitives are expanded from callAppend, call, expect and handle, to:

appendCallAsync - Make an asynchronous call to the given function.

callAsync - The same as appendCallAsync, but calls send on the channel when
            done.

callSTHandling - Blocking call for single-threaded code. Wraps a call to
                 callAsync then waits on the result, using a user-supplied
                 handler to handle any callbacks from the remote.

callST - The same as callSTHandling, except that it doesn't handle
         callbacks - it expects the result to be the first return.

expect and handle - as before.

handleResponse - Handle a response from the remote.

waitForResult - Wait for the response with the given sequence number to arrive.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266581 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 01:06:49 +00:00
Duncan P. N. Exon Smith
034f0eea6b Linker: Share a single Metadata map for the lifetime of IRMover
Cache the result of mapping metadata nodes between instances of IRLinker
(i.e., for the lifetime of IRMover).  There shouldn't be any real
functional change here, but this should give a major speedup.  I had
loaned this to Mehdi when he tested performance of r266446, and the two
patches together gave a 10x speedup in metadata mapping.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266579 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 23:30:31 +00:00
Craig Topper
6a6cda17f0 [X86] Be explicit about calls to setOperationAction for AVX2 and AVX512 rather than just looping over all vector types and conditinally matching them. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266577 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 22:49:46 +00:00
JF Bastien
d6634d647a Revert "NFC: unify clang / LLVM atomic ordering"
This reverts commit 537951f2f1.

Causes an assert in:
  test/Transforms/AtomicExpand/SPARC/libcalls.ll
  (Ordering2 != AtomicOrdering::NotAtomic && "expect atomic MO")

Bot:
  http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/21724/testReport/junit/LLVM/Transforms_AtomicExpand_SPARC/libcalls_ll/

I'm not getting this assert on my local debug build, but I'll revert
just to be sure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266576 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 21:29:01 +00:00
JF Bastien
537951f2f1 NFC: unify clang / LLVM atomic ordering
Summary: This makes the C11 / C++11 *ABI* atomic ordering accessible from LLVM, as discussed in http://reviews.llvm.org/D18200#inline-151433

Reviewers: jyknight, reames

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266573 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 21:00:57 +00:00
Richard Smith
ab6ed6481e When building with LLVM_ENABLE_MODULES, put the module cache into the build
directory. This is important for build bots to avoid filling up /tmp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266571 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 20:58:01 +00:00
Duncan P. N. Exon Smith
6b8e3598f4 Transforms: Try harder to fix bootstrap after r266565
This catches two nullptr insertions into the ValueMap I missed in
r266567.  I missed CloneFunction becuase it never calls RemapInstruction
directly.  Here's one of the still-failing bots:
  http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/11496

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266570 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 20:11:09 +00:00
Duncan P. N. Exon Smith
31d315eda8 Linker: Don't double-schedule appending variables
Add an assertion to ValueMapper that prevents double-scheduling of
GlobalValues to remap, and fix the one place it happened.  There are
tons of tests that fail with this assertion in place and without the
code change, so I'm not adding another.

Although it looks related, r266563 was, indeed, removing dead code.
AFAICT, this cross-file double-scheduling started in r266510 when the
cross-file recursion was removed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266569 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 19:40:20 +00:00
Davide Italiano
8bef6e290e [ParallelCG] SmallVector<char> -> SmallString.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266568 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 19:38:57 +00:00
Duncan P. N. Exon Smith
60d75fe84d Transforms: Fix bootstrap after r266565
Apparently there isn't test coverage for all of these.  I'd appreciate
if someone with could reproduce and send me something to reduce, but for
now I've just looked for users of RemapInstruction and MapValue and
ensured they don't accidentally insert nullptr.  Here is one of the
bootstraps that caught:

  http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/11494

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266567 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 19:26:49 +00:00
Rafael Espindola
3aba53bd18 Fix a use after move.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266566 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 18:56:49 +00:00
Duncan P. N. Exon Smith
f1f118176b ValueMapper: Don't allow explicit null mappings of Values, NFC
As a follow-up to r123058, assert that there are no null mappings in the
ValueMap instead of just ignoring them when they are there.  There were
a couple of accidental insertions in CloneFunction so I cleaned those up
(caught by testcases).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266565 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 18:53:24 +00:00
Rafael Espindola
ec86ae2bb5 Keep only the splitCodegen version that takes a factory.
This makes it much easier to see that all created TargetMachines are
equivalent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266564 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 18:42:27 +00:00
Duncan P. N. Exon Smith
3a804b2a6d IRMover: Remove dead code, NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266563 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 18:21:47 +00:00
Craig Topper
ca89139c6d Declare MVT::SimpleValueType as an int8_t sized enum. This removes 400 bytes from TargetLoweringBase and probably other places.
This required changing several places to print VT enums as strings instead of raw ints since the proper method to use to print became ambiguous. This is probably an improvement anyway.

This also appears to save ~8K from an x86 self host build of llc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266562 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 17:37:33 +00:00
Simon Pilgrim
2cd2d0a7e6 [X86][SSE] Added 16i8 -> 8i64 sext test
Shows poor codegen for AVX2

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266560 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-17 15:10:42 +00:00