OSDN Git Service
Sanjay Patel [Fri, 9 Mar 2018 15:27:48 +0000 (15:27 +0000)]
[LangRef] make it clear that FP instructions do not have side effects
Also, fix the undef vs. UB example to use 'sdiv' because that can trigger div-by-zero UB.
The existing text for the constrained intrinsics says:
"By default, LLVM optimization passes assume that the rounding mode is round-to-nearest
and that floating point exceptions will not be monitored. Constrained FP intrinsics are
used to support non-default rounding modes and accurately preserve exception behavior
without compromising LLVM’s ability to optimize FP code when the default behavior is
used."
...so the additional text with the normal FP opcodes should make the different modes
clear.
Differential Revision: https://reviews.llvm.org/D44216
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327138
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Fri, 9 Mar 2018 15:22:42 +0000 (15:22 +0000)]
[dsymutil] Unify error handling and add color
We improved the handling of errors and warnings in dwarfdump's verifier
in rL314498. This patch does the same thing for dsymutil.
Differential revision: https://reviews.llvm.org/D44052
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327137
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 9 Mar 2018 14:46:44 +0000 (14:46 +0000)]
CMake: Make libxml2 show up in --system-libs (PR36660)
lib/WindowsManifest/CMakeLists.txt adds it to LLVM_SYSTEM_LIBS on that
target, but it was never getting picked up in
tools/llvm-config/CMakeLists.txt.
Differential Revision: https://reviews.llvm.org/D44302
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327135
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Pop [Fri, 9 Mar 2018 14:29:21 +0000 (14:29 +0000)]
[x86][aarch64] ask the backend whether it has a vector blend instruction
The code to match and produce more x86 vector blends was enabled for all
architectures even though the transform may pessimize the code for other
architectures that do not provide a vector blend instruction.
Added an aarch64 testcase to check that a VZIP instruction is generated instead
of byte movs.
Differential Revision: https://reviews.llvm.org/D44118
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327132
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Fri, 9 Mar 2018 13:52:03 +0000 (13:52 +0000)]
[llvm-mca] Move the logic that prints the summary into its own view. NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327128
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Fri, 9 Mar 2018 12:50:42 +0000 (12:50 +0000)]
[llvm-mca] Run clang-format on the source code. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327125
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Fri, 9 Mar 2018 12:24:42 +0000 (12:24 +0000)]
TableGen: Add a defset statement
Allows capturing a list of concrete instantiated defs.
This can be combined with foreach to create parallel sets of def
instantiations with less repetition in the source. This purpose is
largely also served by multiclasses, but in some cases multiclasses
can't be used.
The motivating example for this change is having a large set of
intrinsics, which are generated from the IntrinsicsBackend.td file
included by Intrinsics.td, and a corresponding set of instruction
selection patterns, which are generated via the backend's .td files.
Multiclasses cannot be used to eliminate the redundancy in this case,
because a multiclass cannot span both LLVM's common .td files and
the backend .td files at the same time.
Change-Id: I879e35042dceea542a5e6776fad23c5e0e69e76b
Differential revision: https://reviews.llvm.org/D44109
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327121
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Fri, 9 Mar 2018 12:24:30 +0000 (12:24 +0000)]
TableGen: Allow arbitrary list values as ranges of foreach
The changes to FieldInit are required to make field references (Def.field)
work inside a ForeachDeclaration: previously, Def.field wasn't resolved
immediately when Def was already a fully resolved DefInit.
Change-Id: I9875baec2fc5aac8c2b249e45b9cf18c65ae699b
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327120
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Fri, 9 Mar 2018 12:24:20 +0000 (12:24 +0000)]
TableGen: Remove unused ParseForeachMode
Use the default ParseValueMode instead of ParseForeachMode when
parsing the rule
ForeachDeclaration ::= ID '=' '[' ValueList ']'
because the only difference between the two is how an open brace '{'
is handled at the end. In the context of foreach, the 'in' keyword
will appear after the ForeachDeclaration, so this special handling
of '{' is not required.
Change-Id: I4d86bb73bab9ec26752e1273e5213df77cf28d1d
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327119
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Fri, 9 Mar 2018 12:24:14 +0000 (12:24 +0000)]
TableGen: More helpful error messages
Change-Id: Ic78afd0cd765fdb4cf1b7ecfb6bba22653ce6d29
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327118
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Fri, 9 Mar 2018 12:24:06 +0000 (12:24 +0000)]
TableGen: add !isa operation
Change-Id: Iddb724c3ae706d82933a2d82c91d07e0e36b30e3
Differential revision: https://reviews.llvm.org/D44105
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327117
91177308-0d34-0410-b5e6-
96231b3b80d8
Pavel Labath [Fri, 9 Mar 2018 11:58:59 +0000 (11:58 +0000)]
[DebugInfo/AccelTable] Fix inconsistency in getDIEOffset implementations
Summary:
Even though the getDIEOffset offset function was common for the two
accelerator table implementations, it was doing two different things:
for the Apple tables, it was returning the die offset relative to the
start of the section, whereas for DWARF v5 tables, it was relative to
the start of the CU.
I resolve this by renaming the function to getDIESectionOffset to make
it obvious what the function returns, and change the DWARF
implementation to return the section offset. I also keep the CU-relative
accessor, but only in the DWARF implementation (there is no way to get
this information for the Apple tables). This was not caught by existing
tests because the hand-written inputs also erroneously used section
offsets instead of CU-relative ones.
While looking at this, I noticed that the Apple implementation was not
fully correct either -- the header contains a DIEOffsetBase field, which
should be added to offsets encoded with the DW_FORM_ref*** family, but
this was not being used. This went unnoticed because all current writers
set this field to zero anyway. I fix this as well and add a hand-written
test which demonstrates the issue.
Reviewers: JDevlieghere, dblaikie
Subscribers: aprantl, llvm-commits
Differential Revision: https://reviews.llvm.org/D44202
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327116
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Fri, 9 Mar 2018 10:31:31 +0000 (10:31 +0000)]
[LV] Fix vectorizer's isUniform() abuse triggers assert in SCEV
Fixes PR36311.
See more detailed analysis in
https://bugs.llvm.org/show_bug.cgi?id=36311.
isUniform() information is recomputed after LV started transforming the
underlying IR and that triggered an assert in SCEV.
From vectorizer's architectural perspective, such information, while
still useful in vector code gen, should not be recomputed after the
start of transforming the LLVM IR. Instead, we should collect and cache
such information during the analysis phase of LV and use the cached info
during code gen.
From the symptom perspective, this assert as it stands right now is not
very useful. Legality already rejected loops that would trigger the
assert. As such, commenting out the assert is NFC from vectorizer's
functionality perspective. On top of that, just above the assertion, we
check for unit-strided load/store or
gather scatter. Addresses can't be uniform below that check.
From vectorization theory point of view, we don't have to reject all
cases of stores to uniform addresses. Eventually, we should support
safe/profitable cases.
This patch resolves the issue by removing the useless assertion that is
invoking LAA's isUniform() that requires up-to-date DomTree ---- once
vector code gen starts modifying CFG, we don't have an up-to-date
DomTree.
Patch by Hideki Saito <hideki.saito@intel.com>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327109
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Fri, 9 Mar 2018 09:56:24 +0000 (09:56 +0000)]
[Support] Move syntax highlighting into support
Move the DWARF syntax highlighting into support. This has several
advantages, most notably that this makes the WithColor RAII wrapper
available outside libDebugInfo. Furthermore, several projects all have
their own code for handling colored output. This provides a place to
centralize it.
Differential revision: https://reviews.llvm.org/D44215
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327108
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Fri, 9 Mar 2018 09:45:37 +0000 (09:45 +0000)]
[AArch64] Fix use of a regex in the win-alloca.ll test. NFC.
Check that the variable actually is the same as the one previously
matched.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327107
91177308-0d34-0410-b5e6-
96231b3b80d8
Stanislav Mekhanoshin [Fri, 9 Mar 2018 07:21:43 +0000 (07:21 +0000)]
[AMDGPU] Fixed V_DIV_FIXUP_F16 selection on GFX9
GFX9 should select opsel version.
Differential Revision: https://reviews.llvm.org/D44279
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327106
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 9 Mar 2018 05:42:44 +0000 (05:42 +0000)]
[X86] Remove duplicate isel pattern. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327104
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 9 Mar 2018 03:13:37 +0000 (03:13 +0000)]
Don't treat .symver as a regular alias definition.
This patch starts simplifying the handling of .symver.
For now it just moves the responsibility for creating an alias down to
the streamer. With that the asm streamer can pass a .symver unchanged,
which is nice since gas cannot parse "foo@bar = zed".
In a followup I hope to move the handling down to the writer so that
we don't need special hacks for avoiding breaking names with @@@ on
windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327101
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Morehouse [Fri, 9 Mar 2018 02:04:30 +0000 (02:04 +0000)]
Attempt to fix vecreduce-propagate-sd-flags.ll test.
Buildbots have been failing since r327079.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327100
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 9 Mar 2018 01:25:18 +0000 (01:25 +0000)]
Revert "[ThinLTO] Keep available_externally symbols live"
This reverts commit r327041 and the followup attempts at fixing the testcase as they're still failing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327094
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 9 Mar 2018 01:22:31 +0000 (01:22 +0000)]
[X86] Remove SRAs from v16i8 multiply lowering on sse2 targets
Previously we unpacked the even bytes of each input into the high byte of 16-bit elements then did an v8i16 arithmetic shift right by 8 bits to fill the upper bits of each word with sign bits. Then we did the v8i16 multiply and then masked to zero the upper 8-bits of each result. The similar was done for all the odd bytes. The results are then packed together with packuswb
Since we are masking each multiply result element to 8-bits, and those 8-bits are determined only by the lower 8-bits of each of the inputs, we don't need to fill the upper bits with sign bits. So we can just unpack into the low byte of each element and treat the upper bits as garbage. This is what gcc also does.
Differential Revision: https://reviews.llvm.org/D44267
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327093
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Fri, 9 Mar 2018 00:45:04 +0000 (00:45 +0000)]
LowerDbgDeclare: ignore dbg.declares for allocas with volatile access
There is no point in lowering a dbg.declare describing an alloca that
has volatile loads or stores as users, since the alloca cannot be
elided. Lowering the dbg.declare will result in larger debug info that
may also have worse coverage than just describing the alloca.
rdar://problem/
34496278
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327092
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 9 Mar 2018 00:23:35 +0000 (00:23 +0000)]
Fix header comment on SHA1 code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327086
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Fri, 9 Mar 2018 00:11:54 +0000 (00:11 +0000)]
Revert "[DWARF] Fix mixing assembler -g with DWARF .file directives."
This reverts commit
d6d9ac1ab5039ba1fe0f63c36eac2bdd9f0a79c9.
aka r327073
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327083
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Fri, 9 Mar 2018 00:06:10 +0000 (00:06 +0000)]
utils: add a helper class to lit for captured substitutions
On Windows, if the substitution contains a back reference, it would
removed due to the replacement of the escape character in lit. Create a
helper class to avoid this which will simply ignore the replacement and
mark the substitution as having capture groups being referenced.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327082
91177308-0d34-0410-b5e6-
96231b3b80d8
Sameer AbuAsal [Thu, 8 Mar 2018 23:41:40 +0000 (23:41 +0000)]
Propagate flags to SDValue in SplitVecOp_VECREDUCE
This patch is a fix for PR36642.
While legalizing long vector types, make sure the smaller types get the
flags of the wider type.
link: https://bugs.llvm.org/show_bug.cgi?id=36642
Change-Id: I0c2829639f094c862c10a6b51b342d4c2563e1fa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327079
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Thu, 8 Mar 2018 23:10:38 +0000 (23:10 +0000)]
For llvm-objdump and Mach-O files, update the printing of some thread states
from core files. I tested this against the couple of core files that were
getting errors about unknown thread flavors and it now produce the same output as
the Xcode otool-classic(1) tool. Since the core files are huge I didn’t include
them as test cases.
rdar://
38216356
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327077
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Thu, 8 Mar 2018 22:39:47 +0000 (22:39 +0000)]
[DWARF] Fix mixing assembler -g with DWARF .file directives.
We were effectively overriding an explicit '.file' directive with info
for the assembler source. That shouldn't happen.
Fixes PR36636.
Differential Revision: https://reviews.llvm.org/D44265
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327073
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Davis [Thu, 8 Mar 2018 22:22:26 +0000 (22:22 +0000)]
[DebugInfo] Add DW_AT_byte_size to vectors
Summary:
This patch adds the DW_AT_byte_size dwarf attribute to vectors.
This fixes PR21924
LLVM will round a vector up to the next alignable address, which can result in
the vector's representation in the object file being larger than what the
debugger will calculate via NumberOfElements * ElementSize. In such a case calling sizeof(MyVec) in the source will result in a different value than what a debugger might present. This situation can occur because LLVM permits non-power of two 'vector_size' attributes.
Reviewers: echristo, dexonsmith, aprantl
Reviewed By: aprantl
Subscribers: probinson, aprantl, llvm-commits, JDevlieghere
Tags: #debug-info
Differential Revision: https://reviews.llvm.org/D44048
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327072
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 22:05:27 +0000 (22:05 +0000)]
[Reassociate] fix test to be independent of FP undef
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327071
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 8 Mar 2018 21:54:30 +0000 (21:54 +0000)]
[Support] Pacify -Wsign-compare in unit test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327070
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 8 Mar 2018 21:53:36 +0000 (21:53 +0000)]
[TargetLowering] Remove redundant if condition in SimplifySetcc. NFC
We were checking the condition code a second time when we were already in a block with this same condition code check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327069
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 8 Mar 2018 21:31:10 +0000 (21:31 +0000)]
[DebugInfo] Move RangeListEntries instead of copying.
This is needed for correctness as RangeListEntry is not copy-assignable,
which std::vector might rely on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327067
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 21:30:56 +0000 (21:30 +0000)]
[AMDGPU] fix test to survive more FP undef constant folding
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327066
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Thu, 8 Mar 2018 21:25:30 +0000 (21:25 +0000)]
[NFC] Factor out a helper function for checking if a block has a potential early implicit exit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327065
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Thu, 8 Mar 2018 21:07:30 +0000 (21:07 +0000)]
Fix compilation failure with MSVC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327063
91177308-0d34-0410-b5e6-
96231b3b80d8
Kuba Mracek [Thu, 8 Mar 2018 21:02:18 +0000 (21:02 +0000)]
[asan] Fix a false positive ODR violation due to LTO ConstantMerge pass [llvm part, take 3]
This fixes a false positive ODR violation that is reported by ASan when using LTO. In cases, where two constant globals have the same value, LTO will merge them, which breaks ASan's ODR detection.
Differential Revision: https://reviews.llvm.org/D43959
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327061
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Thu, 8 Mar 2018 20:57:37 +0000 (20:57 +0000)]
Fix signed-unsigned comparison warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327060
91177308-0d34-0410-b5e6-
96231b3b80d8
Wolfgang Pieb [Thu, 8 Mar 2018 20:52:35 +0000 (20:52 +0000)]
[DWARF v5] Support for verbose dumping of .debug_rnglist entries
Adding verbose dumping to the recent implementation of dumping of v5 range list entries.
We're capturing the entries as is as they come in during extraction, including their file offset,
so we can dump them in more detail.
The offset table entries which are table-relative are shown as is (as in non-verbose mode)
and with the actual file offset they map to.
Reviewers: dblaikie, aprantl, jdevlieghere, jhenderson
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D43366
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327059
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 20:42:49 +0000 (20:42 +0000)]
[ConstantFold] fp_binop undef, undef --> undef
These are uncontroversial and independent of a proposed LangRef edits (D44216).
I tried to fix tests that would fold away:
rL327004
rL327028
rL327030
rL327034
I'm not sure if the Reassociate tests are meaningless yet, but they probably will be
as we add more folds, so if anyone has suggestions or wants to fix those, please do.
Differential Revision: https://reviews.llvm.org/D44258
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327058
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Thu, 8 Mar 2018 20:34:47 +0000 (20:34 +0000)]
[Support] Add WriteThroughMemoryBuffer.
This is like MemoryBuffer (read-only) and WritableMemoryBuffer
(writable private), but where the underlying file can be modified
after writing. This is useful when you want to open a file, make
some targeted edits, and then write it back out.
Differential Revision: https://reviews.llvm.org/D44230
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327057
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Thu, 8 Mar 2018 20:21:55 +0000 (20:21 +0000)]
[llvm-mca] Fix handling of zero-latency instructions.
This patch fixes a problem found when testing zero latency instructions on
target AArch64 -mcpu=exynos-m3 / -mcpu=exynos-m1.
On Exynos-m3/m1, direct branches are zero-latency instructions that don't consume
any processor resources. The DispatchUnit marks zero-latency instructions as
"executed", so that no scheduling is required. The event of instruction
executed is then notified to all the listeners, and the reorder buffer (managed
by the RetireControlUnit) is updated. In particular, the entry associated to the
zero-latency instruction in the reorder buffer is marked as executed.
Before this patch, the DispatchUnit forgot to assign a retire control unit token
(RCUToken) to the zero-latency instruction. As a consequence, the RCUToken was
used uninitialized. This was causing a crash in the RetireControlUnit logic.
Fixes PR36650.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327056
91177308-0d34-0410-b5e6-
96231b3b80d8
Kuba Mracek [Thu, 8 Mar 2018 20:13:39 +0000 (20:13 +0000)]
Revert r327053.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327055
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 8 Mar 2018 20:07:06 +0000 (20:07 +0000)]
[X86][AVX] Pull out variable permute creation from LowerBUILD_VECTORAsVariablePermute. NFCI.
This will make it easier to handle more complex cases than basic scaling or index masks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327054
91177308-0d34-0410-b5e6-
96231b3b80d8
Kuba Mracek [Thu, 8 Mar 2018 20:05:45 +0000 (20:05 +0000)]
[asan] Fix a false positive ODR violation due to LTO ConstantMerge pass [llvm part, take 2]
This fixes a false positive ODR violation that is reported by ASan when using LTO. In cases, where two constant globals have the same value, LTO will merge them, which breaks ASan's ODR detection.
Differential Revision: https://reviews.llvm.org/D43959
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327053
91177308-0d34-0410-b5e6-
96231b3b80d8
Vlad Tsyrklevich [Thu, 8 Mar 2018 19:46:19 +0000 (19:46 +0000)]
Specify that test from r327041 requires asserts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327051
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Thu, 8 Mar 2018 19:45:20 +0000 (19:45 +0000)]
Fix detection of COFF executable files.
One overload of this function would try to identify a file
by opening it and using the first 32 bytes to identify the magic
of the file. This didn't work properly when more than 32 bytes
is actually needed for magic detection to succeed. So now we
have this overload read in the entire file.
Differential Revision: https://reviews.llvm.org/D44225
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327050
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Davis [Thu, 8 Mar 2018 19:31:37 +0000 (19:31 +0000)]
[DebugInfo] Add verifier for DICompositeType vector
Summary:
This patch adds verification logic for DICompositeType vectors, ensuring that they only have one element, and that element is of type subrange.
This patch complements https://reviews.llvm.org/D44048
Reviewers: aprantl
Reviewed By: aprantl
Subscribers: JDevlieghere, llvm-commits
Tags: #debug-info
Differential Revision: https://reviews.llvm.org/D44262
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327048
91177308-0d34-0410-b5e6-
96231b3b80d8
Vlad Tsyrklevich [Thu, 8 Mar 2018 19:20:08 +0000 (19:20 +0000)]
Fix test failure introduced in r327041
The "Assertion: `...' failed" error message format is not identical
across platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327047
91177308-0d34-0410-b5e6-
96231b3b80d8
Alina Sbirlea [Thu, 8 Mar 2018 19:15:00 +0000 (19:15 +0000)]
[MemorySSA] Split PtrIntPair as this fails on win/arm.
Summary: Split PtrIntPair into Instruction and OptionalAlias<Result>. The latter needs 3 bits, which appear unavailable on certain archs.
Subscribers: sanjoy, jlebar, Prazek, llvm-commits, kristof.beyls
Differential Revision: https://reviews.llvm.org/D44268
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327046
91177308-0d34-0410-b5e6-
96231b3b80d8
Vlad Tsyrklevich [Thu, 8 Mar 2018 18:48:03 +0000 (18:48 +0000)]
[ThinLTO] Keep available_externally symbols live
Summary:
This change fixes PR36483. The bug was originally introduced by a change
that marked non-prevailing symbols dead. This broke LowerTypeTests
handling of available_externally functions, which are non-prevailing.
LowerTypeTests uses liveness information to avoid emitting thunks for
unused functions.
Marking available_externally functions dead is incorrect, the functions
are used though the function definitions are not. This change keeps them
live, and lets the EliminateAvailableExternally/GlobalDCE passes remove
them later instead.
I've also enabled EliminateAvailableExternally for all optimization
levels, I believe it being disabled for O1 was an oversight.
Reviewers: pcc, tejohnson
Reviewed By: tejohnson
Subscribers: grimar, mehdi_amini, inglorion, eraman, llvm-commits
Differential Revision: https://reviews.llvm.org/D43690
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327041
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 18:34:23 +0000 (18:34 +0000)]
[InstCombine] add min/max tests with not ops; NFC
These are based on:
https://bugs.llvm.org/show_bug.cgi?id=35875
It's not clear if/how instcombine can reduce these,
but we should have the tests here either way to
document current behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327039
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 8 Mar 2018 18:15:13 +0000 (18:15 +0000)]
[Hexagon] Ignore indexed loads when handling unaligned loads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327037
91177308-0d34-0410-b5e6-
96231b3b80d8
David Zarzycki [Thu, 8 Mar 2018 18:03:15 +0000 (18:03 +0000)]
[Tests] Remove empty test file that causes the test suite to fail
This empty file was "created" by r327033, which attempted to revert
r327029, which introduced the file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327036
91177308-0d34-0410-b5e6-
96231b3b80d8
Alina Sbirlea [Thu, 8 Mar 2018 18:03:14 +0000 (18:03 +0000)]
Expose must/may alias info in MemorySSA.
Summary:
Building MemorySSA gathers alias information for Defs/Uses.
Store and expose this information when optimizing uses (when building MemorySSA),
and when optimizing defs or updating uses (getClobberingMemoryAccess).
Current patch does not propagate alias information through MemoryPhis.
Reviewers: gbiv, dberlin
Subscribers: Prazek, sanjoy, llvm-commits
Differential Revision: https://reviews.llvm.org/D38569
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327035
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 17:34:25 +0000 (17:34 +0000)]
[AMDGPU] fix test to survive the most basic undef constant folding
This will likely need to be changed again for anything more than:
fmul undef, undef -> undef
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327034
91177308-0d34-0410-b5e6-
96231b3b80d8
Kuba Mracek [Thu, 8 Mar 2018 17:32:00 +0000 (17:32 +0000)]
Revert r327029
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327033
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 17:24:30 +0000 (17:24 +0000)]
[x86] fix test to be independent of FP undef
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327030
91177308-0d34-0410-b5e6-
96231b3b80d8
Kuba Mracek [Thu, 8 Mar 2018 17:24:06 +0000 (17:24 +0000)]
[asan] Fix a false positive ODR violation due to LTO ConstantMerge pass [llvm part]
This fixes a false positive ODR violation that is reported by ASan when using LTO. In cases, where two constant globals have the same value, LTO will merge them, which breaks ASan's ODR detection.
Differential Revision: https://reviews.llvm.org/D43959
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327029
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 17:13:57 +0000 (17:13 +0000)]
[StructurizeCFG] fix test to be independent of FP undef
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327028
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Thu, 8 Mar 2018 17:02:28 +0000 (17:02 +0000)]
[llvm-mca] add override keyword to method ResourcePressureView::printView().
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327027
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 16:56:49 +0000 (16:56 +0000)]
[x86] regenerate checks; NFC
This test will fail if we fix FP undef constant folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327026
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Thu, 8 Mar 2018 16:34:19 +0000 (16:34 +0000)]
[llvm-mca] HWEventListener is a class, not struct.
This should appease the buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327025
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Thu, 8 Mar 2018 16:29:08 +0000 (16:29 +0000)]
merge-request.sh: Update 6.0 metabug for 6.0.1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327024
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 16:25:37 +0000 (16:25 +0000)]
[StructurizeCFG] auto-generate full checks; NFC
Not sure what the intent of this test is, but this will change when we fix FP undef constant folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327022
91177308-0d34-0410-b5e6-
96231b3b80d8
Stefan Pintilie [Thu, 8 Mar 2018 16:24:33 +0000 (16:24 +0000)]
[Power9] Add more missing instructions to the Power 9 scheduler
With this patch we should be able to mark the Power 9 model as complete.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327021
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Thu, 8 Mar 2018 16:24:16 +0000 (16:24 +0000)]
AMDGPU/GlobalISel: Pass subtarget + TM to LegalizerInfo
These are the parameters x86 already uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327020
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Thu, 8 Mar 2018 16:08:43 +0000 (16:08 +0000)]
[llvm-mca] Unify the API for the various views. NFCI
This allows the customization of the performance report.
Users can specify their own custom sequence of views.
Each view contributes a portion of the performance report generated by the
BackendPrinter.
Internally, class BackendPrinter keeps a sequence of views; views are printed
out in sequence when method 'printReport()' is called.
This patch addresses one of the two review comments from Clement in D43951.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327018
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Thu, 8 Mar 2018 15:52:45 +0000 (15:52 +0000)]
Fix unused function warning in StatisticTest.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327015
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 15:46:38 +0000 (15:46 +0000)]
[InstCombine] regenerate checks; NFC
We may not need any of these tests after rL327012, but leaving
them here for now until that's confirmed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327014
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 15:39:39 +0000 (15:39 +0000)]
[InstSimplify] add more tests for FP undef; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327012
91177308-0d34-0410-b5e6-
96231b3b80d8
Pavel Labath [Thu, 8 Mar 2018 15:34:42 +0000 (15:34 +0000)]
DWARFVerifier: Basic verification of .debug_names
Summary:
This patch adds basic .debug_names verification capabilities to the
DWARF verifier. Right now, it checks that the headers and abbreviation
tables of the individual name indexes can be parsed correctly, it
verifies the buckets table and the cross-checks the CU lists for
consistency. I intend to add further checks in follow-up patches.
Reviewers: JDevlieghere, aprantl, probinson, dblaikie
Subscribers: vleschuk, echristo, clayborg, llvm-commits
Differential Revision: https://reviews.llvm.org/D44211
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327011
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Thu, 8 Mar 2018 15:34:38 +0000 (15:34 +0000)]
[llvm-mca] Emit the 'Instruction Info' table before the resource pressure view.
In future, both the summary information and the 'instruction info' table should
be moved into a separate "Summary" view.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327010
91177308-0d34-0410-b5e6-
96231b3b80d8
Michal Gorny [Thu, 8 Mar 2018 15:09:38 +0000 (15:09 +0000)]
[cmake] Append -Wl,-rpath-link conditionally to GNULD
Append -Wl,-rpath-link conditionally to whether GNU ld.bfd is used
rather than the Linux+!gold conditionals. Also move it out of 'else'
branch of *BSD handling. This fixes build failures with ld.bfd
on Gentoo/FreeBSD, and should cause no harm on other systems using
ld.bfd.
This patch improves the original logic by reusing results of linker
detection introduced in r307852.
Differential Revision: https://reviews.llvm.org/D43751
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327007
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 8 Mar 2018 14:57:08 +0000 (14:57 +0000)]
[InstCombine, NewGVN] remove FP undef from tests
I'm trying to preserve the intent of these tests by using
non-undef operands; if we fix FP undef folding these tests
will not pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327004
91177308-0d34-0410-b5e6-
96231b3b80d8
David Zarzycki [Thu, 8 Mar 2018 14:43:24 +0000 (14:43 +0000)]
[CMake] Add missing test dependency
This makes 'ninja clean ; ninja check-all' work again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327002
91177308-0d34-0410-b5e6-
96231b3b80d8
Ed Maste [Thu, 8 Mar 2018 13:52:04 +0000 (13:52 +0000)]
Use ellipsis ... to indicate omitted commands
In an example like "clang -fxray-instrument .." the .. could be confused
with a literal .. (parent directory), which is used in commands like
"cmake -GNinja .."
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327000
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Thu, 8 Mar 2018 13:43:11 +0000 (13:43 +0000)]
Add llvm-mca.rst to the table of contents in docs/CommandGuide.
This should fix the documentation error reported by builder llvm-sphinx-docs
(build #16407) after r326998.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326999
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Thu, 8 Mar 2018 13:05:02 +0000 (13:05 +0000)]
[llvm-mca] LLVM Machine Code Analyzer.
llvm-mca is an LLVM based performance analysis tool that can be used to
statically measure the performance of code, and to help triage potential
problems with target scheduling models.
llvm-mca uses information which is already available in LLVM (e.g. scheduling
models) to statically measure the performance of machine code in a specific cpu.
Performance is measured in terms of throughput as well as processor resource
consumption. The tool currently works for processors with an out-of-order
backend, for which there is a scheduling model available in LLVM.
The main goal of this tool is not just to predict the performance of the code
when run on the target, but also help with diagnosing potential performance
issues.
Given an assembly code sequence, llvm-mca estimates the IPC (instructions per
cycle), as well as hardware resources pressure. The analysis and reporting style
were mostly inspired by the IACA tool from Intel.
This patch is related to the RFC on llvm-dev visible at this link:
http://lists.llvm.org/pipermail/llvm-dev/2018-March/121490.html
Differential Revision: https://reviews.llvm.org/D43951
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326998
91177308-0d34-0410-b5e6-
96231b3b80d8
James Henderson [Thu, 8 Mar 2018 10:53:34 +0000 (10:53 +0000)]
[DWARF] Don't attempt to parse line tables at invalid offsets
Whilst working on improvements to the error handling of the debug line
parsing code, I noticed that if an invalid offset were to be specified
in a call to getOrParseLineTable(), an entry in the LineTableMap would
still be created, even if the offset was not within the section range.
The immediate parsing attempt afterwards would fail (it would end up
getting a version of 0), and thereafter, any subsequent calls to
getOrParseLineTable or getLineTable would return the default-
constructed, invalid line table. In reality, we shouldn't even attempt
to parse this table, and we should always return a nullptr from these
two functions for this situation.
I have tested this via a unit test, which required some new framework
for unit testing debug line. My plan is to add quite a few more unit
tests for the new error reporting mechanism that will follow shortly,
hence the reason why the supporting code for the tests are written the
way they are - I intend to extend the DwarfGenerator class to support
generating debug line. At that point, I'll make sure that there are a
few positive test cases for this and the parsing code too.
Differential Revision: https://reviews.llvm.org/D44200
Reviewers: JDevlieghere, aprantl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326995
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Thu, 8 Mar 2018 10:39:12 +0000 (10:39 +0000)]
[dsymutil] Embed toolchain in dSYM bundle
Allow us to embed the (Xcode) toolchain in the dSYM bundle's property
list.
Differential revision: https://reviews.llvm.org/D44151
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326994
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Thu, 8 Mar 2018 10:38:45 +0000 (10:38 +0000)]
[MCSchedule] Always generate processor resource names.
With this patch, the tablegen 'SubtargetEmitter' always generates processor
resource names.
The impact of this patch on the code size of other llvm tools is small. I have
observed an average increase of 0.03% in code size when doing a release build of
LLVM (on windows, using MSVC) with all the default backends.
This change is done in preparation for the upcoming llvm-mca patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326993
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 8 Mar 2018 08:02:52 +0000 (08:02 +0000)]
[X86] Change X86::PMULDQ/PMULUDQ opcodes to take vXi64 type as input instead of vXi32.
This instruction can be thought of as reading either the even elements of a vXi32 input or the lower half of each element of a vXi64 input. We currently use the vXi32 interpretation, but vXi64 matches better with its broadcast behavior in EVEX.
I'm looking at moving MULDQ/MULUDQ creation to a DAG combine so we can do it when AVX512DQ is enabled without having to go through Custom lowering. But in some of the test cases we failed to use a broadcast load due to the size difference. This should help with that.
I'm also wondering if we can model these instructions in native IR and remove the intrinsics and I think using a vXi64 type will work better with that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326991
91177308-0d34-0410-b5e6-
96231b3b80d8
Tony Tye [Thu, 8 Mar 2018 05:46:01 +0000 (05:46 +0000)]
[AMDGPU] Update AMDGOUUsage.rst descriptions
- Improve description of XNACK ELF flag.
- Rename all uses of wave to wavefront to be consistent.
Differential Revision: https://reviews.llvm.org/D43983
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326989
91177308-0d34-0410-b5e6-
96231b3b80d8
Heejin Ahn [Thu, 8 Mar 2018 04:05:37 +0000 (04:05 +0000)]
[WebAssembly] Add except_ref as a first-class type
Summary: Add except_ref as a first-class type, according to the [[https://github.com/WebAssembly/exception-handling/blob/master/proposals/Level-1.md | Level 1 exception handling proposal ]].
Reviewers: dschuff
Subscribers: jfb, sbc100, llvm-commits
Differential Revision: https://reviews.llvm.org/D43706
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326985
91177308-0d34-0410-b5e6-
96231b3b80d8
Heejin Ahn [Thu, 8 Mar 2018 03:47:52 +0000 (03:47 +0000)]
[WebAssembly] Add IntrNoReturn property to throw/rethrow intrinsics
Reviewers: dschuff
Subscribers: jfb, sbc100, jgravelle-google, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D43740
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326984
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Thu, 8 Mar 2018 02:36:25 +0000 (02:36 +0000)]
Support resetting STATISTIC() values using llvm::ResetStatistics()
Summary:
Most of the time, compiler statistics can be obtained using a process that
performs a single compilation and terminates such as llc. However, this isn't
always the case. JITs for example, perform multiple compilations over their
lifetime and STATISTIC() will record cumulative values across all of them.
Provide tools like this with the facilities needed to measure individual
compilations by allowing them to reset the STATISTIC() values back to zero using
llvm::ResetStatistics(). It's still the tools responsibility to ensure that they
perform compilations in such a way that the results are meaningful to their
intended use.
Reviewers: qcolombet, rtereshin, bogner, aditya_nandakumar
Reviewed By: bogner
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D44181
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326981
91177308-0d34-0410-b5e6-
96231b3b80d8
Fangrui Song [Thu, 8 Mar 2018 01:28:45 +0000 (01:28 +0000)]
Add attributes and fix some keywords in llvm-mode.el
Reviewers: rafael, echristo
Reviewed By: echristo
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D44135
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326978
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Haarman [Thu, 8 Mar 2018 01:13:10 +0000 (01:13 +0000)]
Revert "[LTO] Support filtering by hotness threshold"
This reverts commit
1f3bd185c53beb6aa68446974b7e80837abd6ef0 (r326107)
because it fails
ThinLTO/X86/diagnostic-handler-remarks-with-hotness.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326975
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Auler [Thu, 8 Mar 2018 00:46:53 +0000 (00:46 +0000)]
Reland "[DebugInfo] Support DWARF expressions in eh_frame"
Summary:
Original change was D43313 (r326932) and reverted by r326953 because it
broke an LLD test and a windows build. The LLD test was already fixed in
lld commit r326944 (thanks maskray). This is the original change with
the windows build fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326970
91177308-0d34-0410-b5e6-
96231b3b80d8
Weiming Zhao [Thu, 8 Mar 2018 00:28:25 +0000 (00:28 +0000)]
[AArch64] Fix UB about shift amount exceeds data bit-width
Summary:
Fixes an UB caught by sanitizer. The shift amount might be larger than 32 so the operand should be 1ULL.
In this patch, we replace the original expression with existing API with uint64_t type.
Reviewers: eli.friedman, rengolin
Reviewed By: rengolin
Subscribers: rengolin, javed.absar, llvm-commits, kristof.beyls
Differential Revision: https://reviews.llvm.org/D44234
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326969
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 8 Mar 2018 00:21:17 +0000 (00:21 +0000)]
[X86] Fix some isel patterns that used aligned vector load instructions with unaligned predicates.
These patterns weren't checking the alignment of the load, but were using the aligned instructions. This will cause a GP fault if the data isn't aligned.
I believe these were introduced in r312450.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326967
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 8 Mar 2018 00:17:13 +0000 (00:17 +0000)]
Delete code that is probably dead since r249303.
With r249303 the expression evaluation should expand variables that
are not in sections (and so don't have an atom).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326966
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zemtsov [Thu, 8 Mar 2018 00:07:26 +0000 (00:07 +0000)]
Fix build broken by r326959
Adding Demangle to link time dependencies of Symbolize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326964
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 7 Mar 2018 23:56:42 +0000 (23:56 +0000)]
[X86][SSE] LowerBUILD_VECTORAsVariablePermute - reorder permute types. NFCI.
Reorder into 128/256/512 bit vector size groupings.
NFCI commit before some new features.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326963
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zemtsov [Wed, 7 Mar 2018 23:07:34 +0000 (23:07 +0000)]
Use itaniumDemangle in llvm-symbolizer
Currently on Windows (_MSC_VER) LLVMSymbolizer supports only Microsoft mangling.
This fix just explicitly uses itaniumDemangle when mangled name starts with _Z.
Differential Revision: https://reviews.llvm.org/D44192
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326959
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 7 Mar 2018 22:43:08 +0000 (22:43 +0000)]
[TTI] add explanatory comments for getArithmeticInstrCost; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326956
91177308-0d34-0410-b5e6-
96231b3b80d8
Evandro Menezes [Wed, 7 Mar 2018 22:35:32 +0000 (22:35 +0000)]
[AArch64] Adjust the cost of integer vector division
Since there is no instruction for integer vector division, factor in the
cost of singling out each element to be used with the scalar division
instruction.
Differential revision: https://reviews.llvm.org/D43974
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326955
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Wed, 7 Mar 2018 22:29:48 +0000 (22:29 +0000)]
Revert r326932: [DebugInfo] Support DWARF expressions in eh_frame
This reverts commit rr326932 because it broke lld/test/ELF/eh-frame-hdr-augmentation.s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326953
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Pop [Wed, 7 Mar 2018 22:07:13 +0000 (22:07 +0000)]
[AArch64] add missing pattern for insert_subvector undef
The attached testcase started failing after the patch to define
isExtractSubvectorCheap with the following pattern mismatch:
ISEL: Starting pattern match
Initial Opcode index to 85068
Match failed at index 85076
LLVM ERROR: Cannot select: t47: v8i16 = insert_subvector undef:v8i16, t43, Constant:i64<0>
The code generated from llvm/lib/Target/AArch64/AArch64InstrInfo.td
def : Pat<(insert_subvector undef, (v4i16 FPR64:$src), (i32 0)),
(INSERT_SUBREG (v8i16 (IMPLICIT_DEF)), FPR64:$src, dsub)>;
is in ninja/lib/Target/AArch64/AArch64GenDAGISel.inc
At the location of the error it is:
/* 85076*/ OPC_CheckChild2Type, MVT::i32,
And it failed to match the type of operand 2.
Adding another def-pat for i64 fixes the failed def-pat error:
def : Pat<(insert_subvector undef, (v4i16 FPR64:$src), (i64 0)),
(INSERT_SUBREG (v8i16 (IMPLICIT_DEF)), FPR64:$src, dsub)>;
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326949
91177308-0d34-0410-b5e6-
96231b3b80d8