OSDN Git Service
Xinliang David Li [Fri, 29 Jan 2016 22:29:15 +0000 (22:29 +0000)]
Improve test speed/trial 2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259253
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 29 Jan 2016 22:25:19 +0000 (22:25 +0000)]
AttributeSetImpl: Summarize existing function attributes in a bitset.
The majority of attribute queries checks for the existence of an enum
attribute in the FunctionIndex slot. We only have 48 of those and can
therefore summarize them in an uint64_t bitset which measurably improves
compile time.
Differential Revision: http://reviews.llvm.org/D16618
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259252
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 29 Jan 2016 22:25:13 +0000 (22:25 +0000)]
AttributeSetNode: Summarize existing attributes in a bitset.
The majority of queries just checks for the existince of an enum
attribute. We only have 48 of those and can summaryiz them in an
uint64_t bitfield so we can avoid searching the list. This improves
"opt" compile time by 1-4% in my measurements.
Differential Revision: http://reviews.llvm.org/D16617
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259251
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 29 Jan 2016 21:26:31 +0000 (21:26 +0000)]
Revert 259242, 259243 -- irrelvante changes pulled in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259244
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 29 Jan 2016 21:23:47 +0000 (21:23 +0000)]
Use range for loop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259243
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 29 Jan 2016 21:13:55 +0000 (21:13 +0000)]
Improve test speed (interchange loop, reducing padding)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259242
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaron Keren [Fri, 29 Jan 2016 20:50:44 +0000 (20:50 +0000)]
Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment.
clang part in r259232, this is the LLVM part of the patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259240
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 29 Jan 2016 20:21:02 +0000 (20:21 +0000)]
[InstCombine] avoid an insertelement transformation that induces the opposite extractelement fold (PR26354)
We would infinite loop because we created a shufflevector that was wider than
needed and then failed to combine that with the insertelement. When subsequently
visiting the extractelement from that shuffle, we see that it's unnecessary,
delete it, and trigger another visit to the insertelement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259236
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Jan 2016 19:38:03 +0000 (19:38 +0000)]
Unbreak windows buildbots
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259231
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Jan 2016 19:24:12 +0000 (19:24 +0000)]
[CodeView] Implement .cv_inline_linetable
This support is _very_ rudimentary, just enough to get some basic data
into the CodeView debug section.
Left to do is:
- Use the combined opcodes to save space.
- Do something about code offsets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259230
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Fri, 29 Jan 2016 19:18:46 +0000 (19:18 +0000)]
ARM: don't mangle DAG constant if it has more than one use
The basic optimisation was to convert (mul $LHS, $complex_constant) into
roughly "(shl (mul $LHS, $simple_constant), $simple_amt)" when it was expected
to be cheaper. The original logic checks that the mul only has one use (since
we're mangling $complex_constant), but when used in even more complex
addressing modes there may be an outer addition that can pick up the wrong
value too.
I *think* the ARM addressing-mode problem is actually unreachable at the
moment, but that depends on complex assessments of the profitability of
pre-increment addressing modes so I've put a real check in there instead of an
assertion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259228
91177308-0d34-0410-b5e6-
96231b3b80d8
Derek Schuff [Fri, 29 Jan 2016 18:54:38 +0000 (18:54 +0000)]
[WebAssembly] Update test expectations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259223
91177308-0d34-0410-b5e6-
96231b3b80d8
Derek Schuff [Fri, 29 Jan 2016 18:37:49 +0000 (18:37 +0000)]
[WebAssembly] Support frame pointer
Add support for frame pointer use in prolog/epilog.
Supports dynamic allocas but not yet over-aligned locals.
Target-independend CG generates SP updates, but we still need to write
back the SP value to memory when necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259220
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 29 Jan 2016 18:25:33 +0000 (18:25 +0000)]
[X86] Add missing "CHECK" colon in r259065 test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259219
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 29 Jan 2016 18:16:43 +0000 (18:16 +0000)]
[codeview] Begin to add support for inlined call sites
Summary:
There are three parts to inlined call frames:
1. The inlinee line subsection
2. The inline site symbol record
3. The function ids referenced by both
This change starts by emitting function ids (3) for all subprograms and
emitting the base inline site symbol record (2). The actual line numbers
in (2) use an encoded format that will come next, along with the inlinee
line subsection.
Reviewers: majnemer
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16333
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259217
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Jan 2016 17:46:57 +0000 (17:46 +0000)]
Fix the build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259215
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Paulsson [Fri, 29 Jan 2016 17:22:43 +0000 (17:22 +0000)]
Temporarily revert "[ScheduleDAGInstrs::buildSchedGraph()] Handling of memory dependecies rewritten."
Some buildbot failures needs to be debugged.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259213
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Fri, 29 Jan 2016 17:21:38 +0000 (17:21 +0000)]
[SLP] Fix printing of debug statement (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259212
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Jan 2016 17:20:49 +0000 (17:20 +0000)]
[RS4GC] Address post-commit review on r259208 from David
NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259211
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Jan 2016 16:54:49 +0000 (16:54 +0000)]
[RS4GC] Remove unnecessary const_cast; NFC
GCRelocateInst::getDerivedPtr already returns a non-const llvm::Value
pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259209
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Jan 2016 16:50:34 +0000 (16:50 +0000)]
[RS4GC] Minor local cleanup to StabilizeOrder; NFC
- Locally declare struct, and call it BaseDerivedPair
- Use a lambda to compare, instead of a singleton with uninitialized
fields
- Add a constructor to BaseDerivedPair and use SmallVector::emplace_back
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259208
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 29 Jan 2016 16:39:04 +0000 (16:39 +0000)]
[CodeView] Fix dumping the is_stmt bit from the line table
Bug pointed out by George Rimar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259205
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Jan 2016 16:32:30 +0000 (16:32 +0000)]
[RS4GC] Remove unnecessary redirections from tests; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259204
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Jan 2016 16:32:25 +0000 (16:32 +0000)]
[RS4GC] Add some missing tests and CHECK: lines
I missed porting these in rL259129.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259203
91177308-0d34-0410-b5e6-
96231b3b80d8
Zoran Jovanovic [Fri, 29 Jan 2016 16:18:34 +0000 (16:18 +0000)]
[mips] Absolute value macro expansion
Author: obucina
Reviewers: dsanders
Differential Revision: http://reviews.llvm.org/D16323
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259202
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Paulsson [Fri, 29 Jan 2016 16:11:18 +0000 (16:11 +0000)]
[ScheduleDAGInstrs::buildSchedGraph()] Handling of memory dependecies rewritten.
The buildSchedGraph() was in need of reworking as the AA features had been
added on top of earlier code. It was very difficult to understand, and buggy.
There had been found cases where scheduling dependencies had actually been
missed (see r228686).
AliasChain, RejectMemNodes, adjustChainDeps() and iterateChainSucc() have
been removed. There are instead now just the four maps from Value to SUs, which
have been renamed to Stores, Loads, NonAliasStores and NonAliasLoads.
An unknown store used to become the AliasChain, but now becomes a store mapped
to 'unknownValue' (in Stores). What used to be PendingLoads is instead the
list of SUs mapped to 'unknownValue' in Loads.
RejectMemNodes and adjustChainDeps() used to be a safety-net for everything.
The SU maps were sometimes cleared and SUs were put in RejectMemNodes, where
adjustChainDeps() would look. Instead of this, a more straight forward approach
is used in maintaining the SU maps without clearing them and simply letting
them grow over time. Instead of the cutt-off in adjustChainDeps() search, a
reduction of maps will be done if needed (see below).
Each SUnit either becomes the BarrierChain, or is put into one of the maps. For
each SUnit encountered, all the information about previous ones are still
available until a new BarrierChain is set, at which point the maps are cleared.
For huge regions, the algorithm becomes slow, therefore the maps will get
reduced at a threshold (current default is 1000 nodes), by a fraction (default 1/2).
These values can be tuned by use of CL options in case some test case shows that
they need to be changed (-dag-maps-huge-region and -dag-maps-reduction-size).
There has not been any considerable change observed in output quality or compile
time. There may now be more DAG edges inserted than before (i.e. if A->B->C,
then A->C is not needed). However, in a comparison run there were fewer total
calls to AA, and a somewhat improved compile time, which means this seems to
be not a problem.
http://reviews.llvm.org/D8705
Reviewers: Hal Finkel, Andy Trick.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259201
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 29 Jan 2016 12:47:05 +0000 (12:47 +0000)]
[IR] Move definitions of users of Use::set to Value.h
Still ugly, but at least Use.h is self-contained again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259191
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 29 Jan 2016 12:47:01 +0000 (12:47 +0000)]
[IR] Shuffle the code for getSequentialElementType to type.h to avoid circular header dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259190
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexandros Lamprineas [Fri, 29 Jan 2016 10:23:32 +0000 (10:23 +0000)]
[ARM] Emit trap instruction using .inst directive
The trap instruction is emitted as a data-in-text rather
than an instruction. This patch uses the .inst directive
for emitting trap.
Differential Revision: http://reviews.llvm.org/D16684
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259182
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 29 Jan 2016 10:05:16 +0000 (10:05 +0000)]
AMDGPU: Remove 24-bit intrinsics
The known bit matching code seems to work reasonably well,
so these shouldn't really be needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259180
91177308-0d34-0410-b5e6-
96231b3b80d8
George Burgess IV [Fri, 29 Jan 2016 07:51:15 +0000 (07:51 +0000)]
Minor bugfix in AAResults::getModRefInfo.
Also removed a few redundant `else`s.
Bug was found by a test I wrote for MemorySSA (in review at
http://reviews.llvm.org/D7864; shiny update coming soon). So, assuming
that lands at some point, this should be covered by that. If anyone
feels this deserves its own explicit test case, please let me know.
I'll write one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259179
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 29 Jan 2016 07:20:30 +0000 (07:20 +0000)]
Refactor common code for PPC fast isel load immediate selection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259178
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 29 Jan 2016 07:20:01 +0000 (07:20 +0000)]
Since LI/LIS sign extend the constant passed into the instruction we should
check that the sign extended constant fits into 16-bits if we want a
zero extended value, otherwise go ahead and put it together piecemeal.
Fixes PR26356.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259177
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 29 Jan 2016 07:19:49 +0000 (07:19 +0000)]
Fix up conditional formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259176
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 29 Jan 2016 05:55:09 +0000 (05:55 +0000)]
[llvm-bcanalyzer] Dump bitcode wrapper header
This patch enables llvm-bcanalyzer to print the bitcode wrapper header
if the file has one, which is needed to test the changes made in
r258627 (bitcode-wrapper-header-armv7m.ll is the test case for r258627).
Differential Revision: http://reviews.llvm.org/D16642
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259162
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Jan 2016 05:33:15 +0000 (05:33 +0000)]
[WinEH] Don't perform state stores in cleanups
Our cleanups do not support true lexical nesting of funclets which
obviates the need to perform state stores.
This fixes PR26361.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259161
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 29 Jan 2016 03:34:36 +0000 (03:34 +0000)]
SmallPtrSetTest: More checks for the swap() testing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259152
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 29 Jan 2016 03:34:34 +0000 (03:34 +0000)]
SmallPtrSetTest: Check that iterators are still valid after erase()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259151
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Jan 2016 02:43:22 +0000 (02:43 +0000)]
Revert "Reapply commit r258404 with fix"
This reverts commit r258929, it caused PR26364.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259148
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 29 Jan 2016 02:23:13 +0000 (02:23 +0000)]
Fix some -Wstring-conversion warnings
I don't seem to see these locally, maybe just need to update my
compiler, or we haven't turned them on for LLVM's build and we should...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259146
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Fri, 29 Jan 2016 02:23:10 +0000 (02:23 +0000)]
[GVN] Add clarifying assert [NFCI]
Just adding an assert which makes invariants between AnalyzeLoadsFromClobberingLoads and GetLoadValueForLoad slightly more clear.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259145
91177308-0d34-0410-b5e6-
96231b3b80d8
Junmo Park [Fri, 29 Jan 2016 01:39:39 +0000 (01:39 +0000)]
Minor code cleanup. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259139
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 29 Jan 2016 01:08:41 +0000 (01:08 +0000)]
[AArch64] Fix i64 nontemporal high-half extraction.
Since we only have pair - not single - nontemporal store instructions,
we have to extract the high part into a separate register to be able
to use them.
When the initial nontemporal codegen support was added, I wrote the
extract using the nonsensical UBFX [0,32[.
Use the correct LSR form instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259134
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Jan 2016 01:03:20 +0000 (01:03 +0000)]
[RS4GC] Minor cleanups enabled by the previous change; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259133
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Jan 2016 01:03:17 +0000 (01:03 +0000)]
[RS4GC] Delete code that is dead due to r259129; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259132
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 29 Jan 2016 00:49:42 +0000 (00:49 +0000)]
Reland "[CodeView] Use assembler directives for line tables"
This reverts commit r259126 and relands r259117.
This time with updated library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259130
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Jan 2016 00:28:57 +0000 (00:28 +0000)]
[RS4GC] Clamp UseDeoptBundles to true and update tests
The full diff for the test directory may be hard to read because of the
filename clash; so here's all that happened as far as the tests are
concerned:
```
cd test/Transforms/RewriteStatepointsForGC
git rm *ll
git mv deopt-bundles/* ./
rmdir deopt-bundles
find . -name '*.ll' | xargs gsed -i 's/-rs4gc-use-deopt-bundles //g'
```
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259129
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 29 Jan 2016 00:13:28 +0000 (00:13 +0000)]
Revert "[CodeView] Use assembler directives for line tables"
This reverts commit r259117.
The LineInfo constructor is defined in the codeview library and we have
to link against it now. Doing that isn't trivial, so reverting for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259126
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Jan 2016 00:13:26 +0000 (00:13 +0000)]
[RS4GC] Port three tests to the deopt bundles directory
two-invokes-one-landingpad.ll was only moved (and not "ported"), but
having everything in the `deopt-bundles` directory will make later
changes more obvious.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259125
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 29 Jan 2016 00:03:34 +0000 (00:03 +0000)]
Add missing raw_ostream include
Prior to r259115 this was coming via LTOModule.h and MCContext.h.
Apparently this target is not built by 'check'. =(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259124
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 28 Jan 2016 23:59:35 +0000 (23:59 +0000)]
Silence gcc warning about ternary and enumerations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259123
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Thu, 28 Jan 2016 23:49:27 +0000 (23:49 +0000)]
[PlaceSafepoints] Use DEBUG() instead of TraceLSP
DEBUG() is the more idiomatic LLVM style.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259121
91177308-0d34-0410-b5e6-
96231b3b80d8
Easwaran Raman [Thu, 28 Jan 2016 23:44:41 +0000 (23:44 +0000)]
Lower inlining threshold when the caller has minsize attribute.
When the caller has optsize attribute, we reduce the inlinining threshold
to OptSizeThreshold (=75) if it is not already lower than that. We don't do
the same for minsize and I suspect it was not intentional. This also addresses
a FIXME regarding checking optsize attribute explicitly instead of using the
right wrapper.
Differential Revision: http://reviews.llvm.org/D16493
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259120
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 28 Jan 2016 23:31:52 +0000 (23:31 +0000)]
[CodeView] Use assembler directives for line tables
Adds a new family of .cv_* directives to LLVM's variant of GAS syntax:
- .cv_file: Similar to DWARF .file directives
- .cv_loc: Similar to the DWARF .loc directive, but starts with a
function id. CodeView line tables are emitted by function instead of
by compilation unit, so we needed an extra field to communicate this.
Rather than overloading the .loc direction further, we decided it was
better to have our own directive.
- .cv_stringtable: Emits the codeview string table at the current
position. Currently this just contains the filenames as
null-terminated strings.
- .cv_filechecksums: Emits the file checksum table for all files used
with .cv_file so far. There is currently no support for emitting
actual checksums, just filenames.
This moves the line table emission code down into the assembler. This
is in preparation for implementing the inlined call site line table
format. The inline line table format encoding algorithm requires knowing
the absolute code offsets, so it must run after the assembler has laid
out the code.
David Majnemer collaborated on this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259117
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 28 Jan 2016 23:21:12 +0000 (23:21 +0000)]
Remove unused MC includes from LTOModule.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259115
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Thu, 28 Jan 2016 23:03:19 +0000 (23:03 +0000)]
[PlaceSafepoints] Misc. minor cleanups; NFC
These changes are aimed at bringing PlaceSafepoints up to code with the
LLVM coding guidelines:
- Fix variable naming
- Use DenseSet instead of std::set
- Remove dead code
- Minor local code simplifications
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259112
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Thu, 28 Jan 2016 23:03:17 +0000 (23:03 +0000)]
[PlaceSafepoints] Remvoe unused headers, and sort #includes; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259111
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Thu, 28 Jan 2016 23:03:14 +0000 (23:03 +0000)]
[PlaceSafepoints] Eliminate dead code; NFC
Now that NoStatepoints is a constant `true`, we can get rid of a bunch
of dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259110
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 28 Jan 2016 22:55:45 +0000 (22:55 +0000)]
Don't mention a command line option in an error.
The program using this code may not have it.
Patch by Wilfred Hughes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259106
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 28 Jan 2016 22:35:48 +0000 (22:35 +0000)]
[RuntimeDyld][MachO] Fix handling of empty eh-frame sections.
This patch switches from an unguarded to a guarded loop for eh-frame record
fixups. In the unguarded version we would always make at least one call to
processFDE, which would then crash trying to fix up a frame that didn't exist.
Fixes <rdar://problem/
24301582>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259103
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 28 Jan 2016 22:29:51 +0000 (22:29 +0000)]
[X86][AVX] Added more thorough 256-bit vector consecutive load tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259100
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Thu, 28 Jan 2016 21:51:21 +0000 (21:51 +0000)]
[RS4GC] Change opt %s to opt < %s; NFC
This is as per http://llvm.org/docs/TestingGuide.html#fragile-tests. I
didn't touch the tests outside deopt-bundles/ since they'll be gone
soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259097
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Thu, 28 Jan 2016 21:51:14 +0000 (21:51 +0000)]
[PlaceSafepoints] Clamp NoStatepoints to true
This change permanently clamps -spp-no-statepoints to true (the code
deletion will come later). Tests that specifically tested
PlaceSafepoint's ability to wrap calls in gc.statepoint have been moved
to RS4GC's test suite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259096
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Thu, 28 Jan 2016 21:09:50 +0000 (21:09 +0000)]
Bring back the test-suite export in test-release without bringing back the build failures.
Summary:
r257791 disabled the test-suite export since the addition of CMakeLists.txt was
causing build failures. This patch exports the test-suite again but does so
outside the source tree so that it isn't included in the Phase[123] builds.
Reviewers: hans
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16679
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259094
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Thu, 28 Jan 2016 20:53:48 +0000 (20:53 +0000)]
AMDGPU: Match fmed3 patterns with legacy fmin/fmax
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259090
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Thu, 28 Jan 2016 20:53:42 +0000 (20:53 +0000)]
AMDGPU: Match some med3 patterns
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259089
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Thu, 28 Jan 2016 20:53:35 +0000 (20:53 +0000)]
AMDGPU: Set DX10Clamp bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259088
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Thu, 28 Jan 2016 20:36:46 +0000 (20:36 +0000)]
Fixed compilation issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259087
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 28 Jan 2016 19:54:20 +0000 (19:54 +0000)]
add masked intrinsic tests to show missed opportunities
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259083
91177308-0d34-0410-b5e6-
96231b3b80d8
Sergei Larin [Thu, 28 Jan 2016 18:59:28 +0000 (18:59 +0000)]
[SplitModule] In split module utility we should never separate alias with its aliasee.
Summary: When splitting module with preserving locals, we currently do not handle case of global alias being separated with its aliasee.
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16585
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259075
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Thu, 28 Jan 2016 18:59:04 +0000 (18:59 +0000)]
Address buildbot fallout from r259065
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259074
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Thu, 28 Jan 2016 18:20:05 +0000 (18:20 +0000)]
[X86] Don't transform X << 1 to X + X during type legalization
While legalizing a 64-bit shift left by 1, the following occurs:
We split the shift operand in half: a high half and a low half.
We then create an ADDC with the low half and a ADDE with the high half +
the carry bit from the ADDC.
This is problematic if X is any_ext'd because the high half computation
is now undef + undef + carry bit and there is no way to ensure that the
two undef values had the same bitwise representation. This results in
the lowest bit in the high half turning into garbage.
Instead, do not try to turn shifts into arithmetic during type
legalization.
This fixes PR26350.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259065
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Thu, 28 Jan 2016 18:01:03 +0000 (18:01 +0000)]
[PlaceSafepoints] Clean up tests; NFC
Use `opt < %s` instead of `opt %s` as specified in
http://llvm.org/docs/TestingGuide.html#fragile-tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259062
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 28 Jan 2016 17:48:29 +0000 (17:48 +0000)]
Make header self-contained.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259060
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Thu, 28 Jan 2016 17:13:44 +0000 (17:13 +0000)]
AMDGPU: waitcnt operand fixes
Summary:
Allow lgkmcnt up to 0xF (hardware allows that).
Fix mask for ExpCnt in AMDGPUInstPrinter.
Reviewers: tstellarAMD, arsenm
Subscribers: arsenm
Differential Revision: http://reviews.llvm.org/D16314
Patch by: Nikolay Haustov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259059
91177308-0d34-0410-b5e6-
96231b3b80d8
Mitch Bodart [Thu, 28 Jan 2016 16:40:51 +0000 (16:40 +0000)]
[X86] Test commit, fixed typos in comments. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259057
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Thu, 28 Jan 2016 16:11:27 +0000 (16:11 +0000)]
[PlaceSafepoints] Minor test cleanup; NFC
There is no need to place quotes around some_call and
personality_function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259055
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Thu, 28 Jan 2016 16:04:37 +0000 (16:04 +0000)]
AMDGPU: Move subtarget specific code out of AMDGPUInstrInfo.cpp
Summary:
Also delete all the stub functions that are identical to the
implementations in TargetInstrInfo.cpp.
Reviewers: arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D16609
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259054
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Thu, 28 Jan 2016 15:51:58 +0000 (15:51 +0000)]
[LICM] Keep metadata on control equivalent hoists
Summary:
If the instruction we're hoisting out of a loop into its preheader is
guaranteed to have executed in the loop, then the metadata associated
with the instruction (e.g. !range or !dereferenceable) is valid in the
preheader. This is because once we're in the preheader, we know we're
eventually going to reach the location the metadata was valid at.
This change makes LICM smarter around this, and helps it recognize cases
like these:
```
do {
int a = *ptr; !range !0
...
} while (i++ < N);
```
to
```
int a = *ptr; !range !0
do {
...
} while (i++ < N);
```
Earlier we'd drop the `!range` metadata after hoisting the load from
`ptr`.
Reviewers: igor-laevsky
Subscribers: mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D16669
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259053
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 28 Jan 2016 15:38:24 +0000 (15:38 +0000)]
[AArch64] Set MMOs on pre- and post-index instructions.
Without the MMOs the MI scheduler is unable to reason about the dependencies of
these instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259052
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 28 Jan 2016 15:29:11 +0000 (15:29 +0000)]
[x86] Merge multiple calls to DAG.getTargetLoweringInfo(). NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259050
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Thu, 28 Jan 2016 15:08:09 +0000 (15:08 +0000)]
Improve efficiency of handling unmapped subprogram metadata
The stripNullSubprograms function is very inefficient because
it walks all subprograms in all compile units in the dest module
any time a new module is linked in. For LTO in particular this will
get increasingly expensive as more modules are linked.
This patch improves the efficiency in several ways. The first is that
no scanning is necessary when there were no unneeded subprograms
identified in the first place. The second is that only the newly-linked
module's compile unit metadata should be examined.
Fixes PR26346.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259049
91177308-0d34-0410-b5e6-
96231b3b80d8
Oliver Stannard [Thu, 28 Jan 2016 13:19:47 +0000 (13:19 +0000)]
Revert r259035, it introduces a cyclic library dependency
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259045
91177308-0d34-0410-b5e6-
96231b3b80d8
Igor Breger [Thu, 28 Jan 2016 13:19:25 +0000 (13:19 +0000)]
AVX512: Fix truncate v32i8 to v32i1 lowering implementation.
Enable truncate 128/256bit packed byte/word with AVX512BW but without AVX512VL, use 512bit instructions.
Differential Revision: http://reviews.llvm.org/D16531
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259044
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 28 Jan 2016 11:26:34 +0000 (11:26 +0000)]
Unbreak the wasm backend again after r259035.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259040
91177308-0d34-0410-b5e6-
96231b3b80d8
Zoran Jovanovic [Thu, 28 Jan 2016 11:08:03 +0000 (11:08 +0000)]
[mips][microMIPS] Disable FastISel for microMIPS
Author: milena.vujosevic.janicic
Reviewers: dsanders
FastIsel is not supported for microMIPS, thus it needs to be disabled.
Test micromips-zero-mat-uses.ll is deleted since the tested sequence of instructions is not generated for microMIPS without FastISel.
Differential Revision: http://reviews.llvm.org/D15892
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259039
91177308-0d34-0410-b5e6-
96231b3b80d8
Oliver Stannard [Thu, 28 Jan 2016 10:07:27 +0000 (10:07 +0000)]
Add backend dignostic printer for unsupported features
Re-commit of r258951 after fixing layering violation.
The related LLVM patch adds a backend diagnostic type for reporting
unsupported features, this adds a printer for them to clang.
In the case where debug location information is not available, I've
changed the printer to report the location as the first line of the
function, rather than the closing brace, as the latter does not give the
user any information. This also affects optimisation remarks.
Differential Revision: http://reviews.llvm.org/D16590
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259035
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 28 Jan 2016 09:45:01 +0000 (09:45 +0000)]
[X86][SSE] Move setTargetShuffleZeroElements closer to getTargetShuffleMask. NFCI.
Keep target shuffle mask helper functions closer together.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259034
91177308-0d34-0410-b5e6-
96231b3b80d8
Junmo Park [Thu, 28 Jan 2016 09:42:39 +0000 (09:42 +0000)]
Minor code cleanups. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259033
91177308-0d34-0410-b5e6-
96231b3b80d8
Asaf Badouh [Thu, 28 Jan 2016 08:33:22 +0000 (08:33 +0000)]
[X86][AVX512] small fix in ptestm intrinsics
move ptestm{q|d} intrinsics from patterns form (in td file) to the intrinsics table
Differential Revision: http://reviews.llvm.org/D16633
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259029
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Thu, 28 Jan 2016 06:29:33 +0000 (06:29 +0000)]
ValueTracking: Use fixed array for assumption exclude set in Query.
The Query structure is constructed often and is relevant for compiletime
performance. We can replace the SmallPtrSet for assumption exclusions in
this structure with a fixed size array because we know the maximum
number of elements. This improves typical clang -O3 -emit-llvm compiletime
by 1.2% in my measurements.
Differential Revision: http://reviews.llvm.org/D16204
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259025
91177308-0d34-0410-b5e6-
96231b3b80d8
Junmo Park [Thu, 28 Jan 2016 06:23:33 +0000 (06:23 +0000)]
[DAGCombiner] Don't add volatile or indexed stores to ChainedStores
Summary:
findBetterNeighborChains does not handle volatile or indexed stores.
However, it did not check when adding stores to ChainedStores.
Reviewers: arsenm
Differential Revision: http://reviews.llvm.org/D16463
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259024
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Thu, 28 Jan 2016 05:09:01 +0000 (05:09 +0000)]
SmallPtrSet: Add missing include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259021
91177308-0d34-0410-b5e6-
96231b3b80d8
JF Bastien [Thu, 28 Jan 2016 05:05:17 +0000 (05:05 +0000)]
WebAssembly: fix build
r259016 didn't also revert r258957 which broken the WebAssembly build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259020
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Thu, 28 Jan 2016 04:49:14 +0000 (04:49 +0000)]
SmallPtrSet: Make destructor available for inlining
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259019
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Thu, 28 Jan 2016 04:49:11 +0000 (04:49 +0000)]
SmallPtrSet: Share some code between copy/move constructor/assignment operator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259018
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Thu, 28 Jan 2016 04:49:07 +0000 (04:49 +0000)]
SmallPtrSet: Remove trailing whitespace, fix indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259017
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 28 Jan 2016 04:41:32 +0000 (04:41 +0000)]
Revert r258951 (and r258950), "Refactor backend diagnostics for unsupported features"
It broke layering violation in LLVMIR.
clang r258950 "Add backend dignostic printer for unsupported features"
llvm r258951 "Refactor backend diagnostics for unsupported features"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259016
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 28 Jan 2016 03:59:09 +0000 (03:59 +0000)]
[WebAssembly] Don't stackify a register def past a get_local use in the same tree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259013
91177308-0d34-0410-b5e6-
96231b3b80d8
Junmo Park [Thu, 28 Jan 2016 01:23:18 +0000 (01:23 +0000)]
Minor code formatting cleanup. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259010
91177308-0d34-0410-b5e6-
96231b3b80d8