OSDN Git Service
Matt Morehouse [Thu, 22 Mar 2018 19:50:10 +0000 (19:50 +0000)]
Document optforfuzzing attribute created in r328214.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328236
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Thu, 22 Mar 2018 19:37:56 +0000 (19:37 +0000)]
[DWARF] Replace assert with diagnostic. PR36868.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328235
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 22 Mar 2018 19:36:54 +0000 (19:36 +0000)]
Move the initialization of the Meta Renamer pass over to IPO along with the rest of it that was moved in r328209
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328234
91177308-0d34-0410-b5e6-
96231b3b80d8
Nirav Dave [Thu, 22 Mar 2018 19:32:07 +0000 (19:32 +0000)]
[DAG, X86] Fix ISel-time node insertion ids
As in SystemZ backend, correctly propagate node ids when inserting new
unselected nodes into the DAG during instruction Seleciton for X86
target.
Fixes PR36865.
Reviewers: jyknight, craig.topper
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D44797
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328233
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 22 Mar 2018 19:22:51 +0000 (19:22 +0000)]
[X86] Correct the scheduling data for some of the 32 and 64 bit multiplies to as best as I understand how they are implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328231
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Neilson [Thu, 22 Mar 2018 18:36:15 +0000 (18:36 +0000)]
[InstCombineCalls] Update deprecated API usage (NFC)
Summary:
Just updating a call to MemSetInst::getAlignment() to MemSetInst::getDestAlignment(). The
former has been deprecated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328227
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 22 Mar 2018 18:29:16 +0000 (18:29 +0000)]
[X86][Btver2] Conversion, MaskedLoad/MaskedStore and NTStores all are scheduled through the JFPU1 pipe
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328226
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 22 Mar 2018 17:43:12 +0000 (17:43 +0000)]
[X86][Btver2] FCMP (inc FMAX/FMIN) instructions use the JFPA functional pipe
The ymm instructions are double pumped as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328222
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Thu, 22 Mar 2018 17:37:28 +0000 (17:37 +0000)]
[Codeview/PDB] Rename some methods for clarity.
NFC, this just renames some methods to better express what they
do, and also adds a few helper methods to add some symmetry to the
API in a few places (for example there was a getStringFromId but not
a getIdFromString method in the string table).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328221
91177308-0d34-0410-b5e6-
96231b3b80d8
Aditya Nandakumar [Thu, 22 Mar 2018 17:31:38 +0000 (17:31 +0000)]
[GISel]: Fix incorrect IRTranslation while translating null pointer types
https://reviews.llvm.org/D44762
Currently IRTranslator produces
%vreg17<def>(p0) = G_CONSTANT 0;
instead we should build
%vreg16(s64) = G_CONSTANT 0
%vreg17(p0) = G_INTTOPTR %vreg16
reviewed by @aemerson.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328218
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 22 Mar 2018 17:25:38 +0000 (17:25 +0000)]
[X86][Btver2] FMUL ymm instructions are double pumped on the JFPM functional pipe
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328217
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 22 Mar 2018 17:17:47 +0000 (17:17 +0000)]
[ARM] Enable the full InstRW overlap check for ARMScheduleR52.td
This fixes a few issues with the R52 instregexs to enable the full overlap checking
Differential Revision: https://reviews.llvm.org/D44767
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328216
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Morehouse [Thu, 22 Mar 2018 17:07:51 +0000 (17:07 +0000)]
[SimplifyCFG] Create attribute for fuzzing-specific optimizations.
Summary:
When building with libFuzzer, converting control flow to selects or
obscuring the original operands of CMPs reduces the effectiveness of
libFuzzer's heuristics.
This patch provides an attribute to disable or modify certain optimizations
for optimal fuzzing signal.
Provides a less aggressive alternative to https://reviews.llvm.org/D44057.
Reviewers: vitalybuka, davide, arsenm, hfinkel
Reviewed By: vitalybuka
Subscribers: junbuml, mehdi_amini, wdng, javed.absar, hiraditya, llvm-commits, kcc
Differential Revision: https://reviews.llvm.org/D44232
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328214
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Thu, 22 Mar 2018 16:43:21 +0000 (16:43 +0000)]
[DWARF] Add EmitDwarfOffset function, NFC.
Added EmitDwarfOffset function after discussion with Eric Christofer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328212
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Thu, 22 Mar 2018 16:39:54 +0000 (16:39 +0000)]
vim: rename `singlethread` to `syncscope`
SVN r307722 renamed the keyword from `singlethread` to `syncscope`.
Update the syntax file accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328211
91177308-0d34-0410-b5e6-
96231b3b80d8
Anna Thomas [Thu, 22 Mar 2018 16:03:59 +0000 (16:03 +0000)]
[LoopPredication] Add profitability check based on BPI
Summary:
LoopPredication is not profitable when the loop is known to always exit
through some block other than the latch block.
A coarse grained latch check can cause loop predication to predicate the
loop, and unconditionally deoptimize.
However, without predicating the loop, the guard may never fail within the
loop during the dynamic execution because the non-latch loop termination
condition exits the loop before the latch condition causes the loop to
exit.
We teach LP about this using BranchProfileInfo pass.
Reviewers: apilipenko, skatkov, mkazantsev, reames
Reviewed by: skatkov
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D44667
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328210
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 22 Mar 2018 15:57:47 +0000 (15:57 +0000)]
Move MetaRenamer from Transforms/UTils to Transforms/IPO since it implements part of IPO.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328209
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Thu, 22 Mar 2018 15:48:01 +0000 (15:48 +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, really, even for .s files emitted by Clang.
Differential Revision: https://reviews.llvm.org/D44265
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328208
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 22 Mar 2018 15:29:55 +0000 (15:29 +0000)]
Revert "[InstrProf] Support for external functions in text format."
This reverts commit r328132. Breaks FDO selfhost. I'm seeing
error: /tmp/profraw: Invalid instrumentation profile data (bad magic)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328207
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Thu, 22 Mar 2018 15:23:33 +0000 (15:23 +0000)]
[CallSiteSplitting] Preserve DominatorTreeAnalysis.
The dominator tree analysis can be preserved easily.
Some other kinds of analysis can probably be preserved
too.
Reviewers: junbuml, dberlin
Reviewed By: dberlin
Differential Revision: https://reviews.llvm.org/D43173
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328206
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 22 Mar 2018 15:23:21 +0000 (15:23 +0000)]
[MC] fix documentation comments; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328205
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 22 Mar 2018 14:56:18 +0000 (14:56 +0000)]
[X86][SSE42] Use the default PCMPEST/PCMPIST scheduler classes directly. NFCI.
Models were completely overriding all SSE42 strins instructions when the default classes could be used for exactly the same coverage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328203
91177308-0d34-0410-b5e6-
96231b3b80d8
Pavel Labath [Thu, 22 Mar 2018 14:50:44 +0000 (14:50 +0000)]
DWARFVerifier: verify debug_names abbreviation table
Summary:
This commit adds checks of the abbreviation table in a DWARF v5 Name
Index. The most interesting/useful check is the one which checks that
each index attributes is encoded using the correct form class, but it
also checks for the more obvious errors like unknown
forms/tags/attributes and duplicated attributes.
Reviewers: JDevlieghere, aprantl, dblaikie
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D44736
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328202
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Thu, 22 Mar 2018 14:14:49 +0000 (14:14 +0000)]
[llvm-mca] Minor refactoring. NFCI
Also, removed a couple of unused methods from class Instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328198
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 22 Mar 2018 14:08:16 +0000 (14:08 +0000)]
[InstCombine] add folds for xor-of-icmp signbit tests (PR36682)
This is a retry of r328119 which was reverted at r328145 because
it could crash by trying to combine icmps with different operand
types. This version has a check for that and additional tests.
Original commit message:
This is part of solving:
https://bugs.llvm.org/show_bug.cgi?id=36682
There's also a leftover improvement from the long-ago-closed:
https://bugs.llvm.org/show_bug.cgi?id=5438
https://rise4fun.com/Alive/dC1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328197
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 22 Mar 2018 13:37:30 +0000 (13:37 +0000)]
[X86][CLMUL] Use the default CLMUL scheduler classes directly. NFCI.
Models were completely overriding all CLMUL instructions when the WriteCLMUL default classes could be used for exactly the same coverage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328194
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 22 Mar 2018 13:36:06 +0000 (13:36 +0000)]
[X86][CLMUL] Fix/add missing itinerary tags to (V)PCLMULQDQ instructions
PCLMULQDQrm was using the rr itinerary.
Difference in itineraries between PCLMULQDQ/VPCLMULQDQ variants was causing an unnecessary duplication of scheduler class entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328193
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 22 Mar 2018 13:18:08 +0000 (13:18 +0000)]
[X86] Use the default AES scheduler classes directly. NFCI.
Models were completely overriding all AES instructions when the WriteAES default classes could be used for exactly the same coverage.
Removes 6 unnecessary scheduler classes from every model.
Note: Still looking for a way for tblgen to warn when this is happening - often the override is more complete than the default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328192
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Thu, 22 Mar 2018 12:24:07 +0000 (12:24 +0000)]
Add vendor specific calling convention to DWARF
This patch adds LLVM's and GCC's calling conventions so they can be
emitted in the DWARF debug info.
Patch by: Adrien Guinet
Differential revision: https://reviews.llvm.org/D42350
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328191
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Thu, 22 Mar 2018 11:39:34 +0000 (11:39 +0000)]
[llvm-mca] Simplify (and better standardize) the Instruction interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328190
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Thu, 22 Mar 2018 11:38:53 +0000 (11:38 +0000)]
[CloneFunction] Preserve DT in DuplicateInstructionsInSplitBetween.
DuplicateInstructionsInSplitBetween can preserve the DT by passing
through DT to SplitEdge.
Reviewers: sanjoy, junbuml, anna, kuhar
Reviewed By: kuhar
Differential Revision: https://reviews.llvm.org/D44629
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328189
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Thu, 22 Mar 2018 10:34:06 +0000 (10:34 +0000)]
Revert "[test] Add tests for llc passes pipelines."
This reverts r328159 because the two AArch64 tests fail on GreenDragon:
http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-expensive/11030/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328188
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Thu, 22 Mar 2018 10:19:20 +0000 (10:19 +0000)]
[llvm-mca] Simplify code. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328187
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 22 Mar 2018 06:15:10 +0000 (06:15 +0000)]
[TableGen] Use empty emplace_back to add defaulted constructed objects to vectors to avoid using resize(size()+1). NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328184
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 22 Mar 2018 06:15:08 +0000 (06:15 +0000)]
[TableGen] Add a non-default constructor to CodeGenSchedClass and use it via emplace_back to create new SchedClasses instead of using resize(size+1)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328183
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 22 Mar 2018 04:52:08 +0000 (04:52 +0000)]
[X86] Remove unused SchedWriteRes classes. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328181
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 22 Mar 2018 04:23:41 +0000 (04:23 +0000)]
[X86][Skylake] Merge multiple InstrRW entries that map to the same SchedWriteRes group (NFCI) (PR35955)
I've also merged some VEX/non-VEX instregex strings with a (V?) prefix or (Y?) ymm variant - there are still a lot more of these to do.
This reduces the size of the optimized llc binary on my computer by 400K. Presumably because we went from 5000+ scheduler classes per CPU to ~2000.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328179
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Smith [Thu, 22 Mar 2018 04:08:15 +0000 (04:08 +0000)]
[DIA] Add IPDBSectionContrib interfaces and DIA implementation
To resolve symbol context at a particular address, we need to
determine the compiland for the address. We are able to determine
the parent compiland of PDBSymbolFunc, PDBSymbolTypeUDT,
PDBSymbolTypeEnum symbols indirectly through line information.
However no such information is availabile for PDBSymbolData,
i.e. variables.
The Section Contribution table from PDBs has information about
each compiland's contribution to sections by address. For example,
a piece of a contribution looks like,
VA RelativeVA Sect No. Offset Length Compiland
14000087B0 000087B0 0001
000077B0 000000BB exe_main.obj
So given an address, it's possible to determine its compiland with
this information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328178
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Smith [Thu, 22 Mar 2018 03:57:06 +0000 (03:57 +0000)]
[PDB] Get more DIA table enumerators
Rename the original function and make it a static template.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328177
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Wed, 21 Mar 2018 23:46:09 +0000 (23:46 +0000)]
vim: add `dso_local` and `dso_preemptable` keywords
Support the new keywords introduced in SVN r316668.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328170
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Wed, 21 Mar 2018 22:57:33 +0000 (22:57 +0000)]
[test] Try to unbreak hexagon bots after r328160.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328167
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 21 Mar 2018 22:34:23 +0000 (22:34 +0000)]
Fix a couple of layering violations in Transforms
Remove #include of Transforms/Scalar.h from Transform/Utils to fix layering.
Transforms depends on Transforms/Utils, not the other way around. So
remove the header and the "createStripGCRelocatesPass" function
declaration (& definition) that is unused and motivated this dependency.
Move Transforms/Utils/Local.h into Analysis because it's used by
Analysis/MemoryBuiltins.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328165
91177308-0d34-0410-b5e6-
96231b3b80d8
Mircea Trofin [Wed, 21 Mar 2018 22:27:31 +0000 (22:27 +0000)]
[InstrProf] Encapsulates access to AddrToMD5Map.
Summary:
This fixes a unittest failure introduced by D44717
D44717 introduced lazy sorting of the internal data structures of the
symbol table. The AddrToMD5Map getter was potentially exposing
inconsistent (unsorted) state. We could sort in the accessor, however,
a client may store the pointer and thus bypass the internal state
management of the symbol table. The alternative in this CL blocks
direct access to the state, thus ensuring consistent
externally-observable state.
Reviewers: davidxl, xur, eraman
Reviewed By: xur
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D44757
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328163
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Wed, 21 Mar 2018 22:23:59 +0000 (22:23 +0000)]
[PDB] Don't ignore bucket 0 when writing the PDB string table.
The hash table is a list of buckets, and the *value* stored in
the bucket cannot be 0 since that is reserved. However, the code
here was incorrectly skipping over the 0'th bucket entirely.
The 0'th bucket is perfectly fine, just none of these buckets
can contain the value 0.
As a result, whenever there was a string where hash(S) % Size
was equal to 0, we would write the value in the next bucket
instead. We never caught this in our tests due to *another*
bug, which is that we would iterate the entire list of buckets
looking for the value, only using the hash value as a starting
point. However, the real algorithm stops when it finds 0 in
a bucket since it takes that to mean "the item is not in the
hash table".
The unit test is updated to carefully construct a set of hash
values that will cause one item to hash to 0 mod bucket count,
and the reader is also updated to return an error indicating that
the item is not found when it encounters a 0 bucket.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328162
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Wed, 21 Mar 2018 22:17:31 +0000 (22:17 +0000)]
[test] Add tests for opt passes pipelines for O0, O2, O3, and Os.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328160
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Wed, 21 Mar 2018 22:17:13 +0000 (22:17 +0000)]
[test] Add tests for llc passes pipelines.
This is basically an extension of existing test
test/CodeGen/X86/O0-pipeline.ll introduced in r302608.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328159
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Belevich [Wed, 21 Mar 2018 21:55:02 +0000 (21:55 +0000)]
[NVPTX] Make tensor shape part of WMMA intrinsic's name.
This is needed for the upcoming implementation of the
new 8x32x16 and 32x8x16 variants of WMMA instructions
introduced in CUDA 9.1.
Differential Revision: https://reviews.llvm.org/D44719
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328158
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 21 Mar 2018 21:51:53 +0000 (21:51 +0000)]
[llvm-profdata] Use "-o /dev/null" in invalid-profdata.test
Lit automatically rewrites /dev/null to a temp file on Windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328157
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 21 Mar 2018 21:47:26 +0000 (21:47 +0000)]
[PDB] Remove unused private variable, re-applying r327900 after relanding more natvis changes[4~
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328156
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 21 Mar 2018 21:46:47 +0000 (21:46 +0000)]
[WebAssembly] Really disable wasm register name matcher
The "ShouldEmitMatchRegisterName" bit wasn't taking effect because the
WebAssembly target didn't point to the custom WebAssemblyAsmParser
record.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328155
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 21 Mar 2018 21:31:25 +0000 (21:31 +0000)]
Handle abbr_offset with relocations.
This is mostly just plumbing to get a DWARFDataExtractor where we
compute abbr_offset so we can use getRelocatedValue.
This is part of PR36793.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328154
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 21 Mar 2018 21:28:19 +0000 (21:28 +0000)]
[InstCombine] move/add tests for fmul distribution; NFC
There are at least 3 problems:
1. We're distributing across large patterns, but fail to do that for the minimal patterns.
2. We're not checking uses, so we may create more instructions than we eliminate.
3. We should be able to do these transforms with less than full 'fast' fmuls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328152
91177308-0d34-0410-b5e6-
96231b3b80d8
Lei Huang [Wed, 21 Mar 2018 20:59:45 +0000 (20:59 +0000)]
[POWER9][NFC] update testcase check statements
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328147
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 21 Mar 2018 20:35:36 +0000 (20:35 +0000)]
Revert r328119 "[InstCombine] add folds for xor-of-icmp signbit tests (PR36682)"
This asserts when compiling safe_numerics_unittest.cpp in Chromium with
MSan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328145
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Shaposhnikov [Wed, 21 Mar 2018 19:53:44 +0000 (19:53 +0000)]
[llvm-objcopy] Implement support for section groups
This diff adds support for SHT_GROUP sections to llvm-objcopy.
Some sections are interrelated and comprise a group.
For example, a definition of an inline function might require,
in addition to the section containing its instructions,
a read-only data section containing literals referenced inside the function.
A section of the type SHT_GROUP contains the indices of the group members,
therefore, it needs to be updated whenever the indices change.
Similarly, the fields sh_link, sh_info should be recalculated as well.
[Resubmit r328012 with the proper handling of endianness]
Test plan: make check-all
Differential revision: https://reviews.llvm.org/D43996
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328143
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 21 Mar 2018 19:52:13 +0000 (19:52 +0000)]
[TableGen] Hoist the code for copying InstRWs from an old scheduling class to a new one out of the loop that assigns instructions to the new class. NFCI
We already know all the of instructions we're processing in the instruction loop belong to no class or all to the same class. So we only have to worry about remapping one class. So hoist it all out and remove the SmallPtrSet that tracked which class we'd already remapped.
I had to introduce new instruction loop inside this code to print an error message, but that only occurs on the error path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328142
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 21 Mar 2018 19:33:07 +0000 (19:33 +0000)]
typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328141
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 21 Mar 2018 19:31:53 +0000 (19:31 +0000)]
[InstSimplify] fp_binop X, NaN --> NaN
We propagate the existing NaN value when possible.
Differential Revision: https://reviews.llvm.org/D44521
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328140
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 21 Mar 2018 19:30:33 +0000 (19:30 +0000)]
[TableGen] Remove unnecessary map lookup and shadowing of a variable. NFCI
We already have an OldSCIdx variable in the outer loop here. And we already did the map lookup in the loop that populated ClassInstrs. And the outer OldSCIdx got it from ClassInstrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328139
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 21 Mar 2018 19:30:31 +0000 (19:30 +0000)]
[TableGen] Use range-based for loops. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328138
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 21 Mar 2018 19:30:30 +0000 (19:30 +0000)]
[TableGen] Use count_if instead of a manual loop. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328137
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 21 Mar 2018 19:30:28 +0000 (19:30 +0000)]
[X86] Rewrite getOperandBias in X86BaseInfo.h to be a little more structured and update comments to be more clear about what it does. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328136
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 21 Mar 2018 19:23:45 +0000 (19:23 +0000)]
Sink Analysis/ObjectUtil(canBeOmittedFromSymbolTable) into IR so it can be legitimately be used by Object/IRSymtab
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328135
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Wed, 21 Mar 2018 19:13:14 +0000 (19:13 +0000)]
[SLP] Add test case for a gather sequence with multiple uses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328133
91177308-0d34-0410-b5e6-
96231b3b80d8
Mircea Trofin [Wed, 21 Mar 2018 19:06:06 +0000 (19:06 +0000)]
[InstrProf] Support for external functions in text format.
Summary:
External functions appearing as indirect call targets could not be
found in the SymTab, and the value:counter record was represented,
in the text format, using an empty string for the name. This would
then cause a silent parsing error when reading.
This CL:
- adds explicit support for such functions
- fixes the places where we would not propagate errors when reading
- addresses a performance issue due to eager resorting of the SymTab.
Reviewers: xur, eraman, davidxl
Reviewed By: davidxl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D44717
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328132
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 21 Mar 2018 18:21:57 +0000 (18:21 +0000)]
Ensure that DataTypes.h is installed now that it's moved to llvm-c
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328130
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Wed, 21 Mar 2018 18:11:05 +0000 (18:11 +0000)]
[llvm-mca] Move the logic that computes the register file usage to the BackendStatistics view.
With this patch, the "instruction dispatched" event now provides information
related to the number of microarchitectural registers used in each register
file. Similarly, the "instruction retired" event is now able to tell how may
registers are freed in each register file.
Currently, the BackendStatistics view is the only consumer of register
usage/pressure information. BackendStatistics uses that info to print out a few
general statistics (i.e. max number of mappings used; total mapping created).
Before this patch, the BackendStatistics was forced to query the Backend to
obtain the register pressure information.
This helps removes that dependency. Now views are completely independent from
the Backend. As a consequence, it should be easier to address PR36663 and
further modularize the pipeline.
Added a couple of test cases in the BtVer2 specific directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328129
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 21 Mar 2018 18:09:34 +0000 (18:09 +0000)]
[SchedModel] Use CodeGenSchedClass::getSchedClassIdx helper directly. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328128
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 21 Mar 2018 17:57:21 +0000 (17:57 +0000)]
[SchedModel] Use CodeGenSchedClass::isKeyEqual instead of duplicating code. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328126
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 21 Mar 2018 17:32:57 +0000 (17:32 +0000)]
[Docs] Remove some WIP X86 documentation I accidentally leaked into r328031.
I didn't mean to commit it, but I guess I failed to switch branches or stash it in my local tree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328124
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 21 Mar 2018 17:31:49 +0000 (17:31 +0000)]
Reapply Support layering fixes.
Compiler.h is used by Demangle (which Support depends on) - so sink it
into Demangle to avoid a circular dependency
DataTypes.h is used by llvm-c (which Support depends on) - so sink it
into llvm-c.
DataTypes.h could probably be fixed the other way - making llvm-c depend
on Support instead of Support depending on llvm-c - if anyone feels
that's the better option, happy to work with them on that.
I /think/ this'll address the layering issues that previous attempts to
commit this have triggered in the Modules buildbot, but I haven't been
able to reproduce that build so can't say for sure. If anyone's having
trouble with this - it might be worth taking a look to see if there's a
quick fix/something small I missed rather than revert, but no worries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328123
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 21 Mar 2018 17:31:45 +0000 (17:31 +0000)]
Add missing #includes to Analysis/MustExecute.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328122
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Wed, 21 Mar 2018 17:24:04 +0000 (17:24 +0000)]
[Documentation] Fix markup problems in X86Usage.rst
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328121
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Wed, 21 Mar 2018 17:23:32 +0000 (17:23 +0000)]
[Hexagon] Generalize DAG mutation for function calls
Add barrier edges to check for any physical register. The previous code
worked for the function return registers: r0/d0, v0/w0.
Patch by Brendon Cahoon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328120
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 21 Mar 2018 17:17:13 +0000 (17:17 +0000)]
[InstCombine] add folds for xor-of-icmp signbit tests (PR36682)
This is part of solving:
https://bugs.llvm.org/show_bug.cgi?id=36682
There's also a leftover improvement from the long-ago-closed:
https://bugs.llvm.org/show_bug.cgi?id=5438
https://rise4fun.com/Alive/dC1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328119
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Wed, 21 Mar 2018 17:13:10 +0000 (17:13 +0000)]
TableGen: Remove redundant loop in ListInit::resolveReferences
Summary:
Recursive lookups are handled by the Resolver, so the loop was purely
a waste of runtime.
Change-Id: I2bd23a68b478aea0bbac1a86ca7635adffa28688
Reviewers: arsenm, craig.topper, tra, MartinO
Subscribers: wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D44624
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328118
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Wed, 21 Mar 2018 17:12:53 +0000 (17:12 +0000)]
TableGen: Streamline how defs are instantiated
Summary:
Instantiating def's and defm's needs to perform the following steps:
- for defm's, clone multiclass def prototypes and subsitute template args
- for def's and defm's, add subclass definitions, substituting template
args
- clone the record based on foreach loops and substitute loop iteration
variables
- override record variables based on the global 'let' stack
- resolve the record name (this should be simple, but unfortunately it's
not due to existing .td files relying on rather silly implementation
details)
- for def(m)s in multiclasses, add the unresolved record as a multiclass
prototype
- for top-level def(m)s, resolve all internal variable references and add
them to the record keeper and any active defsets
This change streamlines how we go through these steps, by having both
def's and defm's feed into a single addDef() method that handles foreach,
final resolve, and routing the record to the right place.
This happens to make foreach inside of multiclasses work, as the new
test case demonstrates. Previously, foreach inside multiclasses was not
forbidden by the parser, but it was de facto broken.
Another side effect is that the order of "instantiated from" notes in error
messages is reversed, as the modified test case shows. This is arguably
clearer, since the initial error message ends up pointing directly to
whatever triggered the error, and subsequent notes will point to increasingly
outer layers of multiclasses. This is consistent with how C++ compilers
report nested #includes and nested template instantiations.
Change-Id: Ica146d0db2bc133dd7ed88054371becf24320447
Reviewers: arsenm, craig.topper, tra, MartinO
Subscribers: wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D44478
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328117
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Wed, 21 Mar 2018 17:09:35 +0000 (17:09 +0000)]
[Documentation] Fix markup problem in AMDGPUUsage.rst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328116
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Wed, 21 Mar 2018 16:39:11 +0000 (16:39 +0000)]
[Hexagon] Eliminate subregisters from PHI nodes before pipelining
The pipeliner needs to remove instructions from the SlotIndexes
structure when they are deleted. Otherwise, the SlotIndexes map
has stale data, and an assert will occur when adding new
instructions.
This patch also changes the pipeliner to make the back-edge of
a loop carried dependence 1 cycle. The 1 cycle latency is added
to the anti-dependence that represents the back-edge. This
changes eliminates a couple of hacks added to the pipeliner to
handle the latency of the back-edge. It is needed to correctly
pipeline the test case for the sub-register elimination pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328113
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 21 Mar 2018 16:20:58 +0000 (16:20 +0000)]
[WebAssembly] Suppress unused function warning for register name matcher
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328112
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 21 Mar 2018 16:19:03 +0000 (16:19 +0000)]
[X86][Haswell] Merge multiple InstrRW entries that map to the same SchedWriteRes group (NFCI) (PR35955)
I've also merged some VEX/non-VEX instregex strings with a (V?) prefix or (Y?) ymm variant - there are still a lot more of these to do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328111
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 21 Mar 2018 16:05:58 +0000 (16:05 +0000)]
[X86][SandyBridge] Merge more VEX/non-VEX instregex patterns (NFCI) (PR35955)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328110
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 21 Mar 2018 15:54:48 +0000 (15:54 +0000)]
[InstCombine] move/add tests for xor-of-icmps (PR36682); NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328109
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 21 Mar 2018 15:22:09 +0000 (15:22 +0000)]
[LangRef] add note about format of FP types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328105
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Bradbury [Wed, 21 Mar 2018 15:11:02 +0000 (15:11 +0000)]
[RISCV] Codegen support for RV32F floating point comparison operations
This patch also includes extensive tests targeted at select and br+fcmp IR
inputs. A sequence of br+fcmp required support for FPR32 registers to be added
to RISCVInstrInfo::storeRegToStackSlot and
RISCVInstrInfo::loadRegFromStackSlot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328104
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Bradbury [Wed, 21 Mar 2018 14:50:27 +0000 (14:50 +0000)]
[RISCV] Add tests missed from r327979
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328102
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Richardson [Wed, 21 Mar 2018 14:17:50 +0000 (14:17 +0000)]
Change DT_* value definitions to macros in a separate file
Summary:
I recently added a new dynamic tag to our fork of LLVM and when adding it
to llvm-readobj I noticed that not all DT_ values were being handled there.
Using macros in a .def file that can be included by both ELFDumper.cpp and
the ELF.h header ensures that the two don't get out of sync when new values
are added.
Reviewers: grimar, pcc, davide, espindola
Reviewed By: grimar, espindola
Subscribers: srhines, llvm-commits
Differential Revision: https://reviews.llvm.org/D44558
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328099
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 21 Mar 2018 14:15:33 +0000 (14:15 +0000)]
[LangRef] more hyphens: always write "floating-point"
We were inconsistent, sometimes even within a single sentence.
The consensus seems clear that the FP we're looking for is
spelled "floating-point". Without the hyphen, it's a
"surprisingly fine" jazz album.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328098
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Neilson [Wed, 21 Mar 2018 14:14:55 +0000 (14:14 +0000)]
[MemCpyOpt] Update to new API for memory intrinsic alignment
Summary:
This change is part of step five in the series of changes to remove alignment argument from
memcpy/memmove/memset in favour of alignment attributes. In particular, this changes the
MemCpyOpt pass to cease using:
1) The old getAlignment() API of MemoryIntrinsic in favour of getting source & dest specific
alignments through the new API.
2) The old IRBuilder CreateMemCpy/CreateMemMove single-alignment APIs in favour of the new
API that allows setting source and destination alignments independently.
We also add a few tests to fill gaps in the testing of this pass.
Steps:
Step 1) Remove alignment parameter and create alignment parameter attributes for
memcpy/memmove/memset. ( rL322965, rC322964, rL322963 )
Step 2) Expand the IRBuilder API to allow creation of memcpy/memmove with differing
source and dest alignments. ( rL323597 )
Step 3) Update Clang to use the new IRBuilder API. ( rC323617 )
Step 4) Update Polly to use the new IRBuilder API. ( rL323618 )
Step 5) Update LLVM passes that create memcpy/memmove calls to use the new IRBuilder API,
and those that use use MemIntrinsicInst::[get|set]Alignment() to use [get|set]DestAlignment()
and [get|set]SourceAlignment() instead. ( rL323886, rL323891, rL324148, rL324273, rL324278,
rL324384, rL324395, rL324402, rL324626, rL324642, rL324653, rL324654, rL324773, rL324774,
rL324781, rL324784, rL324955, rL324960, rL325816, rL327398, rL327421 )
Step 6) Remove the single-alignment IRBuilder API for memcpy/memmove, and the
MemIntrinsicInst::[get|set]Alignment() methods.
Reference
http://lists.llvm.org/pipermail/llvm-dev/2015-August/089384.html
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-
20151109/312083.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328097
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Wed, 21 Mar 2018 14:08:21 +0000 (14:08 +0000)]
Re-re-land: Teach CorrelatedValuePropagation to reduce the width of udiv/urem instructions.
Summary:
If the operands of a udiv/urem can be proved to fit within a smaller
power-of-two-sized type, reduce the width of the udiv/urem.
Backed out for causing performance regressions. Re-landing
because we've determined that these regressions were noise.
Original Differential Revision: https://reviews.llvm.org/D44102
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328096
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Wed, 21 Mar 2018 13:28:37 +0000 (13:28 +0000)]
Revert "Move DataTypes.h from Support to llvm-c to fix layering."
This reverts r328065.
I missed this one in r328085 and the bots were still failing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328095
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Wed, 21 Mar 2018 12:49:07 +0000 (12:49 +0000)]
[llvm-mca] Clean up some code. NFC
Removed a couple of methods from DispatchUnit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328094
91177308-0d34-0410-b5e6-
96231b3b80d8
Pavel Labath [Wed, 21 Mar 2018 12:18:03 +0000 (12:18 +0000)]
Fix build broken by r328090
- constexpr is needed for out-of-class definition of the Type static
member by some compilers
- MSVC is confused by the initialization of the static constexpr char[]
member when it happens in a template specialization. Explicitly
specifying the length of the array seems to be enough to help it
figure things out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328093
91177308-0d34-0410-b5e6-
96231b3b80d8
Pavel Labath [Wed, 21 Mar 2018 11:46:37 +0000 (11:46 +0000)]
[dwarf] Unify unknown dwarf enum formatting code
Summary:
We have had at least three pieces of code (in DWARFAbbreviationDeclaration,
DWARFAcceleratorTable and DWARFDie) that have hand-rolled support for
dumping unknown dwarf enum values. While not terrible, they are a bit
distracting and enable small differences to creep in (Unknown_ffff vs.
Unknown_0xffff). I ended up needing to add a fourth place
(DWARFVerifier), so it seems it would be a good time to centralize.
This patch creates an alternative to the XXXString dumping functions in
the BinaryFormat library, which formats an unknown value as
DW_TYPE_unknown_1234, instead of just an empty string. It is based on
the formatv function, as that allows us to avoid materializing the
string for unknown values (and because this way I don't have to invent a
name for the new functions :P).
In this patch I add formatters for dwarf attributes, forms, tags, and
index attributes as these are the ones in use currently, but adding
other enums is straight-forward.
Reviewers: dblaikie, JDevlieghere, aprantl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D44570
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328090
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Wed, 21 Mar 2018 10:35:09 +0000 (10:35 +0000)]
Revert layering changes
This reverts:
r328072 "Move Compiler.h from Support to Demangler to fix layering."
r328073 "Fix the actual user of DataTypes.h in llvm-c to avoid the circular dependency"
Failing bots:
http://green.lab.llvm.org/green/job/clang-stage2-coverage-R/
http://green.lab.llvm.org/green/job/clang-stage2-configure-Rlto/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328085
91177308-0d34-0410-b5e6-
96231b3b80d8
Bjorn Pettersson [Wed, 21 Mar 2018 09:44:34 +0000 (09:44 +0000)]
[SelectionDAG] Support multiple dangling debug info for one value
Summary:
When building the selection DAG we sometimes need to postpone
the handling of a dbg.value until the value it should refer to
is created. This is done by using the DanglingDebugInfoMap.
In the past this map has been limited to hold one dangling
dbg.value per value. This patch removes that restriction.
Reviewers: aprantl, rnk, probinson, vsk
Reviewed By: aprantl
Subscribers: Ka-Ka, llvm-commits, JDevlieghere
Tags: #debug-info
Differential Revision: https://reviews.llvm.org/D44610
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328084
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Wed, 21 Mar 2018 08:48:44 +0000 (08:48 +0000)]
Fix build bot after r328078 "llvm-readobj] - Teach llvm-readobj to dump .note.gnu.property sections."
BB was: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/27058/steps/test/logs/stdio
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328080
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Wed, 21 Mar 2018 08:34:55 +0000 (08:34 +0000)]
[llvm-readobj] - Teach llvm-readobj to dump .note.gnu.property sections.
NT_GNU_PROPERTY_TYPE_0 is a recently added type of .note.gnu.property
section specified in Linux Extensions to gABI.
(https://github.com/hjl-tools/linux-abi/wiki/Linux-Extensions-to-gABI)
Patch teach tool to print such notes properly.
Differential revision: https://reviews.llvm.org/D44469
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328078
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 21 Mar 2018 06:28:42 +0000 (06:28 +0000)]
[X86][Broadwell] Merge multiple InstrRW entries that map to the same SchedWriteRes group (NFCI) (PR35955)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328076
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 21 Mar 2018 05:13:04 +0000 (05:13 +0000)]
[TableGen] Remove a defaulted function argument that is never called with another value. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328075
91177308-0d34-0410-b5e6-
96231b3b80d8