platform/upstream/llvm.git
5 years agoMove architecture-specific address adjustment to architecture plugins
Tatyana Krasnukha [Fri, 21 Sep 2018 18:56:44 +0000 (18:56 +0000)]
Move architecture-specific address adjustment to architecture plugins

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

llvm-svn: 342762

5 years ago[WebAssembly][NFC] Rename simd-conversions test to simd-bitcasts
Thomas Lively [Fri, 21 Sep 2018 18:46:39 +0000 (18:46 +0000)]
[WebAssembly][NFC] Rename simd-conversions test to simd-bitcasts

Summary:
This name is more accurate and I want to reuse the simd-conversions
name for testing the actual conversion ops.

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

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

llvm-svn: 342761

5 years agoPass code-model through Module IR to LTO which will use it.
Caroline Tice [Fri, 21 Sep 2018 18:41:31 +0000 (18:41 +0000)]
Pass code-model through Module IR to LTO which will use it.

Currently the code-model does not get saved in the module IR,
so if a code model is specified when compiling with LTO,
it gets lost and is not propagated properly to LTO. This patch,
along with one for the front end, fixes that.

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

llvm-svn: 342760

5 years ago[NFC] use bit_cast in PointerSumType
JF Bastien [Fri, 21 Sep 2018 18:35:32 +0000 (18:35 +0000)]
[NFC] use bit_cast in PointerSumType

The code was already using union and memcpy to do this. Remove the memcpy. We can't just change the union because a reference to its member is returned.

llvm-svn: 342759

5 years agoAdd necessary support for storing code-model to module IR.
Caroline Tice [Fri, 21 Sep 2018 18:34:59 +0000 (18:34 +0000)]
Add necessary support for storing code-model to module IR.

Currently the code-model does not get saved in the module IR, so if a
code model is specified when compiling with LTO, it gets lost and is
not propagated properly to LTO. This patch does what is necessary in
the front end to pass the code-model to the module, so that the back
end can store it in the Module .

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

llvm-svn: 342758

5 years agobuild: add libedit to include paths
Tatyana Krasnukha [Fri, 21 Sep 2018 18:34:41 +0000 (18:34 +0000)]
build: add libedit to include paths

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

llvm-svn: 342757

5 years ago[x86] add (negative) andnp test for D52318; NFC
Sanjay Patel [Fri, 21 Sep 2018 18:24:53 +0000 (18:24 +0000)]
[x86] add (negative) andnp test for D52318; NFC

llvm-svn: 342756

5 years ago[x86] add test with optsize attribute for scalar->vector transform; NFC
Sanjay Patel [Fri, 21 Sep 2018 18:03:49 +0000 (18:03 +0000)]
[x86] add test with optsize attribute for scalar->vector transform; NFC

llvm-svn: 342755

5 years agoUpdate release notes.
Rui Ueyama [Fri, 21 Sep 2018 17:48:45 +0000 (17:48 +0000)]
Update release notes.

llvm-svn: 342754

5 years ago[WebAssembly] Made assembler only use stack instruction tablegen defs
Wouter van Oortmerssen [Fri, 21 Sep 2018 17:47:58 +0000 (17:47 +0000)]
[WebAssembly] Made assembler only use stack instruction tablegen defs

Summary:
This ensures we have the non-register version of the instruction.

The stack version of call_indirect now wants a type index argument,
so that has been added in the existing tests.

Tested:
llvm-lit -v `find test -name WebAssembly`

Reviewers: dschuff

Subscribers: sbc100, jgravelle-google, aheejin, sunfish, llvm-commits

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

llvm-svn: 342753

5 years ago[CUDA] Fixed parsing of optional template-argument-list.
Artem Belevich [Fri, 21 Sep 2018 17:46:28 +0000 (17:46 +0000)]
[CUDA] Fixed parsing of optional template-argument-list.

We need to consider all tokens that start with '>' when
we're checking for the end of an empty template argument list.

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

llvm-svn: 342752

5 years ago[Hexagon] Avoid functions with exception handling in HexagonConstExtenders
Krzysztof Parzyszek [Fri, 21 Sep 2018 17:40:35 +0000 (17:40 +0000)]
[Hexagon] Avoid functions with exception handling in HexagonConstExtenders

The constant-extender optimization does a form of code motion, which is
complicated in the presence of exception handling.

llvm-svn: 342751

5 years ago[NFC] remove unused variable
JF Bastien [Fri, 21 Sep 2018 17:38:41 +0000 (17:38 +0000)]
[NFC] remove unused variable

It was causing a warning.

llvm-svn: 342750

5 years ago[CUDA] Ignore uncallable functions when we check for usual deallocators.
Artem Belevich [Fri, 21 Sep 2018 17:29:33 +0000 (17:29 +0000)]
[CUDA] Ignore uncallable functions when we check for usual deallocators.

Previously clang considered function variants from both sides of
compilation and that resulted in picking up wrong deallocation function.

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

llvm-svn: 342749

5 years agoUpdate release notes.
Rui Ueyama [Fri, 21 Sep 2018 17:13:55 +0000 (17:13 +0000)]
Update release notes.

llvm-svn: 342748

5 years ago[sanitizer] Move __sanitizer_set_death_callback to a more appropriate file
Kostya Kortchinsky [Fri, 21 Sep 2018 17:05:56 +0000 (17:05 +0000)]
[sanitizer] Move __sanitizer_set_death_callback to a more appropriate file

Summary:
`__sanitizer_set_death_callback` is a public interface function wrapping
`SetUserDieCallback`. Said function is defined in `sanitizer_termination.cc`,
which is not included in all the RT. Moving the interface function to that
file allows to not have a spurious public fuinction in RT that don't use it.

Reviewers: eugenis

Reviewed By: eugenis

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

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

llvm-svn: 342747

5 years agoAlign AArch64 and i386 image base to superpage
Dimitry Andric [Fri, 21 Sep 2018 16:58:13 +0000 (16:58 +0000)]
Align AArch64 and i386 image base to superpage

Summary:

As for x86_64, the default image base for AArch64 and i386 should be
aligned to a superpage appropriate for the architecture.

On AArch64, this is 2 MiB, on i386 it is 4 MiB.

Reviewers: emaste, grimar, javed.absar, espindola, ruiu, peter.smith, srhines, rprichard

Reviewed By: ruiu, peter.smith

Subscribers: jfb, markj, arichardson, krytarowski, kristof.beyls, llvm-commits

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

llvm-svn: 342746

5 years ago[XRay][compiler-rt] Update use of internal_mmap
Dean Michael Berris [Fri, 21 Sep 2018 16:34:42 +0000 (16:34 +0000)]
[XRay][compiler-rt] Update use of internal_mmap

Summary:
The implementation of `internal_mmap(...)` deviates from the contract of
`mmap(...)` -- i.e. error returns are actually the equivalent of `errno`
results. We update how XRay uses `internal_mmap(...)` to better handle
these error conditions.

In the process, we change the default pointers we're using from `char*`
to `uint8_t*` to prevent potential usage of the pointers in the string
library functions that expect to operate on `char*`.

We also take the chance to "promote" sizes of individual `internal_mmap`
requests to at least page size bytes, consistent with the expectations
of calls to `mmap`.

Reviewers: cryptoad, mboerger

Subscribers: llvm-commits

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

llvm-svn: 342745

5 years ago[tblgen] Fix undefined behaviour when assigning integers to large bits<n>'s
Daniel Sanders [Fri, 21 Sep 2018 16:32:49 +0000 (16:32 +0000)]
[tblgen] Fix undefined behaviour when assigning integers to large bits<n>'s

This code:
  bits<96> X = 0;
was triggering undefined behaviour since it iterates over bits 0..95 and tests
them against the IntInit using 1LL << I.

This patch resolves the undefined behaviour by continuing to treat the IntInit
as a 64-bit value and simply causing all bit tests in excess of 64-bits to report
false. As a result,
  bits<96> X = -1;
will be equivalent to:
  bits<96> X;
  let X{0-63} = -1;
  let X{64-95} = 0;

llvm-svn: 342744

5 years agorevert changes from r342722
Sameer Sahasrabuddhe [Fri, 21 Sep 2018 16:31:51 +0000 (16:31 +0000)]
revert changes from r342722

"[AMDGPU] lower-switch in preISel as a workaround for legacy DA"

This broke regression tests. The first breakage was noticed here:
http://lab.llvm.org:8011/builders/lld-x86_64-freebsd/builds/23549

llvm-svn: 342743

5 years agoAArch64FastISel: Abort if we failed to select operand of intrinsic
Matthias Braun [Fri, 21 Sep 2018 15:47:41 +0000 (15:47 +0000)]
AArch64FastISel: Abort if we failed to select operand of intrinsic

rdar://44642447

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

llvm-svn: 342742

5 years ago[OPENMP] Disable emission of the class with vptr if they are not used in
Alexey Bataev [Fri, 21 Sep 2018 14:55:26 +0000 (14:55 +0000)]
[OPENMP] Disable emission of the class with vptr if they are not used in
target constructs.

Prevent compilation of the classes with the virtual tables when
compiling for the device.

llvm-svn: 342741

5 years ago[InstCombine] add tests for extractelement; NFC
Sanjay Patel [Fri, 21 Sep 2018 14:43:49 +0000 (14:43 +0000)]
[InstCombine] add tests for extractelement; NFC

There are folds under visitExtractElementInst() that don't appear
to have any test coverage, so adding a few basic cases here.

llvm-svn: 342740

5 years ago[ADT] restrict bit_cast to trivially-constructible To
JF Bastien [Fri, 21 Sep 2018 14:31:25 +0000 (14:31 +0000)]
[ADT] restrict bit_cast to trivially-constructible To

Summary: As discussed in r341853 by blaikie, the reinterpret_cast was technically an aliasing violation. Restrict our bit_cast implementation to To which are trivially-constructible (and note the existing restriction to constexpr). Once we move to C++17 we can use a version of bit_cast without these restrictions, or if we care we can SFINAE a different implementation when To isn't trivially-constructible.

Originally landed in r342710 and reverted in r342711 because is_trivially_copyable is only in GCC 5.1 and later.

Reviewers: dblaikie, rsmith

Subscribers: dexonsmith, kristina, llvm-commits

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

llvm-svn: 342739

5 years ago[OPENMP][NVPTX] Enable support for lastprivates in SPMD constructs.
Alexey Bataev [Fri, 21 Sep 2018 14:22:53 +0000 (14:22 +0000)]
[OPENMP][NVPTX] Enable support for lastprivates in SPMD constructs.

Previously we could not use lastprivates in SPMD constructs, patch
allows supporting lastprivates in SPMD with uninitialized runtime.

llvm-svn: 342738

5 years ago[OPENMP][NVPTX] Add support for lastprivates/reductions handling in SPMD constructs...
Alexey Bataev [Fri, 21 Sep 2018 14:11:41 +0000 (14:11 +0000)]
[OPENMP][NVPTX] Add support for lastprivates/reductions handling in SPMD constructs with lightweight runtime.

Summary:
We need the support for per-team shared variables to support codegen for
lastprivates/reductions. Patch adds this support by using shared memory
if the total size of the reductions/lastprivates is <= 128 bytes,
then  pre-allocated buffer in global memory if size is <= 4K bytes,or
uses malloc/free, otherwise.

Reviewers: gtbercea, kkwli0, grokos

Subscribers: guansong, openmp-commits

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

llvm-svn: 342737

5 years ago[X86][Sched] Add zero idiom sched data to the SNB model.
Clement Courbet [Fri, 21 Sep 2018 14:07:20 +0000 (14:07 +0000)]
[X86][Sched] Add zero idiom sched data to the SNB model.

Summary:
On SNB, renamer-based zeroing does not work for:
 - 16 and 8-bit GPRs[1].
 - MMX [2].
 - ANDN variants [3]

[1] echo 'sub %ax, %ax' | /tmp/llvm-exegesis -mode=uops -snippets-file=-
[2] echo 'pxor %mm0, %mm0' | /tmp/llvm-exegesis -mode=uops -snippets-file=-
[3] echo 'andnps %xmm0, %xmm0' | /tmp/llvm-exegesis -mode=uops -snippets-file=-

Reviewers: RKSimon, andreadb

Subscribers: gbedwell, craig.topper, llvm-commits

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

llvm-svn: 342736

5 years ago[AST][NFC] DeclarationName.h : add missing parentheses to silence warnings
Bruno Ricci [Fri, 21 Sep 2018 14:03:32 +0000 (14:03 +0000)]
[AST][NFC] DeclarationName.h : add missing parentheses to silence warnings

Some bots are complaining about missing parentheses in assertions added in
r342729: [AST] Various optimizations + refactoring in DeclarationName(Table)

llvm-svn: 342735

5 years agoNFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue
JF Bastien [Fri, 21 Sep 2018 13:54:09 +0000 (13:54 +0000)]
NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue

Summary:
This code was in CGDecl.cpp and really belongs in LLVM. It happened to have isBytewiseValue which served a very similar purpose but wasn't as powerful as clang's version. Remove the clang version, and augment isBytewiseValue to be as powerful so that clang does the same thing it used to.

LLVM part of this patch: D51751

Subscribers: dexonsmith, cfe-commits

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

llvm-svn: 342734

5 years agoAdd dependency on llc required by find-variable-dwo test
Tatyana Krasnukha [Fri, 21 Sep 2018 13:40:22 +0000 (13:40 +0000)]
Add dependency on llc required by find-variable-dwo test

llvm-svn: 342733

5 years agoSkip test if gcc version is less than 7.1 since it doesn't support -gcolumn-info...
Tatyana Krasnukha [Fri, 21 Sep 2018 13:20:26 +0000 (13:20 +0000)]
Skip test if gcc version is less than 7.1 since it doesn't support -gcolumn-info option

llvm-svn: 342732

5 years ago[AST][NFC] Remove a superfluous enum in ObjCMethodDeclBitfields added in r338641
Bruno Ricci [Fri, 21 Sep 2018 13:11:39 +0000 (13:11 +0000)]
[AST][NFC] Remove a superfluous enum in ObjCMethodDeclBitfields added in r338641

I originally added this enum to avoid including Basic/IdentifierTable.h
in AST/DeclBase.h. However I did not realise it is already included
transitively by AST/DeclarationName.h. Therefore remove this enum and
explicitly include Basic/IdentifierTable.h

llvm-svn: 342731

5 years ago[clangd] Remember to serialize symbol origin in YAML.
Eric Liu [Fri, 21 Sep 2018 13:04:57 +0000 (13:04 +0000)]
[clangd] Remember to serialize symbol origin in YAML.

llvm-svn: 342730

5 years ago[AST] Various optimizations + refactoring in DeclarationName(Table)
Bruno Ricci [Fri, 21 Sep 2018 12:53:22 +0000 (12:53 +0000)]
[AST] Various optimizations + refactoring in DeclarationName(Table)

Introduce the following optimizations in DeclarationName(Table):

 1. Store common kinds inline in DeclarationName instead of
    DeclarationNameExtra. Currently the kind of C++ constructor, destructor,
    conversion function and overloaded operator names is stored in
    DeclarationNameExtra. Instead store it inline in DeclarationName.
    To do this align IdentifierInfo, CXXSpecialName, DeclarationNameExtra
    and CXXOperatorIdName to 8 bytes so that we can use the lower 3 bits of
    DeclarationName::Ptr. This is already the case on 64 bits archs anyway.
    This also allow us to remove DeclarationNameExtra from CXXSpecialName
    and CXXOperatorIdName, which shave off a pointer from CXXSpecialName.

 2. Synchronize the enumerations DeclarationName::NameKind,
    DeclarationName::StoredNameKind and Selector::IdentifierInfoFlag.
    This makes DeclarationName::getNameKind much more efficient since we can
    replace the switch table by a single comparison and an addition.

 3. Put the overloaded operator names inline in DeclarationNameTable to remove
    an indirection. This increase the size of DeclarationNameTable a little
    bit but this is not important since it is only used in ASTContext, and
    never copied nor moved from. This also get rid of the last dynamic
    allocation in DeclarationNameTable.

Altogether these optimizations cut the run time of parsing all of Boost by
about 0.8%. While we are at it, do the following NFC modifications:

 1. Put the internal classes CXXSpecialName, CXXDeductionGuideNameExtra,
    CXXOperatorIdName, CXXLiteralOperatorIdName and DeclarationNameExtra
    in a namespace detail since these classes are only meant to be used by
    DeclarationName and DeclarationNameTable. Make this more explicit by making
    the members of these classes private and friending DeclarationName(Table).

 2. Make DeclarationName::getFETokenInfo a non-template since every users are
    using it to get a void *. It was supposed to be used with a type to avoid
    a subsequent static_cast.

 3. Change the internal functions DeclarationName::getAs* to castAs* since when
    we use them we already know the correct kind. This has no external impact
    since all of these are private.

Reviewed By: erichkeane, rjmccall

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

llvm-svn: 342729

5 years ago[X86][BtVer2] Fix latency and resource cycles of AVX 256-bit zero-idioms.
Andrea Di Biagio [Fri, 21 Sep 2018 12:43:07 +0000 (12:43 +0000)]
[X86][BtVer2] Fix latency and resource cycles of AVX 256-bit zero-idioms.

This patch introduces a SchedWriteVariant to describe zero-idiom VXORP(S|D)Yrr
and VANDNP(S|D)Yrr.

This is a follow-up of r342555.

On Jaguar, a VXORPSYrr is 2 macro opcodes. Only one opcode is eliminated at
register-renaming stage. The other opcode has to be executed to set the upper
half of the destination YMM.
Same for VANDNP(S|D)Yrr.

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

llvm-svn: 342728

5 years ago[test] Fix Assembler/debug-info.ll
Jonas Devlieghere [Fri, 21 Sep 2018 12:28:44 +0000 (12:28 +0000)]
[test] Fix Assembler/debug-info.ll

Update Assembler/debug-info.ll to contain discriminator.

llvm-svn: 342727

5 years ago[X86] Add scheduling tests for AVX1 256-bit zero-idioms. NFC
Andrea Di Biagio [Fri, 21 Sep 2018 12:22:14 +0000 (12:22 +0000)]
[X86] Add scheduling tests for AVX1 256-bit zero-idioms. NFC

llvm-svn: 342726

5 years agoEnsure that variant part discriminator is read by MetadataLoader
Jonas Devlieghere [Fri, 21 Sep 2018 12:03:14 +0000 (12:03 +0000)]
Ensure that variant part discriminator is read by MetadataLoader

https://reviews.llvm.org/D42082 introduced variant parts to debug info
in LLVM. Subsequent work on the Rust compiler has found a bug in that
patch; namely, there is a path in MetadataLoader that fails to restore
the discriminator.

This patch fixes the bug.

Patch by: Tom Tromey

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

llvm-svn: 342725

5 years ago[dsymutil] Suppress CoreFoundation leaks in tests.
Jonas Devlieghere [Fri, 21 Sep 2018 11:55:17 +0000 (11:55 +0000)]
[dsymutil] Suppress CoreFoundation leaks in tests.

This suppresses CoreFoundation originated leaks in the dsymutil tests.
I'm not sure if this is a false positive or not, but either way we don't
have control over it and shouldn't keep the bot red.

http://lab.llvm.org:8080/green/job/clang-stage2-cmake-RgSan/

llvm-svn: 342724

5 years ago[ADT] Hack around GCC 5.4 miscompiling Optional of enum.
Benjamin Kramer [Fri, 21 Sep 2018 11:38:35 +0000 (11:38 +0000)]
[ADT] Hack around GCC 5.4 miscompiling Optional of enum.

I'm still not 100% sure that this is not UB lingering (Optional has UB
and should use std::launder, but we don't have std::launder)

llvm-svn: 342723

5 years ago[AMDGPU] lower-switch in preISel as a workaround for legacy DA
Sameer Sahasrabuddhe [Fri, 21 Sep 2018 11:26:55 +0000 (11:26 +0000)]
[AMDGPU] lower-switch in preISel as a workaround for legacy DA

Summary:
The default target of the switch instruction may sometimes be an
"unreachable" block, when it is guaranteed that one of the cases is
always taken. The dominator tree concludes that such a switch
instruction does not have an immediate post dominator. This confuses
divergence analysis, which is unable to propagate sync dependence to
the targets of the switch instruction.

As a workaround, the AMDGPU target now invokes lower-switch as a
preISel pass. LowerSwitch is designed to handle the unreachable
default target correctly, allowing the divergence analysis to locate
the correct immediate dominator of the now-lowered switch.

Reviewers: arsenm, nhaehnle

Reviewed By: nhaehnle

Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits, simoll

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

llvm-svn: 342722

5 years ago[CodeComplete] Generate completion fix-its for C code as well
Ivan Donchevskii [Fri, 21 Sep 2018 11:23:22 +0000 (11:23 +0000)]
[CodeComplete] Generate completion fix-its for C code as well

Current completion fix-its approach does not provide OtherOpBase for C code.
But we can easily proceed in this case taking the original Base type.

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

llvm-svn: 342721

5 years ago[libfuzzer] Fix a test's run line
Jeremy Morse [Fri, 21 Sep 2018 10:50:15 +0000 (10:50 +0000)]
[libfuzzer] Fix a test's run line

r342698 removed the 'UNSUPPORTED: windows' flags from a number of fuzzer
tests, however too many lines were removed from 'fuzzer-flags.test',
including the run-line that generates the test binary, which breaks that
test for me (and the clang-x64-ninja-win7 buildbot). This patch just
re-adds that line.

llvm-svn: 342720

5 years ago [AMDGPU] Divergence driven instruction selection. Part 1.
Alexander Timofeev [Fri, 21 Sep 2018 10:31:22 +0000 (10:31 +0000)]
[AMDGPU] Divergence driven instruction selection. Part 1.

    Summary: This change is the first part of the AMDGPU target description
    change. The aim of it is the effective splitting the vector and scalar
    flows at the selection stage. Selection uses predicate functions based
    on the framework implemented earlier - https://reviews.llvm.org/D35267

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

    Reviewers: rampitec

llvm-svn: 342719

5 years ago[profile] Fix the tests for patch in https://reviews.llvm.org/D49916.
Calixte Denizet [Fri, 21 Sep 2018 09:17:14 +0000 (09:17 +0000)]
[profile] Fix the tests for patch in https://reviews.llvm.org/D49916.

Summary:
The goal of D49916 is to remove some hit counters from lines like '}'.
So as a consequence, the tests must be fixed.
FYI, after holidays, I'll add more tests.

Reviewers: marco-c, davidxl

Reviewed By: marco-c

Subscribers: delcypher, llvm-commits, #sanitizers, sylvestre.ledru

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

llvm-svn: 342718

5 years ago[CodeGen] Add to emitted DebugLoc information about coverage when it's required
Calixte Denizet [Fri, 21 Sep 2018 09:17:06 +0000 (09:17 +0000)]
[CodeGen] Add to emitted DebugLoc information about coverage when it's required

Summary:
Some lines have a hit counter where they should not have one.
Cleanup stuff is located to the last line of the body which is most of the time a '}'.
And Exception stuff is added at the beginning of a function and at the end (represented by '{' and '}').
So in such cases, the DebugLoc used in GCOVProfiling.cpp must be marked as not covered.
This patch is a followup of https://reviews.llvm.org/D49915.
Tests in projects/compiler_rt are fixed by: https://reviews.llvm.org/D49917

Reviewers: marco-c, davidxl

Reviewed By: marco-c

Subscribers: dblaikie, cfe-commits, sylvestre.ledru

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

llvm-svn: 342717

5 years agofix the scan-build urls
Sylvestre Ledru [Fri, 21 Sep 2018 09:07:58 +0000 (09:07 +0000)]
fix the scan-build urls

llvm-svn: 342716

5 years ago[XRay][clang] Propagate -fxray-instrumentation-bundle to -cc1
Dean Michael Berris [Fri, 21 Sep 2018 08:32:49 +0000 (08:32 +0000)]
[XRay][clang] Propagate -fxray-instrumentation-bundle to -cc1

Summary:
Add a test and ensure that we propagate the
-fxray-instrumentation-bundle flag from the driver invocation to the
-cc1 options.

Reviewers: mboerger, tejohnson

Subscribers: cfe-commits

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

llvm-svn: 342715

5 years ago[dwarfdump] Verify DW_AT_type is set and points to a compatible DIE.
Jonas Devlieghere [Fri, 21 Sep 2018 07:50:21 +0000 (07:50 +0000)]
[dwarfdump] Verify DW_AT_type is set and points to a compatible DIE.

This extends the verifier to catch three new errors:

  * Missing DW_AT_type attributes for DW_TAG_formal_parameter,
    DW_TAG_variable and DW_TAG_array_type.

  * Valid references for DW_AT_type pointing to a non-type tag.

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

llvm-svn: 342713

5 years ago[dwarfdump] Verify compatibility of attribute TAGs.
Jonas Devlieghere [Fri, 21 Sep 2018 07:49:29 +0000 (07:49 +0000)]
[dwarfdump] Verify compatibility of attribute TAGs.

Verify that DW_AT_specification and DW_AT_abstract_origin reference a
DIE with a compatible tag.

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

llvm-svn: 342712

5 years agoRevert "[ADT] restrict bit_cast to trivially-constructible To"
JF Bastien [Fri, 21 Sep 2018 05:34:12 +0000 (05:34 +0000)]
Revert "[ADT] restrict bit_cast to trivially-constructible To"

Of course some bots don't have std::is_trivially_constructible...

llvm-svn: 342711

5 years ago[ADT] restrict bit_cast to trivially-constructible To
JF Bastien [Fri, 21 Sep 2018 05:18:49 +0000 (05:18 +0000)]
[ADT] restrict bit_cast to trivially-constructible To

Summary: As discussed in r341853 by blaikie, the reinterpret_cast was technically an aliasing violation. Restrict our bit_cast implementation to To which are trivially-constructible (and note the existing restriction to constexpr). Once we move to C++17 we can use a version of bit_cast without these restrictions, or if we care we can SFINAE a different implementation when To isn't trivially-constructible.

Reviewers: dblaikie, rsmith

Subscribers: dexonsmith, kristina, llvm-commits

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

llvm-svn: 342710

5 years agoMerge clang's isRepeatedBytePattern with LLVM's isBytewiseValue
JF Bastien [Fri, 21 Sep 2018 05:17:42 +0000 (05:17 +0000)]
Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue

Summary:
his code was in CGDecl.cpp and really belongs in LLVM's isBytewiseValue. Teach isBytewiseValue the tricks clang's isRepeatedBytePattern had, including merging undef properly, and recursing on more types.

clang part of this patch: D51752

Subscribers: dexonsmith, llvm-commits

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

llvm-svn: 342709

5 years ago[clang-format] Do not merge short case labels if followed by a block.
Owen Pan [Fri, 21 Sep 2018 03:46:36 +0000 (03:46 +0000)]
[clang-format] Do not merge short case labels if followed by a block.

Do not allow short case labels on a single line if the label is followed by a
left brace.

Fixes PR38926.

llvm-svn: 342708

5 years ago[WebAssembly] Revert r342701, "Add WebAssembly to LLVM_ALL_TARGTS."
Dan Gohman [Fri, 21 Sep 2018 03:24:42 +0000 (03:24 +0000)]
[WebAssembly] Revert r342701, "Add WebAssembly to LLVM_ALL_TARGTS."

There is a memory leak which is detected in some of the sanitizer builds.
MCSymbolWasm contains SmallVectors for holding signature information,
however MCContext doesn't run destructors for MCSymbols, so in cases
where the SmallVectors heap-allocate, the memory is leaked.

llvm-svn: 342707

5 years ago[MCA] Remove dependency on CodeGen.
Dean Michael Berris [Fri, 21 Sep 2018 01:54:08 +0000 (01:54 +0000)]
[MCA] Remove dependency on CodeGen.

Summary:
There isn't any actual dependency - there's one #include from CodeGen
but nothing from the header is actually used.

With this change we can use the MCA library from CodeGen without
circular dependencies (e.g. for scheduling).

Reviewers: andreadb

Reviewed By: andreadb

Authored By: orodley

Subscribers: mgorny, gbedwell, llvm-commits

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

llvm-svn: 342706

5 years ago[Docs] [Support] Correct a missed reference and use up to date .inc examples.
Kristina Brooks [Fri, 21 Sep 2018 01:53:51 +0000 (01:53 +0000)]
[Docs] [Support] Correct a missed reference and use up to date .inc examples.

In my original diff I missed #include "llvm/System/Thing.h" and forgot to update a
reference to .inc files a few lines down. This patch corrects these things as
they were missed in revision 342500.

llvm-svn: 342705

5 years ago[ELF] Use the Repl point to avoid the segfault when using ICF
Petr Hosek [Fri, 21 Sep 2018 00:55:42 +0000 (00:55 +0000)]
[ELF] Use the Repl point to avoid the segfault when using ICF

This addresses PR38918.

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

llvm-svn: 342704

5 years ago[MachineCopyPropagation] Refactor copy tracking into a class. NFC
Justin Bogner [Fri, 21 Sep 2018 00:51:04 +0000 (00:51 +0000)]
[MachineCopyPropagation] Refactor copy tracking into a class. NFC

This is a bit easier to follow than handling the copy and src maps
directly in the pass, and will make upcoming changes to how this is
done easier to follow.

llvm-svn: 342703

5 years ago[llvm-objcopy/llvm-strip]: handle --version
Jordan Rupprecht [Fri, 21 Sep 2018 00:47:31 +0000 (00:47 +0000)]
[llvm-objcopy/llvm-strip]: handle --version

Summary:
Implement --version for objcopy and strip.

I think there are LLVM utilities that automatically handle this, but that doesn't seem to work with custom parsing since this binary handles both objcopy and strip, so it uses custom parsing.

This fixes PR38298

Reviewers: jhenderson, alexshap, jakehehrlich

Subscribers: llvm-commits

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

llvm-svn: 342702

5 years ago[WebAssembly] Add WebAssembly to LLVM_ALL_TARGTS.
Dan Gohman [Fri, 21 Sep 2018 00:39:57 +0000 (00:39 +0000)]
[WebAssembly] Add WebAssembly to LLVM_ALL_TARGTS.

This makes WebAssembly build by default, rather than requiring
LLVM_EXPERIMENTAL_TARGETS_TO_BUILD!

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

llvm-svn: 342701

5 years ago[MachineCopyPropagation] Minor clang-formatting. NFC
Justin Bogner [Fri, 21 Sep 2018 00:08:33 +0000 (00:08 +0000)]
[MachineCopyPropagation] Minor clang-formatting. NFC

llvm-svn: 342700

5 years ago[lldbtest] Fix self.filecheck check file lookup
Vedant Kumar [Thu, 20 Sep 2018 23:56:39 +0000 (23:56 +0000)]
[lldbtest] Fix self.filecheck check file lookup

The 'test_filename' property in TestBase changes over time, so
attempting to find a check file relative to the directory containing
'test_filename' is flaky.

Use the absolute path of the check file as that's always correct (and
simpler). This relies on the test driver changing into the test
directory, which it seems we can safely assume.

As a drive-by, make self.filecheck respect the trace (-t) option.

llvm-svn: 342699

5 years ago[fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp
Jonathan Metzman [Thu, 20 Sep 2018 23:24:48 +0000 (23:24 +0000)]
[fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp

Summary:
Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp
to get externally defined functions (eg: LLVMFuzzerInitialize,
LLVMFuzzerCustomMutator, etc) working again.

Also enable tests that depended on these functions (on windows)

Reviewers: rnk, morehouse

Reviewed By: rnk, morehouse

Subscribers: rnk, morehouse, mgorny

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

llvm-svn: 342698

5 years agoFix DenseSet::ConstIterator typedefs
David Blaikie [Thu, 20 Sep 2018 23:11:27 +0000 (23:11 +0000)]
Fix DenseSet::ConstIterator typedefs

Fix DenseSet::ConstIterator pointer/reference typedefs to be const

Patch by Brad Moody!

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

llvm-svn: 342697

5 years agoAdd the ability to register callbacks for removal and insertion of MachineInstrs
Aditya Nandakumar [Thu, 20 Sep 2018 23:01:56 +0000 (23:01 +0000)]
Add the ability to register callbacks for removal and insertion of MachineInstrs

https://reviews.llvm.org/D52127

This patch adds the ability to watch for insertions/deletions of
MachineInstructions similar to MachineRegisterInfo.

llvm-svn: 342696

5 years agoMake a member function non-member. NFC.
Rui Ueyama [Thu, 20 Sep 2018 22:58:00 +0000 (22:58 +0000)]
Make a member function non-member. NFC.

Non-member functions are generally preferred over member functions
because it is clear that non-member functions don't depend on an
internal state of an object.

llvm-svn: 342695

5 years agoRemove an unused function
David Blaikie [Thu, 20 Sep 2018 22:48:09 +0000 (22:48 +0000)]
Remove an unused function

llvm-svn: 342694

5 years agoRemove failing test.
Zachary Turner [Thu, 20 Sep 2018 22:32:51 +0000 (22:32 +0000)]
Remove failing test.

Removing on behalf of Jorge Moya.  This test is broken on
Windows due to it actually being able to resolve the path.  There
is an actual Windows-specific bug somewhere, but we already have
sufficient test coverage of this with a different test, so removing
this was the approach suggested by Jorge.

llvm-svn: 342693

5 years agobpf: check illegal usage of XADD insn return value
Yonghong Song [Thu, 20 Sep 2018 22:24:27 +0000 (22:24 +0000)]
bpf: check illegal usage of XADD insn return value

Currently, BPF has XADD (locked add) insn support and the
asm looks like:
  lock *(u32 *)(r1 + 0) += r2
  lock *(u64 *)(r1 + 0) += r2
The instruction itself does not have a return value.

At the source code level, users often use
  __sync_fetch_and_add()
which eventually translates to XADD. The return value of
__sync_fetch_and_add() is supposed to be the old value
in the xadd memory location. Since BPF::XADD insn does not
support such a return value, this patch added a PreEmit
phase to check such a usage. If such an illegal usage
pattern is detected, a fatal error will be reported like
  line 4: Invalid usage of the XADD return value
if compiled with -g, or
  Invalid usage of the XADD return value
if compiled without -g.

Signed-off-by: Yonghong Song <yhs@fb.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
llvm-svn: 342692

5 years ago[WebAssembly][NFC] Add missing tests for indirect calls
Thomas Lively [Thu, 20 Sep 2018 22:08:27 +0000 (22:08 +0000)]
[WebAssembly][NFC] Add missing tests for indirect calls

Summary: Depends on D52105.

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

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

llvm-svn: 342691

5 years ago[WebAssembly] Add v128 value type
Thomas Lively [Thu, 20 Sep 2018 22:07:18 +0000 (22:07 +0000)]
[WebAssembly] Add v128 value type

Reviewers: sbc100, aheejin, dschuff

Subscribers: jgravelle-google, sunfish, llvm-commits

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

llvm-svn: 342690

5 years ago[WebAssembly] Add V128 value type to binary format
Thomas Lively [Thu, 20 Sep 2018 22:04:44 +0000 (22:04 +0000)]
[WebAssembly] Add V128 value type to binary format

Summary: Adds the necessary support to lib/ObjectYAML and fixes SIMD
calls to allow the tests to work. Also removes some dead code that
would otherwise have to have been updated.

Reviewers: aheejin, dschuff, sbc100

Subscribers: jgravelle-google, sunfish, llvm-commits

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

llvm-svn: 342689

5 years ago[MachineOutliner][NFC] Don't add MBBs with a size < 2 to the search space
Jessica Paquette [Thu, 20 Sep 2018 21:53:25 +0000 (21:53 +0000)]
[MachineOutliner][NFC] Don't add MBBs with a size < 2 to the search space

The suffix tree won't ever consider sequences with a length less than 2.

Therefore, we really ought to not even consider them in the first place.

Also add a FIXME explaining that this should be defined in terms of the size
in B of an outlined call versus the size in B of the MBB.

llvm-svn: 342688

5 years agoRename a function. NFC.
Rui Ueyama [Thu, 20 Sep 2018 21:40:38 +0000 (21:40 +0000)]
Rename a function. NFC.

llvm-svn: 342687

5 years agoMake variable names shorter. NFC.
Rui Ueyama [Thu, 20 Sep 2018 21:29:14 +0000 (21:29 +0000)]
Make variable names shorter. NFC.

llvm-svn: 342686

5 years agoSimplify. NFC.
Rui Ueyama [Thu, 20 Sep 2018 21:18:56 +0000 (21:18 +0000)]
Simplify. NFC.

llvm-svn: 342685

5 years ago[GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC].
Xin Tong [Thu, 20 Sep 2018 21:16:16 +0000 (21:16 +0000)]
[GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC].

Summary:
AvailableExternal was not handled in isDiscardableIfUnused when isDiscardableIfUnused
was added in r158476. Till it was handled in r247044. This is a NFC.

Reviewers: pcc, tejohnson

Reviewed By: tejohnson

Subscribers: llvm-commits

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

llvm-svn: 342684

5 years ago[InstCombine] rename test file, simplify tests, regenerate full checks; NFC
Sanjay Patel [Thu, 20 Sep 2018 21:10:14 +0000 (21:10 +0000)]
[InstCombine] rename test file, simplify tests, regenerate full checks; NFC

Fast-math is irrelevant for these transforms.

llvm-svn: 342683

5 years ago[RegAllocGreedy] Fix crash in tryLocalSplit
Walter Lee [Thu, 20 Sep 2018 20:05:57 +0000 (20:05 +0000)]
[RegAllocGreedy] Fix crash in tryLocalSplit

tryLocalSplit only handles a single use block, but an interval may
have multiple use blocks.  So don't crash in that case.  This fixes
PR38795.

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

llvm-svn: 342682

5 years ago[PDB] Fix -Wcovered-switch-default warning.
Zachary Turner [Thu, 20 Sep 2018 19:57:49 +0000 (19:57 +0000)]
[PDB] Fix -Wcovered-switch-default warning.

llvm-svn: 342681

5 years ago[Hwasan] interceptor macro / extra comma removal
David Carlier [Thu, 20 Sep 2018 19:30:51 +0000 (19:30 +0000)]
[Hwasan] interceptor macro / extra comma removal

gcc being pedantic, removing the unnecessary comma.

Reviewers: eugenis, kcc

Reviewed By: eugenis

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

llvm-svn: 342680

5 years agoFix an assert in -Wquoted-include-in-framework-header
Erik Pilkington [Thu, 20 Sep 2018 19:00:03 +0000 (19:00 +0000)]
Fix an assert in -Wquoted-include-in-framework-header

Fixes rdar://43692300

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

llvm-svn: 342679

5 years ago[Bitcode] Address backwards compat bug in r342631
Vedant Kumar [Thu, 20 Sep 2018 18:59:33 +0000 (18:59 +0000)]
[Bitcode] Address backwards compat bug in r342631

r342631 expanded bitc::METADATA_LOCATION by one element. The bitcode
metadata loader was changed in a backwards-incompatible way, leading to
crashes when disassembling old bitcode:

  assertion: empty() && "PlaceholderQueue hasn't been flushed before being destroyed"
  Assertion failed: (empty() && "PlaceholderQueue hasn't been flushed before being destroyed")

This commit teaches the metadata loader to assume that the newly-added
IsImplicitCode bit is 'false' when not present in old bitcode. I've added a
bitcode compat regression test.

rdar://44645820

llvm-svn: 342678

5 years ago[MachineOutliner][NFC] Move debug info emission to createOutlinedFunction
Jessica Paquette [Thu, 20 Sep 2018 18:53:53 +0000 (18:53 +0000)]
[MachineOutliner][NFC] Move debug info emission to createOutlinedFunction

When you create an outlined function, you know everything you need to know
to decide if debug info should be created. If we emit debug info in
createOutlinedFunction, then we don't need to keep track of every IR function
we create.

llvm-svn: 342677

5 years ago[inline Cost] Don't mark functions accessing varargs as non-inlinable
Sameer AbuAsal [Thu, 20 Sep 2018 18:39:34 +0000 (18:39 +0000)]
[inline Cost] Don't mark functions accessing varargs as non-inlinable

Summary:
rL323619 marks functions that are calling va_end as not viable for
inlining. This patch reverses that since this va_end doesn't need
access to the vriadic arguments list that are saved on the stack, only
va_start does.

Reviewers: efriedma, fhahn

Reviewed By: fhahn

Subscribers: eraman, haicheng, llvm-commits

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

llvm-svn: 342675

5 years agoFix -Wtrigraphs.
Rui Ueyama [Thu, 20 Sep 2018 18:26:38 +0000 (18:26 +0000)]
Fix -Wtrigraphs.

llvm-svn: 342674

5 years agoAdd paretntheses around a C macro parameter.
Rui Ueyama [Thu, 20 Sep 2018 18:24:19 +0000 (18:24 +0000)]
Add paretntheses around a C macro parameter.

llvm-svn: 342673

5 years ago[Sema] Retain __restrict qualifiers when substituting a reference type.
Erik Pilkington [Thu, 20 Sep 2018 18:12:24 +0000 (18:12 +0000)]
[Sema] Retain __restrict qualifiers when substituting a reference type.

Fixes rdar://43760099

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

llvm-svn: 342672

5 years agoReplace boolean parameter with enum value according r342633
Tatyana Krasnukha [Thu, 20 Sep 2018 17:57:24 +0000 (17:57 +0000)]
Replace boolean parameter with enum value according r342633

llvm-svn: 342671

5 years agoFix warnings.
Zachary Turner [Thu, 20 Sep 2018 17:48:44 +0000 (17:48 +0000)]
Fix warnings.

llvm-svn: 342670

5 years ago[SelectionDAG] replace duplicated peekThroughBitcast helper functions; NFCI
Sanjay Patel [Thu, 20 Sep 2018 17:34:08 +0000 (17:34 +0000)]
[SelectionDAG] replace duplicated peekThroughBitcast helper functions; NFCI

x86 had 2 versions of peekThroughBitcast. DAGCombiner had 1. Plus, it had a 1-off implementation for the one-use variant.
Move the x86 versions of the code to SelectionDAG, so we don't have different copies of the code.
No functional change intended.

I'm putting this next to isBitwiseNot() because I am planning to use it in there. Another option is next to the
helpers in the ISD namespace (eg, ISD::isConstantSplatVector()). But if there's no good reason for those to be
there, I'd prefer to pull other helpers over to SelectionDAG in follow-up steps.

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

llvm-svn: 342669

5 years agoAdd testcases for r342667.
Eric Christopher [Thu, 20 Sep 2018 17:22:43 +0000 (17:22 +0000)]
Add testcases for r342667.

llvm-svn: 342668

5 years agor342177 introduced a hint in cases where an #included file is not found. It tries...
Eric Christopher [Thu, 20 Sep 2018 17:21:56 +0000 (17:21 +0000)]
r342177 introduced a hint in cases where an #included file is not found. It tries to find a suggestion by removing leading or trailing non-alphanumeric characters and checking if a matching file exists, then it reports an error like:

include-likely-typo.c:3:10: error: '<empty_file_to_include.h>' file not found, did you mean 'empty_file_to_include.h'?
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
         "empty_file_to_include.h"
1 error generated.
However, if a hint is not found, the error message will show only the trimmed name we use to look for a hint, so:

will result in:

include-leading-nonalpha-no-suggest.c:3:10: fatal error: 'non_existing_file_to_include.h' file not found
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
where the name reported after "fatal error:" doesn't match what the user wrote.

Patch by Jorge Gorbe!

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

This change reports the original file name instead of the trimmed one when a suggestion is not found.

llvm-svn: 342667

5 years ago[OPENMP] Fix spelling of getLoopCounter (NFC)
Mike Rice [Thu, 20 Sep 2018 17:19:41 +0000 (17:19 +0000)]
[OPENMP] Fix spelling of getLoopCounter (NFC)

llvm-svn: 342666

5 years ago[InstCombine] add tests for vector concat with binop (PR33026); NFC
Sanjay Patel [Thu, 20 Sep 2018 17:10:38 +0000 (17:10 +0000)]
[InstCombine] add tests for vector concat with binop (PR33026); NFC

llvm-svn: 342665

5 years ago[New PM] Introducing PassInstrumentation framework
Fedor Sergeev [Thu, 20 Sep 2018 17:08:45 +0000 (17:08 +0000)]
[New PM] Introducing PassInstrumentation framework

Pass Execution Instrumentation interface enables customizable instrumentation
of pass execution, as per "RFC: Pass Execution Instrumentation interface"
posted 06/07/2018 on llvm-dev@

The intent is to provide a common machinery to implement all
the pass-execution-debugging features like print-before/after,
opt-bisect, time-passes etc.

Here we get a basic implementation consisting of:
* PassInstrumentationCallbacks class that handles registration of callbacks
  and access to them.

* PassInstrumentation class that handles instrumentation-point interfaces
  that call into PassInstrumentationCallbacks.

* Callbacks accept StringRef which is just a name of the Pass right now.
  There were some ideas to pass an opaque wrapper for the pointer to pass instance,
  however it appears that pointer does not actually identify the instance
  (adaptors and managers might have the same address with the pass they govern).
  Hence it was decided to go simple for now and then later decide on what the proper
  mental model of identifying a "pass in a phase of pipeline" is.

* Callbacks accept llvm::Any serving as a wrapper for const IRUnit*, to remove direct dependencies
  on different IRUnits (e.g. Analyses).

* PassInstrumentationAnalysis analysis is explicitly requested from PassManager through
  usual AnalysisManager::getResult. All pass managers were updated to run that
  to get PassInstrumentation object for instrumentation calls.

* Using tuples/index_sequence getAnalysisResult helper to extract generic AnalysisManager's extra
  args out of a generic PassManager's extra args. This is the only way I was able to explicitly
  run getResult for PassInstrumentationAnalysis out of a generic code like PassManager::run or
  RepeatedPass::run.
  TODO: Upon lengthy discussions we agreed to accept this as an initial implementation
  and then get rid of getAnalysisResult by improving RepeatedPass implementation.

* PassBuilder takes PassInstrumentationCallbacks object to pass it further into
  PassInstrumentationAnalysis. Callbacks registration should be performed directly
  through PassInstrumentationCallbacks.

* new-pm tests updated to account for PassInstrumentationAnalysis being run

* Added PassInstrumentation tests to PassBuilderCallbacks unit tests.
  Other unit tests updated with registration of the now-required PassInstrumentationAnalysis.

  Made getName helper to return std::string (instead of StringRef initially) to fix
  asan builtbot failures on CGSCC tests.

Reviewers: chandlerc, philip.pfaffe
Differential Revision: https://reviews.llvm.org/D47858

llvm-svn: 342664

5 years agoRefactor FindVariable() core functionality into StackFrame out of SBFrame
Shafik Yaghmour [Thu, 20 Sep 2018 17:06:34 +0000 (17:06 +0000)]
Refactor FindVariable() core functionality into StackFrame out of SBFrame

rdar://problem/14365983

Patch by Shafik Yaghmour

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

llvm-svn: 342663

5 years ago[ELF][HEXAGON] Set DefaultMaxPageSize to 64K
Sid Manning [Thu, 20 Sep 2018 16:32:19 +0000 (16:32 +0000)]
[ELF][HEXAGON] Set DefaultMaxPageSize to 64K

Update testcase to reflect the change.

llvm-svn: 342662

5 years ago[profile] Fix tests in compiler-rt for patch in gcov (https://reviews.llvm.org/D49659)
Calixte Denizet [Thu, 20 Sep 2018 16:21:09 +0000 (16:21 +0000)]
[profile] Fix tests in compiler-rt for patch in gcov (https://reviews.llvm.org/D49659)

Summary: Some tests are broken if patch in D49659 is accepted so this patch fixes them.

Reviewers: marco-c

Reviewed By: marco-c

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

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

llvm-svn: 342661