144949 Commits

Author SHA1 Message Date
Tim Northover
e1ee35eb49 GlobalISel: select G_[SU]MULH on AArch64.
Hopefully this'll be nuked by tablegen pretty soon, but until then it's
reasonably important for supporting C++ operator new[].

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294520 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 21:22:25 +00:00
Tim Northover
063022b81a GlobalISel: expand mul-with-overflow into mul-hi on AArch64.
AArch64 has specific instructions to multiply two numbers at double the width
and produce the high part of the result. These can be used to implement LLVM's
mul.with.overflow instructions fairly simply. Helps with C++ operator new[].

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294519 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 21:22:15 +00:00
Stanislav Mekhanoshin
79141688a6 [AMDGPU] Implement register pressure callbacks
Implement getRegPressureLimit and getRegPressureSetLimit callbacks in
SIRegisterInfo.

This makes standard converge scheduler to behave almost the same as
GCNScheduler, sometime slightly better sometimes a bit worse.
In gerenal that is also possible to switch GCNScheduler to use these
callbacks instead of getMaxWaves(), which also makes GCNScheduler
slightly better on some tests and slightly worse on another. A big
win is behavior with converge scheduler.

Note, these are used not only by scheduling, but in places like
MachineLICM.

Differential Revision: https://reviews.llvm.org/D29700

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294518 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 21:22:03 +00:00
Mike Aizatsky
884f3fe80d [sancov] specifying comdat for sancov constructors
Differential Revision: https://reviews.llvm.org/D29662

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294517 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 21:20:33 +00:00
Peter Collingbourne
74b8757cc2 Take code ownership of LLVM bitcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294516 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 21:16:27 +00:00
Chris Bieneman
405386b95e [CMake] Fix is_llvm_target_library and support out-of-order components
Summary: This patch is required by D28855, and enables us to rely on CMake's ability to handle out of order target dependencies.

Reviewers: mgorny, chapuni, bryant

Subscribers: llvm-commits, jgosnell

Differential Revision: https://reviews.llvm.org/D28869

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294514 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 20:58:37 +00:00
Hans Wennborg
4dcfb33dfa build_llvm_package.bat: Build teh clang-format plugin separately
In r293373 we switched the build to linking dynamically against the
Universal CRT and include the redistributables in the installer.

However, clang-format.exe is copied into the vsix and needs to be
statically linked. This commit makes us build the plugin in a separate
step that uses static linking.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294513 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 20:58:33 +00:00
Peter Collingbourne
ef1041f728 ThinLTOBitcodeWriter: Strip debug info from merged module.
This module will contain nothing but vtable definitions and (soon)
available_externally function definitions, so there is no point in keeping
debug info in the module.

Differential Revision: https://reviews.llvm.org/D28913

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294511 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 20:44:00 +00:00
Alexey Bataev
9ef4102334 [SLP] Additional test to check correct work of horizontal reductions,
NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294505 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 19:52:46 +00:00
Elena Demikhovsky
92cc2185b8 [Loop Vectorizer] Cost-based decision for vectorization form of memory instruction.
Making the cost model selecting between Interleave, GatherScatter or Scalar vectorization form of memory instruction.
The right decision should be done for non-consecutive memory access instrcuctions that may have more than one vectorization solution.

This patch includes the following changes:
- Cost Model calculates the cost of Load/Store vector form and choose the better option between Widening, Interleave, GatherScactter and Scalarization. Cost Model keeps the widening decision.
- Arrays of Uniform and Scalar values are moved from Legality to Cost Model.
- Cost Model collects Uniforms and Scalars per VF. The collection is based on CM decision map of Loadis/Stores vectorization form.
- Vectorization of memory instruction is performed according to the CM decision.

Differential Revision: https://reviews.llvm.org/D27919



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294503 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 19:25:23 +00:00
Simon Dardis
e77177e867 [DebugInfo] Rename EmitDebugValue to EmitDebugThreadLocal (NFC)
As pointed out by David Blaikie in the post commit review of
r292624, EmitDebugValue should be called EmitDebugThreadLocal.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294500 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 19:03:46 +00:00
Simon Pilgrim
07cb1f7d53 [X86][SSE] Regenerate scalar integer conversions to float tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294499 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 19:01:27 +00:00
Reid Kleckner
04bd441c76 Fix inline-asm-diags.ll on Windows, give it a triple to avoid WoA thumb confusion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294496 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 18:17:21 +00:00
Saleem Abdulrasool
5bbd189206 llvm-objdump: make NoLeadingAddr work on more than just MachO
Support printing the disassembly without the address on all formats
rather than making it MachO specific.

Patch by Jeff Muizelaar!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294495 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 18:11:31 +00:00
Artur Pilipenko
a10aff5b13 [DAGCombiner] NFC. Mark ByteProvider accessors as const
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294494 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 17:59:34 +00:00
Tim Northover
cc504e80b7 GlobalISel: select G_VASTART on iOS AArch64.
The AAPCS ABI is substantially more complicated so that's coming in a separate
patch. For now we can generate correct code for iOS though.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294493 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 17:57:27 +00:00
Tim Northover
de0a86879f GlobalISel: translate @llvm.va_start intrinsic.
Because we need to preserve the memory access being performed we need a
separate instruction to represent this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294492 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 17:57:20 +00:00
Matt Arsenault
ee262d8baf NVPTX: Extract mem intrinsic expansions into utilities
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294490 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 17:49:52 +00:00
Chad Rosier
eea75ddf96 [Reassociate] Remove an unused argument. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294489 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 17:45:27 +00:00
Adrian Prantl
5400f6360c Fix bitcode upgrade for DIGlobalVariables with a var: field.
This is a follow-up to https://reviews.llvm.org/D29349.  It turns out
that NeedUpgradeToDIGlobalVariableExpression is always necessary when
we encountered a version==0 record because it may always be referenced
via a list of globals in a DICompileUnit. My tests weren't good enough
to catch this though. To trigger this case, we need much older bitcode
produced by LLVM around version 3.7.

<rdar://problem/30404262>

Differential Revision: https://reviews.llvm.org/D29693

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294488 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 17:44:43 +00:00
Sanjay Patel
bddd84197f [InstCombine] add test for missed vector icmp fold; NFC
Also, move the related existing scalar test to a renamed file 
where I'm planning to add more icmp-add tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294487 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 17:37:17 +00:00
Sanne Wouda
7d1045f0d4 Move inline asm diags tests to an ARM directory.
The assembler syntaxes (and parsers) differ too much to expect this test to
pass for all of them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294475 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 16:48:35 +00:00
Krzysztof Parzyszek
7679180cbf [Hexagon] Fix decoding conflict between A2_zxtb and A4_ext
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294472 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 16:31:00 +00:00
Simon Dardis
cf360fec12 [mips] MUL macro variations
[mips] MUL macro variations

Adds support for MUL macro variations.

Patch by: Srdjan Obucina

Reviewers: zoran.jovanovic, vkalintiris, dsanders, sdardis, obucina, seanbruno

Differential Revision: https://reviews.llvm.org/D16807



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294471 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 16:25:05 +00:00
Sanjay Patel
0fff202605 [InstCombine] add local name for repeated calls; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294470 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 16:19:36 +00:00
Sanne Wouda
87ef7ef4f9 Fix inline asm diagnostics test.
Don't depend on X86 everywhere. Fix the original problem with a reg-exp for the
column number.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294468 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 16:14:01 +00:00
Daniel Berlin
f48edbb0e1 LVI: Add a per-value worklist limit to LazyValueInfo.
Summary:
LVI is now depth first, which is optimal for iteration strategy in
terms of work per call.  However, the way the results get cached means
it can still go very badly N^2 or worse right now.  The overdefined
cache is per-block, because LVI wants to try to get different results
for the same name in different blocks (IE solve the problem
PredicateInfo solves).  This means even if we discover a value is
overdefined after going very deep, it doesn't cache this information,
causing it to end up trying to rediscover it again and again.  The
same is true for values along the way.  In practice, overdefined
anywhere should mean overdefined everywhere (this is how, for example,
SCCP works).

Until we get around to reworking the overdefined cache, we need to
limit the worklist size we process.  Note that permanently reverting
the DFS strategy exploration seems the wrong strategy (temporarily
seems fine if we really want).  BFS is clearly the wrong approach, it
just gets luckier on some testcases.  It's also very hard to design
an effective throttle for BFS. For DFS, the throttle is directly related
to the depth of the CFG.  So really deep CFGs will get cutoff, smaller
ones will not. As the CFG simplifies, you get better results.
In BFS, the limit is it's related to the fan-out times average block size,
which is harder to reason about or make good choices for.

Bug being filed about the overdefined cache, but it will require major
surgery to fix it (plumbing predicateinfo through CVP or LVI).

Note: I did not make this number configurable because i'm not sure
anyone really needs to tweak this knob.  We run CVP 3 times. On the
testcases i have the slow ones happen in the middle, where CVP is
doing cleanup work other things are effective at.  Over the course of
3 runs, we don't see to have any real loss of performance.

I haven't gotten a minimized testcase yet, but just imagine in your
head a testcase where, going *up* the CFG, you have branches, one of
which leads 50000 blocks deep, and the other, to something where the
answer is overdefined immediately.  BFS would discover the overdefined
faster than DFS, but do more work to do so.  In practice, the right
answer is "once DFS discovers overdefined for a value, stop trying to
get more info about that value" (and so, DFS would normally cache the
overdefined results for every value it passed through in those 50k
blocks, and never do that work again. But it don't, because of the
naming problem)

Reviewers: chandlerc, djasper

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D29715

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294463 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 15:22:52 +00:00
Sanjay Patel
7fe3388c58 [x86] add AVX512vl target for more coverage; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294462 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 15:22:52 +00:00
Igor Laevsky
eebf5500be [InstComobineCalls] Fix buildbot failures after r294453.
Some targets don't support uint64_t options. Change type to unsigned.

Differential Revision: https://reviews.llvm.org/D28909



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294461 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 15:21:48 +00:00
Sanne Wouda
5896003cc3 [Assembler] Enable nicer diagnostics for inline assembly.
Fixed test.

Summary:
Enables source location in diagnostic messages from the backend.  This
is after parsing, during finalization.  This requires the SourceMgr, the
inline assembly string buffer, and DiagInfo to still be alive after
EmitInlineAsm returns.

This patch creates a single SourceMgr for inline assembly inside the
AsmPrinter.  MCContext gets a pointer to this SourceMgr.  Using one
SourceMgr per call to EmitInlineAsm would make it difficult for
MCContext to figure out in which SourceMgr the SMLoc is located, while a
single SourceMgr can figure it out if it has multiple buffers.

The Str argument to EmitInlineAsm is copied into a buffer and owned by
the inline asm SourceMgr.  This ensures that DiagHandlers won't print
garbage.  (Clang emits a "note: instantiated into assembly here", which
refers to this string.)

The AsmParser gets destroyed before finalization, which means that the
DiagHandlers the AsmParser installs into the SourceMgr will be stale.
Restore the saved DiagHandlers.

Since now we're using just one SourceMgr for multiple inline asm
strings, we need to tell the AsmParser which buffer it needs to parse
currently.  Hand a buffer id -- returned from SourceMgr::
AddNewSourceBuffer -- to the AsmParser.

Reviewers: rnk, grosbach, compnerd, rengolin, rovka, anemet

Reviewed By: rnk

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D29441
    


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294458 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 14:48:05 +00:00
Simon Pilgrim
965fad0725 [X86][SSE] Tidyup LowerBuildVectorv16i8 and LowerBuildVectorv8i16. NFCI.
Run clang-format and standardized variable names between functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294456 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 14:44:45 +00:00
Amaury Sechet
7604242e5e Add test case for pr31890. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294455 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 14:35:48 +00:00
Konstantin Zhuravlyov
a1a30b414d [AMDGPU][NFC] Assign IsaInfo to reference variable in order to shorten long lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294454 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 14:34:10 +00:00
Igor Laevsky
ab47a3d4af [InstCombineCalls] Unfold element atomic memcpy instruction
Differential Revision: https://reviews.llvm.org/D28909



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294453 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 14:32:04 +00:00
Igor Laevsky
25ddfba833 [InstCombineCalls] Remove zero length atomic memcpy intrinsics
Differential Revision: https://reviews.llvm.org/D28909



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294452 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 14:23:47 +00:00
Diana Picus
96111bcb31 Fix test to work on swift/cyclone too
I forgot to remove the neonfp target feature from the test, which means we'd
have trouble selecting VADDS on targets that have neonfp enabled by default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294451 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 14:23:30 +00:00
Konstantin Zhuravlyov
017228cd76 [AMDGPU] Add target information that is required by tools to metadata
Differential Revision: https://reviews.llvm.org/D28760#fb670e28


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294449 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 14:05:23 +00:00
Diana Picus
a32d7c935e Revert "[Assembler] Enable nicer diagnostics for inline assembly."
This reverts commit r294433 because it seems it broke the buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294448 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 14:02:16 +00:00
NAKAMURA Takumi
22bcc0ea37 Revert r294356, "DebugInfo: Track spilled variables in LiveDebugValues"
It caused undefined behavior in VarLoc. As far as I investigated,

  - VarLoc::VarLoc() treats negative offset value as InvalidKind.
    Consider the case that (int64_t)MI.getOperand(1).getImm() is negative and whether it satisfies ((uint64_t)Offset < (1ULL << 32)).

  - Comparison operators in VarLoc behave undefined since VarLoc::Loc.Hash is uninitialized in case of InvalidKind.

I guess Offset (in VarLoc) could be made aware of signed, but I am not sure.
So I have reverted it for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294447 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 13:49:28 +00:00
Diana Picus
30c4561f7d Move test from r294430 to target-specific directory
The test is X86-specific, and it broke on the ARM bots because they don't build
the X86 target.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294446 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 13:48:08 +00:00
Konstantin Zhuravlyov
f33b956e6c [AMDGPU][NFC] De-tabify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294445 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 13:29:23 +00:00
Alexander Kornienko
2cad1e2388 Adding virtual destructor for PredicateBase.
A virtual destructor is needed, since the derived classes are stored in
`iplist<PredicateBase> AllInfos;` and, apparently, ilist_node doesn't have a
virtual destructor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294443 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 13:28:27 +00:00
Diana Picus
bb65a8b75f [ARM] GlobalISel: Add FPR reg bank
Add a register bank for floating point values and select simple instructions
using them (add, copies from GPR).

This assumes that the hardware can cope with a single precision add (VADDS)
instruction, so the legalizer will treat G_FADD as legal and the instruction
selector will refuse to select if the hardware doesn't support it. In the future
we'll want to be more careful about this, and legalize to libcalls if we have to
use soft float.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294442 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 13:23:04 +00:00
Konstantin Zhuravlyov
4a71f66bfc [AMDGPU] Distinguish between S/VGPR allocation and encoding granularities
Differential Revision: https://reviews.llvm.org/D29633


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294441 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 13:18:40 +00:00
Konstantin Zhuravlyov
c478d3544a [AMDGPU] Move register related queries to subtarget class
Differential Revision: https://reviews.llvm.org/D29318


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294440 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 13:02:33 +00:00
Amara Emerson
61d1158138 [AArch64][TableGen] Skip tied result operands for InstAlias
This patch checks the number of operands in the resulting
instruction instead of just the alias, then skips over
tied operands when generating the printing method.

This allows us to generate the preferred assembly syntax
for the AArch64 'ins' instruction, which should always be
displayed as 'mov' according to the ARMARM.

Several unit tests have changed as a result, but only to
reflect the preferred disassembly.

Some other InstAlias patterns (movk/bic/orr) needed a
slight adjustment to stop them becoming the default
and breaking other unit tests.

Patch by Graham Hunter.

Differential Revision: https://reviews.llvm.org/D29219


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294437 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 11:28:08 +00:00
Dylan McKay
c049705ee8 Update CODE_OWNERS with my new email address
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294436 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 10:38:06 +00:00
Dylan McKay
f5cac0257d [AVR] XFAIL a set of failing CodeGen tests
There are about 3 underlying bugs causing the tests to fail.

On top of that, some tests just we're 'generic' enough. i.e. 32-bit
registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294434 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 10:24:18 +00:00
Sanne Wouda
5ddc432093 [Assembler] Enable nicer diagnostics for inline assembly.
Summary:
Enables source location in diagnostic messages from the backend.  This
is after parsing, during finalization.  This requires the SourceMgr, the
inline assembly string buffer, and DiagInfo to still be alive after
EmitInlineAsm returns.

This patch creates a single SourceMgr for inline assembly inside the
AsmPrinter.  MCContext gets a pointer to this SourceMgr.  Using one
SourceMgr per call to EmitInlineAsm would make it difficult for
MCContext to figure out in which SourceMgr the SMLoc is located, while a
single SourceMgr can figure it out if it has multiple buffers.

The Str argument to EmitInlineAsm is copied into a buffer and owned by
the inline asm SourceMgr.  This ensures that DiagHandlers won't print
garbage.  (Clang emits a "note: instantiated into assembly here", which
refers to this string.)

The AsmParser gets destroyed before finalization, which means that the
DiagHandlers the AsmParser installs into the SourceMgr will be stale.
Restore the saved DiagHandlers.

Since now we're using just one SourceMgr for multiple inline asm
strings, we need to tell the AsmParser which buffer it needs to parse
currently.  Hand a buffer id -- returned from SourceMgr::
AddNewSourceBuffer -- to the AsmParser.

Reviewers: rnk, grosbach, compnerd, rengolin, rovka, anemet

Reviewed By: rnk

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D29441


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294433 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 10:20:07 +00:00
Sam Parker
3bfb1e88e6 Use dynamic symbols for ELF disassembly
Disassembly currently begins from addresses obtained from the objects
symbol table. For ELF, add the dynamic symbols to the list if no
static symbols are available so that we can more successfully
disassemble stripped binaries.

Differential Revision: https://reviews.llvm.org/D29632



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294430 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-08 09:44:18 +00:00