platform/upstream/llvm.git
6 years ago[AArch64] Adjust the cost of integer vector division
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

llvm-svn: 326955

6 years ago[Documentation] Fix Clang-tidy checks list broken in r326909.
Eugene Zelenko [Wed, 7 Mar 2018 22:30:50 +0000 (22:30 +0000)]
[Documentation] Fix Clang-tidy checks list broken in r326909.

llvm-svn: 326954

6 years agoRevert r326932: [DebugInfo] Support DWARF expressions in eh_frame
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.

llvm-svn: 326953

6 years ago[analyzer] [PointerArithChecker] do not warn on indexes into vector types
George Karpenkov [Wed, 7 Mar 2018 22:20:39 +0000 (22:20 +0000)]
[analyzer] [PointerArithChecker] do not warn on indexes into vector types

rdar://35041502

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

llvm-svn: 326952

6 years ago[analyzer] Don't crash with assertion failure on structured bindings
George Karpenkov [Wed, 7 Mar 2018 22:20:35 +0000 (22:20 +0000)]
[analyzer] Don't crash with assertion failure on structured bindings

Proper modeling still remains to be done.
Note that BindingDecl#getHoldingVar() is almost always null, and this
should probably be handled by dealing with DecompositionDecl beforehand.

rdar://36852163

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

llvm-svn: 326951

6 years ago[OpenMP] Remove implicit data sharing using device shared memory from libomptarget
Gheorghe-Teodor Bercea [Wed, 7 Mar 2018 22:10:10 +0000 (22:10 +0000)]
[OpenMP] Remove implicit data sharing using device shared memory from libomptarget

Summary:
This patch reverts the changes to libomptarget that were coupled with the changes to Clang code gen for data sharing using shared memory. A similar patch exists for Clang: D43625

Shared memory is meant to be used as an optimization on top of a more general scheme. So far we didn't have a global memory implementation ready so shared memory was a solution which applied to the current level of OpenMP complexity supported by trunk on GPU devices (due to the missing NVPTX backend patch this functionality has never been exercised). Now that we have a global memory solution this patch is "in the way" and needs to be removed (for now). This patch (or an equivalent version of it) will be put out for review once the global memory scheme is in place.

Reviewers: ABataev, grokos, carlo.bertolli, caomhin

Reviewed By: grokos

Subscribers: Hahnfeld, guansong, openmp-commits

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

llvm-svn: 326950

6 years ago[AArch64] add missing pattern for insert_subvector undef
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)>;

llvm-svn: 326949

6 years ago[OpenMP] Remove implicit data sharing code gen that aims to use device shared memory
Gheorghe-Teodor Bercea [Wed, 7 Mar 2018 21:59:50 +0000 (21:59 +0000)]
[OpenMP] Remove implicit data sharing code gen that aims to use device shared memory

Summary: Remove this scheme for now since it will be covered by another more generic scheme using global memory. This code will be worked into an optimization for the generic data sharing scheme. Removing this completely and then adding it via future patches will make all future data sharing patches cleaner.

Reviewers: ABataev, carlo.bertolli, caomhin

Reviewed By: ABataev

Subscribers: jholewinski, guansong, cfe-commits

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

llvm-svn: 326948

6 years ago[clangd] Remove unused field in HandlerRegisterer
Simon Marchi [Wed, 7 Mar 2018 21:47:25 +0000 (21:47 +0000)]
[clangd] Remove unused field in HandlerRegisterer

Summary: Tested by rebuilding.

Subscribers: klimek, ilya-biryukov, jkorous-apple, ioeric, cfe-commits

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

llvm-svn: 326947

6 years agoCodeGen: Fix address space of indirect function argument
Yaxun Liu [Wed, 7 Mar 2018 21:45:40 +0000 (21:45 +0000)]
CodeGen: Fix address space of indirect function argument

The indirect function argument is in alloca address space in LLVM IR. However,
during Clang codegen for C++, the address space of indirect function argument
should match its address space in the source code, i.e., default addr space, even
for indirect argument. This is because destructor of the indirect argument may
be called in the caller function, and address of the indirect argument may be
taken, in either case the indirect function argument is expected to be in default
addr space, not the alloca address space.

Therefore, the indirect function argument should be mapped to the temp var
casted to default address space. The caller will cast it to alloca addr space
when passing it to the callee. In the callee, the argument is also casted to the
default address space and used.

CallArg is refactored to facilitate this fix.

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

llvm-svn: 326946

6 years ago[clang-format] Break consecutive string literals in text protos
Krasimir Georgiev [Wed, 7 Mar 2018 21:30:38 +0000 (21:30 +0000)]
[clang-format] Break consecutive string literals in text protos

Summary:
This patch fixes a bug where consecutive string literals in text protos were
put on the same line.

Reviewers: alexfh

Reviewed By: alexfh

Subscribers: klimek, cfe-commits

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

llvm-svn: 326945

6 years ago[ELF] Update test/ELF/eh-frame-hdr-augmentation.s
Fangrui Song [Wed, 7 Mar 2018 21:25:58 +0000 (21:25 +0000)]
[ELF] Update test/ELF/eh-frame-hdr-augmentation.s

llvm-svn: 326944

6 years agoRevert "Write a hash of the executable into the PE timestamp fields."
Zachary Turner [Wed, 7 Mar 2018 21:22:10 +0000 (21:22 +0000)]
Revert "Write a hash of the executable into the PE timestamp fields."

This is breaking a couple of tests, so I'm reverting temporarily
until I can get everything resolved properly.

llvm-svn: 326943

6 years agoCorrect the alignment for the PS4 target
Matthew Voss [Wed, 7 Mar 2018 20:48:16 +0000 (20:48 +0000)]
Correct the alignment for the PS4 target

https://reviews.llvm.org/D44218

llvm-svn: 326942

6 years agoRevert "[llvm-objcopy] Add support for large indexes"
Jake Ehrlich [Wed, 7 Mar 2018 20:33:02 +0000 (20:33 +0000)]
Revert "[llvm-objcopy] Add support for large indexes"

Not all build bots have unzip which I used in a test.

This reverts commit 0b1f26d39ea42dd3716b525fbc8c78d8c7bb4479.

llvm-svn: 326941

6 years ago[llvm-objcopy] Add support for large indexes
Jake Ehrlich [Wed, 7 Mar 2018 19:59:15 +0000 (19:59 +0000)]
[llvm-objcopy] Add support for large indexes

Because of -ffunction-sections (and maybe other use cases I'm not aware of?) it
can occur that we need more than 0xfeff sections but ELF dosn't support that
many sections. To solve this problem SHN_XINDEX exists and with it come a whole
host of changes for section indexes everywhere. This change adds support for
those cases which should allow llvm-objcopy to copy binaries that have an
arbitrary number of sections.

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

llvm-svn: 326940

6 years ago[X86] Remove unused function argument. NFC
Craig Topper [Wed, 7 Mar 2018 19:45:45 +0000 (19:45 +0000)]
[X86] Remove unused function argument. NFC

llvm-svn: 326939

6 years ago[sanitizer] Fix SANITIZER_INTERCEPT_MMAP and SANITIZER_INTERCEPT_MMAP64 values
Vitaly Buka [Wed, 7 Mar 2018 19:43:50 +0000 (19:43 +0000)]
[sanitizer] Fix SANITIZER_INTERCEPT_MMAP and SANITIZER_INTERCEPT_MMAP64 values

llvm-svn: 326938

6 years ago[OpenCL] Remove block invoke function from emitted block literal struct
Yaxun Liu [Wed, 7 Mar 2018 19:32:58 +0000 (19:32 +0000)]
[OpenCL] Remove block invoke function from emitted block literal struct

OpenCL runtime tracks the invoke function emitted for
any block expression. Due to restrictions on blocks in
OpenCL (v2.0 s6.12.5), it is always possible to know the
block invoke function when emitting call of block expression
or __enqueue_kernel builtin functions. Since __enqueu_kernel
already has an argument for the invoke function, it is redundant
to have invoke function member in the llvm block literal structure.

This patch removes invoke function from the llvm block literal
structure. It also removes the bitcast of block invoke function
to the generic block literal type which is useless for OpenCL.

This will save some space for the kernel argument, and also
eliminate some store instructions.

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

llvm-svn: 326937

6 years agoFix cmake's multi-config generators after r326738
Daniel Sanders [Wed, 7 Mar 2018 19:32:36 +0000 (19:32 +0000)]
Fix cmake's multi-config generators after r326738

LLVM_ENABLE_STATS isn't known at configure-time in these generators so we must
defer it to build-time.

llvm-svn: 326936

6 years ago[analyzer] [NFC] Minor refactoring of NonNullParamChecker
George Karpenkov [Wed, 7 Mar 2018 19:27:32 +0000 (19:27 +0000)]
[analyzer] [NFC] Minor refactoring of NonNullParamChecker

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

llvm-svn: 326935

6 years agoUse exact uint32_t for uint32_t ELF field. NFC.
Rui Ueyama [Wed, 7 Mar 2018 19:25:36 +0000 (19:25 +0000)]
Use exact uint32_t for uint32_t ELF field. NFC.

llvm-svn: 326934

6 years agoInitialize a member in C++11 style. NFC.
Rui Ueyama [Wed, 7 Mar 2018 19:25:27 +0000 (19:25 +0000)]
Initialize a member in C++11 style. NFC.

llvm-svn: 326933

6 years ago[DebugInfo] Support DWARF expressions in eh_frame
Rafael Auler [Wed, 7 Mar 2018 19:19:51 +0000 (19:19 +0000)]
[DebugInfo] Support DWARF expressions in eh_frame

This patch enhances DWARFDebugFrame with the capability of parsing and
printing DWARF expressions in CFI instructions. It also makes FDEs and
CIEs accessible to lib users, so they can process them in client tools
that rely on LLVM. To make it self-contained with a test case, it
teaches llvm-readobj to be able to dump EH frames and checks they are
correct in a unit test. The llvm-readobj code is Maksim Panchenko's work
(maksfb).

Reviewers: JDevlieghere, espindola

Reviewed By: JDevlieghere

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

llvm-svn: 326932

6 years ago[lld] Attempt to appease buildbot.
Matt Morehouse [Wed, 7 Mar 2018 19:18:14 +0000 (19:18 +0000)]
[lld] Attempt to appease buildbot.

r326903 broke the conflict-debug-variable.s test.

llvm-svn: 326931

6 years ago[X86][SSE] Regenerate float maxnum/minnum tests
Simon Pilgrim [Wed, 7 Mar 2018 19:14:05 +0000 (19:14 +0000)]
[X86][SSE] Regenerate float maxnum/minnum tests

llvm-svn: 326930

6 years agoFix a bug regarding a mis-identified file type in pdbutil.
Zachary Turner [Wed, 7 Mar 2018 19:12:36 +0000 (19:12 +0000)]
Fix a bug regarding a mis-identified file type in pdbutil.

llvm-svn: 326929

6 years agodo not register matcher for objc-only checks when analyzing non-objc sources to save...
Yan Zhang [Wed, 7 Mar 2018 18:59:25 +0000 (18:59 +0000)]
do not register matcher for objc-only checks when analyzing non-objc sources to save resources

Summary: I did not put lang opt check in AvoidSpinlockCheck since OSSpinLock is not objc specific. We won't want to skip it when analyzing some C++ target used by other ObjC sources.

Reviewers: hokein, benhamilton

Reviewed By: benhamilton

Subscribers: klimek, cfe-commits

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

llvm-svn: 326928

6 years agoUpdate a few switch statements to handle file_magic::pdb.
Zachary Turner [Wed, 7 Mar 2018 18:58:33 +0000 (18:58 +0000)]
Update a few switch statements to handle file_magic::pdb.

This fixes a couple of warnings.

llvm-svn: 326927

6 years agoPush a function scope when parsing function bodies without a declaration
Reid Kleckner [Wed, 7 Mar 2018 18:55:10 +0000 (18:55 +0000)]
Push a function scope when parsing function bodies without a declaration

Summary:
This is PR36536.

There are a few ways to reach Sema::ActOnStartOfFunctionDef with a null
Decl. Currently, the parser continues on to attempt to parse the
statements in the function body without pushing a function scope or
declaration context. However, lots of statement parsing logic relies on
getCurFunction() returning something reasonable. It turns out that
getCurFunction() will never return null today because of an optimization
where Sema pre-allocates one FunctionScopeInfo and reuses it when
possible. This goes wrong when something inside the function body causes
us to push another function scope, such as requiring an implicit
definition of a special member function. Reusing the state clears it
out, which will lead to bugs. In PR36536, we found that the SwitchStack
gets unbalanced, because we push a switch, clear out the stack, and then
try to pop a switch that isn't there.

As a follow-up, I plan to move the pre-allocated FunctionScopeInfo out
of the FunctionScopes stack. This means the FunctionScopes stack will
often be empty, and callers of getCurFunction() will need to check for
null.

Reviewers: thakis

Subscribers: cfe-commits

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

llvm-svn: 326926

6 years ago[Pipeliner] Fixed node order issue related to zero latency edges
Roorda, Jan-Willem [Wed, 7 Mar 2018 18:53:36 +0000 (18:53 +0000)]
[Pipeliner] Fixed node order issue related to zero latency edges

Summary:
A desired property of the node order in Swing Modulo Scheduling is
that for nodes outside circuits the following holds: none of them is
scheduled after both a successor and a predecessor. We call
node orders that meet this property valid.

Although invalid node orders do not lead to the generation of incorrect
code, they can cause the pipeliner not being able to find a pipelined schedule
for arbitrary II. The reason is that after scheduling the successor and the
predecessor of a node, no room may be left to schedule the node itself.

For data flow graphs with 0-latency edges, the node ordering algorithm
of Swing Modulo Scheduling can generate such undesired invalid node orders.
This patch fixes that.

In the remainder of this commit message, I will give an example
demonstrating the issue, explain the fix, and explain how the the fix is tested.

Consider, as an example, the following data flow graph with all
edge latencies 0 and all edges pointing downward.

```
   n0
  /  \
n1    n3
  \  /
   n2
    |
   n4
```

Consider the implemented node order algorithm in top-down mode. In that mode,
the algorithm orders the nodes based on greatest Height and in case of equal
Height on lowest Movability. Finally, in case of equal Height and
Movability, given two nodes with an edge between them, the algorithm prefers
the source-node.

In the graph, for every node, the Height and Movability are equal to 0.
As will be explained below, the algorithm can generate the order n0, n1, n2, n3, n4.
So, node n3 is scheduled after its predecessor n0 and after its successor n2.

The reason that the algorithm can put node n2 in the order before node n3,
even though they have an edge between them in which node n3 is the source,
is the following: Suppose the algorithm has constructed the partial node
order n0, n1. Then, the nodes left to be ordered are nodes n2, n3, and n4. Suppose
that the while-loop in the implemented algorithm considers the nodes in
the order n4, n3, n2. The algorithm will start with node n4, and look for
more preferable nodes. First, node n4 will be compared with node n3. As the nodes
have equal Height and Movability and have no edge between them, the algorithm
will stick with node n4. Then node n4 is compared with node n2. Again the
Height and Movability are equal. But, this time, there is an edge between
the two nodes, and the algorithm will prefer the source node n2.
As there are no nodes left to compare, the algorithm will add node n2 to
the node order, yielding the partial node order n0, n1, n2. In this way node n2
arrives in the node-order before node n3.

To solve this, this patch introduces the ZeroLatencyHeight (ZLH) property
for nodes. It is defined as the maximum unweighted length of a path from the
given node to an arbitrary node in which each edge has latency 0.
So, ZLH(n0)=3, ZLH(n1)=ZLH(n3)=2, ZLH(n2)=1, and ZLH(n4)=0

In this patch, the preference for a greater ZeroLatencyHeight
is added in the top-down mode of the node ordering algorithm, after the
preference for a greater Height, and before the preference for a
lower Movability.

Therefore, the two allowed node-orders are n0, n1, n3, n2, n4 and n0, n3, n1, n2, n4.
Both of them are valid node orders.

In the same way, the bottom-up mode of the node ordering algorithm is adapted
by introducing the ZeroLatencyDepth property for nodes.

The patch is tested by adding extra checks to the following existing
lit-tests:
test/CodeGen/Hexagon/SUnit-boundary-prob.ll
test/CodeGen/Hexagon/frame-offset-overflow.ll
test/CodeGen/Hexagon/vect/vect-shuffle.ll

Before this patch, the pipeliner failed to pipeline the loops in these tests
due to invalid node-orders. After the patch, the pipeliner successfully
pipelines all these loops.

Reviewers: bcahoon

Reviewed By: bcahoon

Subscribers: Ayal, mgrang, llvm-commits

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

llvm-svn: 326925

6 years agoTeach identify_file_magic to identify PDB files.
Zachary Turner [Wed, 7 Mar 2018 18:40:41 +0000 (18:40 +0000)]
Teach identify_file_magic to identify PDB files.

llvm-svn: 326924

6 years ago[PowerPC] Move test to correct location.
Stefan Pintilie [Wed, 7 Mar 2018 18:27:10 +0000 (18:27 +0000)]
[PowerPC] Move test to correct location.

Test was added in r326906 to an incorrect location.
Moving the test to PPC CodeGen directory as the test is PPC specific.

llvm-svn: 326923

6 years ago[OPENMP] Fix lifetime of the loop counters.
Alexey Bataev [Wed, 7 Mar 2018 18:17:06 +0000 (18:17 +0000)]
[OPENMP] Fix lifetime of the loop counters.

We may emit incorrect lifetime info during codegen for loop counters in
OpenMP constructs because of automatic scope cleanup when we needed
temporarily locations for private loop counters.

llvm-svn: 326922

6 years ago[Fuzzer] Avoid the unnecessary rebuild of the custom libc++
Petr Hosek [Wed, 7 Mar 2018 18:14:09 +0000 (18:14 +0000)]
[Fuzzer] Avoid the unnecessary rebuild of the custom libc++

This changes the add_custom_libcxx macro to resemble the
llvm_ExternalProject_Add. The primary motivation is to avoid
unnecessary libFuzzer rebuilds that are being done on every
Ninja/Make invocation. The libc++ should be only rebuilt whenever
the libc++ source itself changes.

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

llvm-svn: 326921

6 years agoWrite a hash of the executable into the PE timestamp fields.
Zachary Turner [Wed, 7 Mar 2018 18:13:41 +0000 (18:13 +0000)]
Write a hash of the executable into the PE timestamp fields.

Windows tools treats the timestamp fields as sort of a build id,
using it to archive executables on a symbol server, as well as
for matching executables to PDBs.  We were writing 0 for these
fields, which would cause symbol servers to break as they are
indexed in the symbol server based on this value.

Although the field is called timestamp, it can really be any
value that is unique per build, so to support reproducible builds
we use a hash of the executable here.

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

llvm-svn: 326920

6 years ago[lldbtestsuite] llvm-objcopy is now required to run the lit tests.
Davide Italiano [Wed, 7 Mar 2018 18:06:12 +0000 (18:06 +0000)]
[lldbtestsuite] llvm-objcopy is now required to run the lit tests.

There's now a test using llvm-objcopy in lit/.
This doesn't fail on the bot(s) because `llvm-objcopy` is probably
already available there, but if you get a fresh checkout and run
`ninja check-lldb` you'll observe the failure as it's not tracking
the dependency correctly. This fixes the problem on my machine,
and probably everywhere else.

llvm-svn: 326919

6 years ago[ELF] - Adjust rangeToString to report ranges in a different format.
George Rimar [Wed, 7 Mar 2018 17:54:25 +0000 (17:54 +0000)]
[ELF] - Adjust rangeToString to report ranges in a different format.

It was raised during the review of D43819.

LLD usually use [X, Y] for reporting ranges, like below:
"relocation R_386_16 out of range: 65536 is not in [0, 65535]"

Patch changes rangeToString() to do the same.

Differential revision: https://reviews.llvm.org/D44207

llvm-svn: 326918

6 years ago[X86] Make the MUL->VPMADDWD work before op legalization on AVX1 targets. Simplify...
Craig Topper [Wed, 7 Mar 2018 17:53:18 +0000 (17:53 +0000)]
[X86] Make the MUL->VPMADDWD work before op legalization on AVX1 targets. Simplify feature checks by using isTypeLegal.

The v8i32 conversion on AVX1 targets was only working after LowerMUL splits 256-bit vectors.

While I was there I've also made it so we don't have to check for AVX2 and BWI directly and instead just ask if the type is legal.

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

llvm-svn: 326917

6 years ago[Support] Stop passing StringRefs by const reference in some of the getHostCPUname...
Craig Topper [Wed, 7 Mar 2018 17:53:16 +0000 (17:53 +0000)]
[Support] Stop passing StringRefs by const reference in some of the getHostCPUname implementations. NFC

llvm-svn: 326916

6 years ago[Hexagon] Rewrite non-HVX unaligned loads as pairs of aligned ones
Krzysztof Parzyszek [Wed, 7 Mar 2018 17:27:18 +0000 (17:27 +0000)]
[Hexagon] Rewrite non-HVX unaligned loads as pairs of aligned ones

This is a follow-up to r325169, this time for all types, not just HVX
vector types.

Disable this by default, since it's not always safe.

llvm-svn: 326915

6 years agoRevert r326911: Improve --warn-symbol-ordering.
Rui Ueyama [Wed, 7 Mar 2018 17:24:46 +0000 (17:24 +0000)]
Revert r326911: Improve --warn-symbol-ordering.

This reverts commit r326911 because it was committed by accident.

llvm-svn: 326914

6 years ago[LangRef] fix formatting in FP descriptions; NFC
Sanjay Patel [Wed, 7 Mar 2018 17:18:22 +0000 (17:18 +0000)]
[LangRef] fix formatting in FP descriptions; NFC

This is a clean-up step to reduce diffs ahead of real
changes to the FP semantics as discussed on llvm-dev:
http://lists.llvm.org/pipermail/llvm-dev/2018-February/121444.html

llvm-svn: 326913

6 years agoRename Indent{1,2} -> Indent{8,16}.
Rui Ueyama [Wed, 7 Mar 2018 17:15:15 +0000 (17:15 +0000)]
Rename Indent{1,2} -> Indent{8,16}.

llvm-svn: 326912

6 years agoImprove --warn-symbol-ordering.
Rui Ueyama [Wed, 7 Mar 2018 17:15:06 +0000 (17:15 +0000)]
Improve --warn-symbol-ordering.

Summary:
I originally tried to simplify code and then noticed that lld doesn't
do what it tells to the user by warn(). It says "unable to order
discarded symbol" but it actually can for sections eliminated by ICF.
With this patch, lld doesn't sort such sections.

Reviewers: jhenderson, rafael

Subscribers: emaste, arichardson, llvm-commits

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

llvm-svn: 326911

6 years ago[AMDGPU] Increased vector length for global/constant loads.
Farhana Aleen [Wed, 7 Mar 2018 17:09:18 +0000 (17:09 +0000)]
[AMDGPU] Increased vector length for global/constant loads.

Summary: GCN ISA supports instructions that can read 16 consecutive dwords from memory through the scalar data cache;
         loadstoreVectorizer should take advantage of the wider vector length and pack 16/8 elements of dwords/quadwords.

Author: FarhanaAleen

Reviewed By: rampitec

Subscribers: llvm-commits, AMDGPU

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

llvm-svn: 326910

6 years ago[clang-tidy] Add "portability" module and rename readability-simd-intrinsics to porta...
Fangrui Song [Wed, 7 Mar 2018 16:57:42 +0000 (16:57 +0000)]
[clang-tidy] Add "portability" module and rename readability-simd-intrinsics to portability-simd-intrinsics

Reviewers: alexfh

Subscribers: klimek, nemanjai, mgorny, xazax.hun, kbarton, cfe-commits

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

llvm-svn: 326909

6 years agoRe-land: Teach CorrelatedValuePropagation to reduce the width of udiv/urem instructions.
Justin Lebar [Wed, 7 Mar 2018 16:56:49 +0000 (16:56 +0000)]
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 failing an assert in clang bootstrap builds.  Re-landing
with a fix for handling non-power-of-two inputs (e.g. udiv i24).

Original Differential Revision: https://reviews.llvm.org/D44102

llvm-svn: 326908

6 years agoRevert "[AMDGPU] Widened vector length for global/constant address space."
Farhana Aleen [Wed, 7 Mar 2018 16:55:27 +0000 (16:55 +0000)]
Revert "[AMDGPU] Widened vector length for global/constant address space."

This reverts commit ce988cc100dc65e7c6c727aff31ceb99231cab03.

llvm-svn: 326907

6 years ago[PowerPC] LSR tunings for PowerPC
Stefan Pintilie [Wed, 7 Mar 2018 16:53:09 +0000 (16:53 +0000)]
[PowerPC] LSR tunings for PowerPC

The purpose of this patch is to have LSR generate better code on Power.
This is done by overriding isLSRCostLess.

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

llvm-svn: 326906

6 years ago[SampleFDO] Extend SampleProfReader to handle demangled names.
Wei Mi [Wed, 7 Mar 2018 16:45:33 +0000 (16:45 +0000)]
[SampleFDO] Extend SampleProfReader to handle demangled names.

SampleProfReader assumes function names in the profile are all mangled names.
However, there are cases that few demangled names are somehow contained in
the profile (usually because of debug info problems), which may trigger parsing
error in SampleProfReader and cause the whole profile to be unusable. The patch
extends SampleProfReader to handle profiles with demangled names, so that those
profiles can still be useful.

Differential revision: https://reviews.llvm.org/D44161

llvm-svn: 326905

6 years ago[AMDGPU] Widened vector length for global/constant address space.
Farhana Aleen [Wed, 7 Mar 2018 16:29:05 +0000 (16:29 +0000)]
[AMDGPU] Widened vector length for global/constant address space.

llvm-svn: 326904

6 years ago[dwarfdump] Only print CU relative offset in verbose mode
Jonas Devlieghere [Wed, 7 Mar 2018 16:28:53 +0000 (16:28 +0000)]
[dwarfdump] Only print CU relative offset in verbose mode

Instead of only printing the CU-relative offset in non-verbose mode, it
makes more sense to only printed the resolved address. In verbose mode
we still print both.

Differential revision: https://reviews.llvm.org/D44148

rdar://33525475

llvm-svn: 326903

6 years agoRevert "Reapply "[DWARFv5] Emit file 0 to the line table.""
Alexander Kornienko [Wed, 7 Mar 2018 16:27:44 +0000 (16:27 +0000)]
Revert "Reapply "[DWARFv5] Emit file 0 to the line table.""

This reverts commit r326839.

r326839 breaks assembly file parsing:

$ cat q.c
void g() {}
$ clang -S q.c -g
$ clang -g -c q.s
q.s:9:2: error: file number already allocated
     .file   1 "/tmp/test" "q.c"
     ^

llvm-svn: 326902

6 years ago[scudo] Make logging more consistent
Kostya Kortchinsky [Wed, 7 Mar 2018 16:22:16 +0000 (16:22 +0000)]
[scudo] Make logging more consistent

Summary:
A few changes related to logging:
- prepend `Scudo` to the error messages so that users can identify that we
  reported an error;
- replace a couple of `Report` calls in the RSS check code with
  `dieWithMessage`/`Print`, mark a condition as `UNLIKELY` in the process;
- change some messages so that they all look more or less the same. This
  includes the `CHECK` message;
- adapt a couple of tests with the new strings.

A couple of side notes: this results in a few 1-line-blocks, for which I left
brackets. There doesn't seem to be any style guide for that, I can remove them
if need be. I didn't use `SanitizerToolName` in the strings, but directly
`Scudo` because we are the only users, I could change that too.

Reviewers: alekseyshl, flowerhack

Reviewed By: alekseyshl

Subscribers: mgorny, delcypher, llvm-commits, #sanitizers

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

llvm-svn: 326901

6 years agoRevert rL326898: "Teach CorrelatedValuePropagation to reduce the width of udiv/urem...
Justin Lebar [Wed, 7 Mar 2018 16:05:43 +0000 (16:05 +0000)]
Revert rL326898: "Teach CorrelatedValuePropagation to reduce the width of udiv/urem instructions."

Breaks bootstrap builds: clang built with this patch asserts while
building MCDwarf.cpp: Assertion `castIsValid(op, S, Ty) && "Invalid
cast!"' failed.

llvm-svn: 326900

6 years ago[ELF] Prevent crash when reporting errors if debug line cannot be parsed
James Henderson [Wed, 7 Mar 2018 15:22:58 +0000 (15:22 +0000)]
[ELF] Prevent crash when reporting errors if debug line cannot be parsed

LLD uses the debug info and debug line sections to determine the location of
e.g. references to undefined symbols, when producing error messages. In the
event that debug info was present, but debug line parsing failed for some
reason, then a nullptr would end up being dereferenced by the location-lookup
code.

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

Reviewers: grimar
llvm-svn: 326899

6 years agoTeach CorrelatedValuePropagation to reduce the width of udiv/urem instructions.
Justin Lebar [Wed, 7 Mar 2018 15:11:13 +0000 (15:11 +0000)]
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.

Reviewers: spatel, sanjoy

Subscribers: llvm-commits, hiraditya

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

llvm-svn: 326898

6 years ago[X86][X87] Add X87 fp80 conversion tests
Simon Pilgrim [Wed, 7 Mar 2018 14:13:14 +0000 (14:13 +0000)]
[X86][X87] Add X87 fp80 conversion tests

llvm-svn: 326897

6 years ago[WebAssembly] Run clang-format. NFC
Nicholas Wilson [Wed, 7 Mar 2018 13:28:16 +0000 (13:28 +0000)]
[WebAssembly] Run clang-format. NFC

llvm-svn: 326896

6 years ago[ELF] - Recommit r326892,r326893 "[ELF] - Report LMA region overflows."
George Rimar [Wed, 7 Mar 2018 12:44:18 +0000 (12:44 +0000)]
[ELF] - Recommit r326892,r326893 "[ELF] - Report LMA region overflows."

With fix: add missing "RUN:" prefix to test case.

Original commit message:
We do not report LMA region overflows currently.
Both GNU linkers do that. The patch implements it.

Differential revision: https://reviews.llvm.org/D44094

llvm-svn: 326895

6 years ago[ELF] - Revert r326892, r326893.
George Rimar [Wed, 7 Mar 2018 12:33:00 +0000 (12:33 +0000)]
[ELF] - Revert r326892, r326893.

Bots are still unhappy:
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/26259

llvm-svn: 326894

6 years ago[ELF] - Fix build bot after r326892 "[ELF] - Report LMA region overflows."
George Rimar [Wed, 7 Mar 2018 12:16:26 +0000 (12:16 +0000)]
[ELF] - Fix build bot after r326892 "[ELF] - Report LMA region overflows."

Removed excessive line from testcase.

llvm-svn: 326893

6 years ago[ELF] - Report LMA region overflows.
George Rimar [Wed, 7 Mar 2018 11:54:30 +0000 (11:54 +0000)]
[ELF] - Report LMA region overflows.

We do not report LMA region overflows currently.
Both GNU linkers do that. The patch implements it.

Differential revision: https://reviews.llvm.org/D44094

llvm-svn: 326892

6 years ago[ELF] - Allow discarding .hash and .gnu.hash from linker script.
George Rimar [Wed, 7 Mar 2018 11:47:15 +0000 (11:47 +0000)]
[ELF] - Allow discarding .hash and .gnu.hash from linker script.

Currently, LLD segfaults when linker script attempts to discard
one of the hash sections. This patch fixes that.

Differential revision: https://reviews.llvm.org/D44012

llvm-svn: 326891

6 years ago[mips] Correct the definition of m(f|t)c(0|2)
Simon Dardis [Wed, 7 Mar 2018 11:39:48 +0000 (11:39 +0000)]
[mips] Correct the definition of m(f|t)c(0|2)

These instructions are defined as taking a GPR register and a
coprocessor register for ISAs up to MIPS32. MIPS32 extended the
definition to allow a selector--a value from 0 to 32--to access
another register.

These instructions are now internally defined as being MIPS-I
instructions, but are rejected for pre-MIPS32 ISA's if they have
an explicit selector which is non-zero. This deviates slightly from
GAS's behaviour which rejects assembly instructions with an
explicit selector for pre-MIPS32 ISAs.

E.g:

mfc0 $4, $5, 0
is rejected by GAS for MIPS-I to MIPS-V but will be accepted
with this patch for MIPS-I to MIPS-V.

Reviewers: atanasyan

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

llvm-svn: 326890

6 years agoAdd Clang ReleaseNotes that --autocomplete breaks backward compatibily
Yuka Takahashi [Wed, 7 Mar 2018 11:34:02 +0000 (11:34 +0000)]
Add Clang ReleaseNotes that --autocomplete breaks backward compatibily

Summary:
--autocomplete flag now handles all the flags passed to shell, and this
implementation breaks backward compatibily before Clang 6.0.

Reviewers: teemperor, v.g.vassilev

Subscribers: cfe-commits

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

llvm-svn: 326889

6 years ago[WebAssembly] Remove duplicated line of code and unreachable check. NFC
Nicholas Wilson [Wed, 7 Mar 2018 11:15:47 +0000 (11:15 +0000)]
[WebAssembly] Remove duplicated line of code and unreachable check. NFC

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

llvm-svn: 326888

6 years ago[WebAssembly] Use StringSaver to retain ownership of ctor function body. NFC
Nicholas Wilson [Wed, 7 Mar 2018 10:37:50 +0000 (10:37 +0000)]
[WebAssembly] Use StringSaver to retain ownership of ctor function body. NFC

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

llvm-svn: 326885

6 years ago[LoadStoreVectorizer] Differentiate between <1 x T> and T
Sven van Haastregt [Wed, 7 Mar 2018 10:29:28 +0000 (10:29 +0000)]
[LoadStoreVectorizer] Differentiate between <1 x T> and T

The LoadStoreVectorizer thought that <1 x T> and T were the same types
when merging stores, leading to a crash later.

Patch by Erik Hogeman.

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

llvm-svn: 326884

6 years agoDon't intercept mmap64() on NetBSD
Kamil Rytarowski [Wed, 7 Mar 2018 09:16:10 +0000 (09:16 +0000)]
Don't intercept mmap64() on NetBSD

Disable SANITIZER_INTERCEPT_MMAP64 for SI_NETBSD.

NetBSD switched to 64-bit offsets almost 30 years ago on 32-bit platforms
and never needed mmap64() concept.

llvm-svn: 326883

6 years ago[ARM] Fix for PR36577
Sjoerd Meijer [Wed, 7 Mar 2018 09:10:44 +0000 (09:10 +0000)]
[ARM] Fix for PR36577

Don't PerformSHLSimplify if the given node is used by a node that also uses a
constant because we may get stuck in an infinite combine loop.

bugzilla: https://bugs.llvm.org/show_bug.cgi?id=36577

Patch by Sam Parker.

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

llvm-svn: 326882

6 years ago[SystemZ] NFC refactoring in SystemZHazardRecognizer.
Jonas Paulsson [Wed, 7 Mar 2018 08:57:09 +0000 (08:57 +0000)]
[SystemZ]  NFC refactoring in SystemZHazardRecognizer.

Use Reset() after emitting a call.

Review: Ulrich Weigand
llvm-svn: 326881

6 years ago[SystemZ] Improve getCurrCycleIdx() in SystemZHazardRecognizer.
Jonas Paulsson [Wed, 7 Mar 2018 08:54:32 +0000 (08:54 +0000)]
[SystemZ]  Improve getCurrCycleIdx() in SystemZHazardRecognizer.

getCurrCycleIdx() returns the decoder cycle index which the next candidate SU
will be placed on.

This patch improves this method by passing the candidate SU to it so that if
SU will begin a new group, the index of that group is returned instead.

Review: Ulrich Weigand
llvm-svn: 326880

6 years ago[SystemZ] NFC refactoring in SystemZHazardRecognizer.
Jonas Paulsson [Wed, 7 Mar 2018 08:45:09 +0000 (08:45 +0000)]
[SystemZ] NFC refactoring in SystemZHazardRecognizer.

Handle the not-taken branch in emitInstruction() where the TakenBranch
argument is available. This is cleaner than relying on EmitInstruction().

Review: Ulrich Weigand
llvm-svn: 326879

6 years ago[SystemZ] Improved debug dumping during post-RA scheduling.
Jonas Paulsson [Wed, 7 Mar 2018 08:39:00 +0000 (08:39 +0000)]
[SystemZ]  Improved debug dumping during post-RA scheduling.

Review: Ulrich Weigand
llvm-svn: 326878

6 years ago[X86] Add IMUL scheduling info on sandybridge, fix it on >=haswell.
Clement Courbet [Wed, 7 Mar 2018 08:14:02 +0000 (08:14 +0000)]
[X86] Add IMUL scheduling info on sandybridge, fix it on >=haswell.

Summary:
Only IMUL16rri uses an extra P0156. IMUL32* and IMUL16rr only use
P1.
This was computed using https://github.com/google/EXEgesis/blob/master/exegesis/tools/compute_itineraries.cc

This can easily be validated by running perf on the following code:

```
int main(int argc, char**argv) {
  int a = argc;
  int b = argc;
  int c = argc;
  int d = argc;

  for (int i = 0; i < LOOP_ITERATIONS; ++i) {
    asm volatile(
      R"(
        .rept 10000
        imull $0x2, %%edx, %%eax
        imull $0x2, %%ecx, %%ebx
        imull $0x2, %%eax, %%edx
        imull $0x2, %%ebx, %%ecx
        .endr
      )"
      : "+a"(a), "+b"(b), "+c"(c), "+d"(d)
      :
      :);
  }
  return a+b+c+d;
}
```
-> test.cc

perf stat -x, -e cycles --pfm-events=uops_executed_port:port_0:u,uops_executed_port:port_1:u,uops_executed_port:port_2:u,uops_executed_port:port_3:u,uops_executed_port:port_4:u,uops_executed_port:port_5:u,uops_executed_port:port_6:u,uops_executed_port:port_7:u test

Reviewers: craig.topper, RKSimon, gadi.haber

Subscribers: llvm-commits, gchatelet, chandlerc

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

llvm-svn: 326877

6 years agoAttempt to appease buildbots
George Burgess IV [Wed, 7 Mar 2018 07:36:23 +0000 (07:36 +0000)]
Attempt to appease buildbots

I can't reproduce this build error locally, but it appears
straightforward enough to fix. r326851 renamed two of the params of this
interceptor, but apparently to update their use here.

Failure:
http://lab.llvm.org:8011/builders/clang-cmake-aarch64-full/builds/4569

llvm-svn: 326876

6 years ago[SymbolFilePDB] Add missing Char16 and Char32 types in a few places
Aaron Smith [Wed, 7 Mar 2018 05:43:05 +0000 (05:43 +0000)]
[SymbolFilePDB] Add missing Char16 and Char32 types in a few places

Reviewers: zturner, rnk, lldb-commits

Subscribers: clayborg, llvm-commits

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

llvm-svn: 326875

6 years agoDisable tests from r326852 on Darwin
Adam Nemet [Wed, 7 Mar 2018 05:33:37 +0000 (05:33 +0000)]
Disable tests from r326852 on Darwin

Darwin needs xlocale.h but I see no precedence in the code how non-Posix
headers like this are handled and I am not experienced with this code.  Just
disable the tests for now to recover the bots.

rdar://38208146

llvm-svn: 326874

6 years agoRemove a placeholder
George Burgess IV [Wed, 7 Mar 2018 05:02:27 +0000 (05:02 +0000)]
Remove a placeholder

...Running tests in the wrong directory will often make them seem to
pass. Oops. :)

llvm-svn: 326873

6 years agoReland r326766 (with a slightly modified test)
George Burgess IV [Wed, 7 Mar 2018 04:52:34 +0000 (04:52 +0000)]
Reland r326766 (with a slightly modified test)

The original revert was done in r326869, since reverting r326602 broke
the test added by this.

The new test should be less dependent on r326602.

llvm-svn: 326872

6 years ago[demangler] Fix a mistake in r326797.
Erik Pilkington [Wed, 7 Mar 2018 04:29:33 +0000 (04:29 +0000)]
[demangler] Fix a mistake in r326797.

Thanks to Nico Weber for pointing this out!

llvm-svn: 326871

6 years ago[SymbolFilePDB] Minor cleanup
Aaron Smith [Wed, 7 Mar 2018 03:16:50 +0000 (03:16 +0000)]
[SymbolFilePDB] Minor cleanup

Summary:
 - Remove unused code

- Adding `break` statement conditionally

- Ignore empty strings in FindTypeByName

Reviewers: zturner, rnk, lldb-commits

Reviewed By: zturner

Subscribers: llvm-commits

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

llvm-svn: 326870

6 years agoRevert 326766 too, after r326862 the test fails and I don't know how to fix.
Nico Weber [Wed, 7 Mar 2018 03:00:25 +0000 (03:00 +0000)]
Revert 326766 too, after r326862 the test fails and I don't know how to fix.

llvm-svn: 326869

6 years ago[analyzer] Fix the checker for the performance anti-pattern to accept messages
George Karpenkov [Wed, 7 Mar 2018 02:54:01 +0000 (02:54 +0000)]
[analyzer] Fix the checker for the performance anti-pattern to accept messages

send to ObjC objects.

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

llvm-svn: 326868

6 years ago[Driver] Enable SafeStack by default on Fuchsia
Petr Hosek [Wed, 7 Mar 2018 02:49:58 +0000 (02:49 +0000)]
[Driver] Enable SafeStack by default on Fuchsia

This is already used throughout the entire system, so make it a default.

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

llvm-svn: 326867

6 years ago[XRay][compiler-rt] Add APIs for processing logs in memory
Dean Michael Berris [Wed, 7 Mar 2018 02:45:14 +0000 (02:45 +0000)]
[XRay][compiler-rt] Add APIs for processing logs in memory

Summary:
This change adds APIs to allow logging implementations to provide a
function for iterating through in-memory buffers (if they hold in-memory
buffers) and a way for users to generically deal with these buffers
in-process. These APIs are:

  - __xray_log_set_buffer_iterator(...) and
    __xray_log_remove_buffer_iterator(): installs and removes an
    iterator function that takes an XRayBuffer and yields the next one.

  - __xray_log_process_buffers(...): takes a function pointer that can
    take a mode identifier (string) and an XRayBuffer to process this
    data as they see fit.

The intent is to have the FDR mode implementation's buffers be
available through this `__xray_log_process_buffers(...)` API, so that
they can be streamed from memory instead of flushed to disk (useful for
getting the data to a network, or doing in-process analysis).

Basic mode logging will not support this mechanism as it's designed to
write the data mostly to disk.

Future implementations will may depend on this API as well, to allow for
programmatically working through the XRay buffers exposed to the
users in some fashion.

Reviewers: eizan, kpw, pelikan

Subscribers: llvm-commits

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

llvm-svn: 326866

6 years ago[ASTMatcher] Extend hasAnyArgument to ObjCMessageExpr
George Karpenkov [Wed, 7 Mar 2018 02:32:44 +0000 (02:32 +0000)]
[ASTMatcher] Extend hasAnyArgument to ObjCMessageExpr

Currently hasArgument works with both ObjC messages and function calls,
but not hasAnyArgument.
This patch fixes that discrepancy, as it's often more convenient to use
hasAnyArgument.

On a more general note, it would be great to have a common superclass
for objc-call and function call, and a matcher matching that, but that's
probably a job for another commit.

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

llvm-svn: 326865

6 years agoFixup r326851: mmap64 interceptor should not be used on Darwin.
Kuba Mracek [Wed, 7 Mar 2018 02:30:55 +0000 (02:30 +0000)]
Fixup r326851: mmap64 interceptor should not be used on Darwin.

llvm-svn: 326864

6 years ago[llvm-pdbdump] Add guard for null pointers and remove unused code
Aaron Smith [Wed, 7 Mar 2018 02:23:08 +0000 (02:23 +0000)]
[llvm-pdbdump] Add guard for null pointers and remove unused code

Summary: This avoids crashing when a user tries to dump a pdb with the `-native` option.

Reviewers: zturner, llvm-commits, rnk

Reviewed By: zturner

Subscribers: mgrang

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

llvm-svn: 326863

6 years agoRevert r326602, it caused PR36620.
Nico Weber [Wed, 7 Mar 2018 02:22:41 +0000 (02:22 +0000)]
Revert r326602, it caused PR36620.

llvm-svn: 326862

6 years agoAdd early exit on reassociation of 0 expression.
Evgeny Stupachenko [Wed, 7 Mar 2018 02:17:08 +0000 (02:17 +0000)]
Add early exit on reassociation of 0 expression.

Summary:

Before the patch a try to reassociate ((v * 16) * 0) * 1 fall into infinite loop

Reviewers: pankajchawla

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

From: Evgeny Stupachenko <evstupac@gmail.com>
                         <evgeny.v.stupachenko@intel.com>
llvm-svn: 326861

6 years ago[Driver] Automatically disable incompatible default sanitizers
Petr Hosek [Wed, 7 Mar 2018 01:27:03 +0000 (01:27 +0000)]
[Driver] Automatically disable incompatible default sanitizers

When a sanitizer incompatible with one of the default sanitizers
is explicitly enabled, automatically disable all the conflicting
default sanitizers.

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

llvm-svn: 326860

6 years ago[SymbolFilePDB] Add support for CVR pointer type qualifier
Aaron Smith [Wed, 7 Mar 2018 00:39:25 +0000 (00:39 +0000)]
[SymbolFilePDB] Add support for CVR pointer type qualifier

Summary:
- Complete element type of PDBSymbolTypeArray.

- Add a test to check types of multi-dimensional array and pointers with CVR.

Reviewers: zturner, rnk, lldb-commits

Reviewed By: zturner

Subscribers: llvm-commits

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

llvm-svn: 326859

6 years ago[SymbolFilePDB] Get line number for PDBSymbolTypeEnum
Aaron Smith [Wed, 7 Mar 2018 00:35:27 +0000 (00:35 +0000)]
[SymbolFilePDB] Get line number for PDBSymbolTypeEnum

Reviewers: zturner, lldb-commits, rnk

Reviewed By: zturner

Subscribers: llvm-commits

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

llvm-svn: 326858

6 years ago[DebugInfoPDB] Add DIA implementation for getSrcLineOnTypeDefn
Aaron Smith [Wed, 7 Mar 2018 00:33:09 +0000 (00:33 +0000)]
[DebugInfoPDB] Add DIA implementation for getSrcLineOnTypeDefn

Summary: This helps to determine the line number for a PDB type with definition

Reviewers: zturner, llvm-commits, rnk

Reviewed By: zturner

Subscribers: rengolin, JDevlieghere

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

llvm-svn: 326857

6 years ago[StaticAnalyzer] Fix some Clang-tidy modernize and Include What You Use warnings...
Eugene Zelenko [Wed, 7 Mar 2018 00:17:48 +0000 (00:17 +0000)]
[StaticAnalyzer] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

llvm-svn: 326856

6 years ago[sanitizer] Update symbolizer test
Vitaly Buka [Wed, 7 Mar 2018 00:15:10 +0000 (00:15 +0000)]
[sanitizer] Update symbolizer test

llvm-svn: 326855

6 years ago[sanitizer] Extract common code into STRXFRM_INTERCEPTOR_IMPL
Vitaly Buka [Wed, 7 Mar 2018 00:14:52 +0000 (00:14 +0000)]
[sanitizer] Extract common code into STRXFRM_INTERCEPTOR_IMPL

llvm-svn: 326854