platform/upstream/llvm.git
5 years agoAdd the `objc_class_stub` attribute.
John McCall [Thu, 30 May 2019 04:09:01 +0000 (04:09 +0000)]
Add the `objc_class_stub` attribute.

Swift requires certain classes to be not just initialized lazily on first
use, but actually allocated lazily using information that is only available
at runtime.  This is incompatible with ObjC class initialization, or at least
not efficiently compatible, because there is no meaningful class symbol
that can be put in a class-ref variable at load time.  This leaves ObjC
code unable to access such classes, which is undesirable.

objc_class_stub says that class references should be resolved by calling
a new ObjC runtime function with a pointer to a new "class stub" structure.
Non-ObjC compilers (like Swift) can simply emit this structure when ObjC
interop is required for a class that cannot be statically allocated,
then apply this attribute to the `@interface` in the generated ObjC header
for the class.

This attribute can be thought of as a generalization of the existing
`objc_runtime_visible` attribute which permits more efficient class
resolution as well as supporting the additon of categories to the class.
Subclassing these classes from ObjC is currently not allowed.

Patch by Slava Pestov!

llvm-svn: 362054

5 years ago[X86] Add ENQCMD instructions
Pengfei Wang [Thu, 30 May 2019 03:59:16 +0000 (03:59 +0000)]
[X86] Add ENQCMD instructions

For more details about these instructions, please refer to the latest
ISE document:
https://software.intel.com/en-us/download/intel-architecture-instruction-set-extensions-programming-reference.

Patch by Tianqing Wang (tianqing)

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

llvm-svn: 362053

5 years ago[Driver] Render target options (e.g. -fuse-init-array) for -fembed-bitcode
Fangrui Song [Thu, 30 May 2019 02:30:04 +0000 (02:30 +0000)]
[Driver] Render target options (e.g. -fuse-init-array) for -fembed-bitcode

Modern ELF platforms use -fuse-init-array to emit .init_array instead of
.ctors .  ld.bfd and gold --ctors-in-init-array merge .init_array and
.ctors into .init_array but lld doesn't do that.

If crtbegin*.o crtend*.o don't provide .ctors/.dtors, such .ctors in
user object files can lead to crash (see PR42002. The first and the last
elements in .ctors/.dtors are ignored - they are traditionally provided
by crtbegin*.o crtend*.o).

Call addClangTargetOptions() to ensure -fuse-init-array is rendered on
modern ELF platforms. On Hexagon, this renders -target-feature
+reserved-r19 for -ffixed-r19.

Reviewed By: compnerd

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

llvm-svn: 362052

5 years ago[PowerPC] Set the default PLT mode on musl to Secure PLT
Fangrui Song [Thu, 30 May 2019 02:13:15 +0000 (02:13 +0000)]
[PowerPC] Set the default PLT mode on musl to Secure PLT

The musl libc only supports Secure PLT.

Patch by A. Wilcox!

Reviewed By: jhibbits

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

llvm-svn: 362051

5 years ago[Driver] -static-pie: add -z text
Fangrui Song [Thu, 30 May 2019 01:55:43 +0000 (01:55 +0000)]
[Driver] -static-pie: add -z text

This matches gcc -static-pie. The intention is to prevent dynamic
relocations in read-only segments.

In ld.bfd and gold, -z notext is the default. If text relocations are needed:

* -z notext: allow and emit DF_TEXTREL.
  DF_TEXTREL is not emitted if there is no text relocation.
* -z text: error

In lld, -z text is the default (this change is a no-op).

* -z text: error on text relocations
* -z notext: allow text relocations, and emit DF_TEXTREL no matter whether
  text relocations exist.

Reviewed By: sivachandra

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

llvm-svn: 362050

5 years agoDWARFDebugInfoEntry: delete unused Extract() and rename FastExtract() to Extract()
Fangrui Song [Thu, 30 May 2019 01:51:16 +0000 (01:51 +0000)]
DWARFDebugInfoEntry: delete unused Extract() and rename FastExtract() to Extract()

The function Extract() is almost a duplicate of FastExtract() but is not used.
Delete it and rename FastExtract() to Extract().

Reviewed By: JDevlieghere

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

llvm-svn: 362049

5 years ago[runtimes] Support ELF dependent libraries feature
Petr Hosek [Thu, 30 May 2019 01:34:41 +0000 (01:34 +0000)]
[runtimes] Support ELF dependent libraries feature

As of r360984, LLD supports dependent libraries feature for ELF.
libunwind, libc++abi and libc++ have library dependencies: libdl librt
and libpthread, which means that when libunwind and libc++ are being
statically linked (using -static-libstdc++ flag), user has to manually
specify -ldl -lpthread which is onerous.

This change includes the lib pragma to specify the library dependencies
directly in the source that uses those libraries. This doesn't make any
difference when using linkers that don't support dependent libraries.
However, when using LLD that has dependent libraries feature, users no
longer have to manually specifying library dependencies when using
static linking, linker will pick the library automatically.

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

llvm-svn: 362048

5 years ago[CMake] Set LLVM_PATH in the runtimes build
Petr Hosek [Thu, 30 May 2019 01:24:31 +0000 (01:24 +0000)]
[CMake] Set LLVM_PATH in the runtimes build

This avoids using llvm-config for inferring various paths within the
runtimes build. We also set LLVM_INCLUDE_DIR variable that's used by
these builds and move assignment of LLVM_BINARY_DIR and LLVM_LIBRARY_DIR
to the same location for consistency.

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

llvm-svn: 362047

5 years ago[BitstreamWriter][NFC] Remove obsolete comment.
Jan Korous [Thu, 30 May 2019 01:08:38 +0000 (01:08 +0000)]
[BitstreamWriter][NFC] Remove obsolete comment.

The Abbv parameter was just a raw pointer when the comment was written.

llvm-svn: 362046

5 years agoclang support gnu asm goto.
Jennifer Yu [Thu, 30 May 2019 01:05:46 +0000 (01:05 +0000)]
clang support gnu asm goto.
Syntax:
  asm [volatile] goto ( AssemblerTemplate
                      :
                      : InputOperands
                      : Clobbers
                      : GotoLabels)

https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html

New llvm IR is "callbr" for inline asm goto instead "call" for inline asm
For:
asm goto("testl %0, %0; jne %l1;" :: "r"(cond)::label_true, loop);
IR:
callbr void asm sideeffect "testl $0, $0; jne ${1:l};", "r,X,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@foo, %label_true), i8* blockaddress(@foo, %loop)) #1
          to label %asm.fallthrough [label %label_true, label %loop], !srcloc !3

asm.fallthrough:

Compiler need to generate:
1> a dummy constarint 'X' for each label.
2> an unique fallthrough label for each asm goto stmt " asm.fallthrough%number".

Diagnostic
1> duplicate asm operand name are used in output, input and label.
2> goto out of scope.

llvm-svn: 362045

5 years ago[crashlog] Add a missing call to decode.
Davide Italiano [Thu, 30 May 2019 00:35:43 +0000 (00:35 +0000)]
[crashlog] Add a missing call to decode.

<rdar://problem/51139357>

llvm-svn: 362044

5 years ago[Commands] Remove commented out code
Alex Langford [Wed, 29 May 2019 23:25:44 +0000 (23:25 +0000)]
[Commands] Remove commented out code

llvm-svn: 362042

5 years ago[llvm-objcopy][MachO] Print an error message on use of unsupported options
Seiya Nuta [Wed, 29 May 2019 22:21:12 +0000 (22:21 +0000)]
[llvm-objcopy][MachO] Print an error message on use of unsupported options

Summary:
It is better to print an error message instead of silently ignoring unsupported options.

As mentioned in https://reviews.llvm.org/D57045, this is not the best solution and we should print which flag is not supported at some time.

Reviewers: alexshap, rupprecht, jhenderson, jakehehrlich

Reviewed By: alexshap, rupprecht, jakehehrlich

Subscribers: jakehehrlich, llvm-commits

Tags: #llvm

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

llvm-svn: 362040

5 years agoMove the pybool logic from CMake to Python for simplicity
Reid Kleckner [Wed, 29 May 2019 21:45:43 +0000 (21:45 +0000)]
Move the pybool logic from CMake to Python for simplicity

This is how similar booleans are handled, and seems to work for me
locally.

llvm-svn: 362039

5 years agoCodeView - add static data members to global variable debug info.
Amy Huang [Wed, 29 May 2019 21:45:34 +0000 (21:45 +0000)]
CodeView - add static data members to global variable debug info.

Summary:
Add static data members to IR debug info's list of global variables
so that they are emitted as S_CONSTANT records.

Related to https://bugs.llvm.org/show_bug.cgi?id=41615.

Reviewers: rnk

Subscribers: aprantl, cfe-commits, llvm-commits, thakis

Tags: #clang, #llvm

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

llvm-svn: 362038

5 years ago[llvm-pdbutil] Dump inline call site line table annotations
Reid Kleckner [Wed, 29 May 2019 21:26:25 +0000 (21:26 +0000)]
[llvm-pdbutil] Dump inline call site line table annotations

This ports and improves on some existing llvm-readobj -codeview dumping
functionality that llvm-pdbutil lacked.

Helpful for comparing inline line tables between MSVC and clang.

llvm-svn: 362037

5 years agoUse correct format specifier to silence -Wformat warning.
Richard Trieu [Wed, 29 May 2019 21:25:15 +0000 (21:25 +0000)]
Use correct format specifier to silence -Wformat warning.

llvm-svn: 362035

5 years ago[ObjC] Fix encoding of ObjC pointer types that are pointers to typedefs
Akira Hatanaka [Wed, 29 May 2019 21:23:30 +0000 (21:23 +0000)]
[ObjC] Fix encoding of ObjC pointer types that are pointers to typedefs

clang was encoding pointers to typedefs as if they were pointers to
structs because that is apparently what gcc is doing.

For example:

```
@class Class1;

typedef NSArray<Class1 *> MyArray;

void foo1(void) {
  const char *s0 = @encode(MyArray *); // "^{NSArray=#}"
  const char *s1 = @encode(NSArray<Class1 *> *); // "@"
}
```

This commit removes the code that was there to make clang compatible
with gcc and make clang emit the correct encoding for ObjC pointers,
which is "@".

rdar://problem/50563529

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

llvm-svn: 362034

5 years agoFix Xcode project lldb unit test target so it compiles.
Greg Clayton [Wed, 29 May 2019 21:22:54 +0000 (21:22 +0000)]
Fix Xcode project lldb unit test target so it compiles.

llvm-svn: 362033

5 years ago[Target] Sink some asserts into Process::GetLanguageRuntime
Alex Langford [Wed, 29 May 2019 21:07:53 +0000 (21:07 +0000)]
[Target] Sink some asserts into Process::GetLanguageRuntime

llvm-svn: 362032

5 years agoLoopVersioningLICM: Respect convergent and noduplicate
Matt Arsenault [Wed, 29 May 2019 20:47:59 +0000 (20:47 +0000)]
LoopVersioningLICM: Respect convergent and noduplicate

llvm-svn: 362031

5 years ago[analyzer] Remove EndPath function as it is dead code
Csaba Dabis [Wed, 29 May 2019 20:47:27 +0000 (20:47 +0000)]
[analyzer] Remove EndPath function as it is dead code

Summary: -

Reviewers: george.karpenkov

Reviewed By: george.karpenkov

Subscribers: baloghadamsoftware, cfe-commits, xazax.hun, szepet, a.sidorin,
             mikhail.ramalho, Szelethus, donat.nagy, dkrupp

Tags: #clang

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

llvm-svn: 362030

5 years agoRevert "IR: add optional type to 'byval' function parameters"
Tim Northover [Wed, 29 May 2019 20:46:38 +0000 (20:46 +0000)]
Revert "IR: add optional type to 'byval' function parameters"

The IRLinker doesn't delve into the new byval attribute when mapping types, and
this breaks LTO.

llvm-svn: 362029

5 years agoRevert "LLVM IR: update Clang tests for byval being a typed attribute."
Tim Northover [Wed, 29 May 2019 20:45:32 +0000 (20:45 +0000)]
Revert "LLVM IR: update Clang tests for byval being a typed attribute."

The underlying LLVM change couldn't cope with llvm-link and broke LTO builds.

llvm-svn: 362028

5 years ago[analyzer] ConditionBRVisitor: Boolean support
Csaba Dabis [Wed, 29 May 2019 20:34:29 +0000 (20:34 +0000)]
[analyzer] ConditionBRVisitor: Boolean support

Summary: -

Reviewers: NoQ, george.karpenkov

Reviewed By: NoQ, george.karpenkov

Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin,
             mikhail.ramalho, Szelethus, donat.nagy, dkrupp

Tags: #clang

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

llvm-svn: 362027

5 years ago[analyzer] ConditionBRVisitor: MemberExpr support
Csaba Dabis [Wed, 29 May 2019 20:29:02 +0000 (20:29 +0000)]
[analyzer] ConditionBRVisitor: MemberExpr support

Summary: -

Reviewers: NoQ, george.karpenkov

Reviewed By: NoQ

Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin,
             mikhail.ramalho, Szelethus, donat.nagy, dkrupp

Tags: #clang

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

llvm-svn: 362026

5 years ago[analyzer] ConditionBRVisitor: Remove duplicated code
Csaba Dabis [Wed, 29 May 2019 20:18:07 +0000 (20:18 +0000)]
[analyzer] ConditionBRVisitor: Remove duplicated code

Summary: -

Reviewers: NoQ, george.karpenkov

Reviewed By: NoQ

Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin,
             mikhail.ramalho, Szelethus, donat.nagy, dkrupp

Tags: #clang

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

llvm-svn: 362025

5 years ago[analyzer] ConditionBRVisitor: Test 'add-pop-up-notes=false'
Csaba Dabis [Wed, 29 May 2019 20:13:29 +0000 (20:13 +0000)]
[analyzer] ConditionBRVisitor: Test 'add-pop-up-notes=false'

Summary: -

Reviewers: NoQ, alexfh

Reviewed By: alexfh

Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin,
             mikhail.ramalho, Szelethus, donat.nagy, dkrupp

Tags: #clang

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

llvm-svn: 362023

5 years ago[LoopIdiomRecognize][NFC] Use DEBUG_TYPE, add LLVM_DEBUG() to runOnNoncountableLoop()
Roman Lebedev [Wed, 29 May 2019 20:11:53 +0000 (20:11 +0000)]
[LoopIdiomRecognize][NFC] Use DEBUG_TYPE, add LLVM_DEBUG() to runOnNoncountableLoop()

Split off from D61144

llvm-svn: 362022

5 years ago[ARC] Cleanup ARCAsmPrinter.
Pete Couperus [Wed, 29 May 2019 20:07:35 +0000 (20:07 +0000)]
[ARC] Cleanup ARCAsmPrinter.

Summary:
Remove unused getTargetStreamer.
Remove unused headers.

Reviewers: dantrushin

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

llvm-svn: 362021

5 years ago[analyzer] ConditionBRVisitor: Enhance to write out more information
Csaba Dabis [Wed, 29 May 2019 20:06:09 +0000 (20:06 +0000)]
[analyzer] ConditionBRVisitor: Enhance to write out more information

Summary:
Add extra messages to the bug report to inform the user why the analyzer
`Taking true/false branch`.

Reviewers: NoQ, george.karpenkov

Reviewed By: NoQ

Subscribers: gerazo, gsd, dkrupp, whisperity, baloghadamsoftware, xazax.hun,
             eraman, szepet, a.sidorin, mikhail.ramalho, Szelethus,
             donat.nagy, cfe-commits

Tags: #clang

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

llvm-svn: 362020

5 years agoUpdateTestChecks: Lanai triple support
Roman Lebedev [Wed, 29 May 2019 20:03:00 +0000 (20:03 +0000)]
UpdateTestChecks: Lanai triple support

Summary:
The assembly structure most resembles the SPARC pattern:
```
        .globl  f6                      ! -- Begin function f6
        .p2align        2
        .type   f6,@function
f6:                                     ! @f6
        .cfi_startproc
! %bb.0:
        st      %fp, [--%sp]
<...>
        ld      -8[%fp], %fp
.Lfunc_end0:
        .size   f6, .Lfunc_end0-f6
        .cfi_endproc
                                        ! -- End function
```
Test being affected by upcoming patch, so regenerate it.

Reviewers: RKSimon, jpienaar

Reviewed By: RKSimon

Subscribers: jyknight, fedor.sergeev, llvm-commits

Tags: #llvm

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

llvm-svn: 362019

5 years agogn build: Make it possible to build with coverage information
Nico Weber [Wed, 29 May 2019 20:00:36 +0000 (20:00 +0000)]
gn build: Make it possible to build with coverage information

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

llvm-svn: 362018

5 years ago[DAGCombiner] Replace gathers with a zero mask with the passthru value
Benjamin Kramer [Wed, 29 May 2019 19:24:19 +0000 (19:24 +0000)]
[DAGCombiner] Replace gathers with a zero mask with the passthru value

These can be created by the legalizer when splitting a larger gather.

See https://llvm.org/PR42055 for a motivating example.

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

llvm-svn: 362015

5 years ago[analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece
Csaba Dabis [Wed, 29 May 2019 19:21:59 +0000 (19:21 +0000)]
[analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece

Summary:
This new piece is similar to our macro expansion printing in HTML reports:
On mouse-hover event it pops up on variables. Similar to note pieces it
supports `plist` diagnostics as well.

It is optional, on by default: `add-pop-up-notes=true`.

Extra: In HTML reports `background-color: LemonChiffon` was too light,
changed to `PaleGoldenRod`.

Reviewers: NoQ, alexfh

Reviewed By: NoQ

Subscribers: cfe-commits, gerazo, gsd, george.karpenkov, alexfh, xazax.hun,
             baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho,
             Szelethus, donat.nagy, dkrupp

Tags: #clang

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

llvm-svn: 362014

5 years agoLLVM IR: update Clang tests for byval being a typed attribute.
Tim Northover [Wed, 29 May 2019 19:13:29 +0000 (19:13 +0000)]
LLVM IR: update Clang tests for byval being a typed attribute.

Since byval is now a typed attribute it gets sorted slightly differently by
LLVM when the order of attributes is being canonicalized. This updates the few
Clang tests that depend on the old order.

llvm-svn: 362013

5 years agoIR: add optional type to 'byval' function parameters
Tim Northover [Wed, 29 May 2019 19:12:48 +0000 (19:12 +0000)]
IR: add optional type to 'byval' function parameters

When we switch to opaque pointer types we will need some way to describe
how many bytes a 'byval' parameter should occupy on the stack. This adds
a (for now) optional extra type parameter.

If present, the type must match the pointee type of the argument.

Note to front-end maintainers: if this causes test failures, it's probably
because the "byval" attribute is printed after attributes without any parameter
after this change.

llvm-svn: 362012

5 years ago[analyzer] print() JSONify chain: Generic stmt_id
Csaba Dabis [Wed, 29 May 2019 18:58:41 +0000 (18:58 +0000)]
[analyzer] print() JSONify chain: Generic stmt_id

Summary: Some environment create less statements so make them generic.
llvm-svn: 362011

5 years agomac: Make ubsan test config look more like asan test config
Nico Weber [Wed, 29 May 2019 18:54:28 +0000 (18:54 +0000)]
mac: Make ubsan test config look more like asan test config

In particular, don't call get_target_flags_for_arch() since that
will cause an error in some situations:

If DARWIN_iossim_ARCHS=i386;x86_64, DARWIN_osx_ARCHS=x86_64, and
DARWIN_iossym_SYSROOT isn't set (due to the simulator sysroot not being
available), then config-ix.cmake won't add i386 to COMPILER_RT_SUPPORTED_ARCH
but ubsan's test/CMakeLists.txt would call get_target_flags_for_arch()
with i386, which would then run into the error in
get_target_flags_for_arch().

Having these conditions isn't ideal. The background here is that we
configure our mac-hosted trunk bots all the same (so they all have the
same DARWIN_*_archs, and we don't easily know if a mac host bot is
targeting mac or ios at the place where we call cmake), but only the
ios-targeting bots have ios sysroots available.

This will hopefully unbreak that use case without impacting anything
else -- and it makes ubsan and asan test setup more alike.

llvm-svn: 362010

5 years ago[analyzer] SATestBuild.py: Use driver for analyzing single-file tests.
Artem Dergachev [Wed, 29 May 2019 18:49:31 +0000 (18:49 +0000)]
[analyzer] SATestBuild.py: Use driver for analyzing single-file tests.

Don't bother coming up with a -cc1 run-line ourselves.

This, in particular, gets rid of a macOS-specific code path.

llvm-svn: 362009

5 years ago[analyzer] print() JSONify: SVal implementation
Csaba Dabis [Wed, 29 May 2019 18:38:52 +0000 (18:38 +0000)]
[analyzer] print() JSONify: SVal implementation

Summary: -

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho,
             Szelethus, donat.nagy, dkrupp

Tags: #clang

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

llvm-svn: 362008

5 years ago[CMake] [Runtimes] Set *_STANDALONE_BUILD
Chris Bieneman [Wed, 29 May 2019 18:37:49 +0000 (18:37 +0000)]
[CMake] [Runtimes] Set *_STANDALONE_BUILD

Summary:
The runtimes use `*_STANDALONE_BUILD=OFF` to signify that clang is an in-tree target. This is not the case with the runtime builds, so we really need this set to `ON`.

In order to resolve the issues phosek was having with checks, we should use checks that don't link. We can use compiler-rt's `try_compile_only` as a basis for that.

This patch is *required* to be able to run the runtime libraries check-* targets.

Reviewers: smeenai, phosek, compnerd

Reviewed By: phosek

Subscribers: mgorny, llvm-commits

Tags: #llvm

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

llvm-svn: 362007

5 years ago[InstCombine] Optimize always overflowing signed saturating add/sub
Nikita Popov [Wed, 29 May 2019 18:37:13 +0000 (18:37 +0000)]
[InstCombine] Optimize always overflowing signed saturating add/sub

Based on the overflow direction information added in D62463, we can
now fold always overflowing signed saturating add/sub to signed min/max.

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

llvm-svn: 362006

5 years agoFix an unused-variable error.
Haojian Wu [Wed, 29 May 2019 18:36:54 +0000 (18:36 +0000)]
Fix an unused-variable error.

llvm-svn: 362005

5 years ago[WebAssembly] Support VPtr sanitizer for Emscripten
Thomas Lively [Wed, 29 May 2019 18:31:50 +0000 (18:31 +0000)]
[WebAssembly] Support VPtr sanitizer for Emscripten

Summary:
After https://github.com/emscripten-core/emscripten/pull/8651, Emscripten
supports the full UBSan runtime. This includes the VPtr sanitizer.

This diff allows clang to generate code that uses the VPtr sanitizer for
Emscripten.

Patch by Guanzhong Chen

Reviewers: tlively, aheejin

Reviewed By: aheejin

Subscribers: dschuff, sbc100, jgravelle-google, sunfish, cfe-commits

Tags: #clang

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

llvm-svn: 362004

5 years ago[analyzer] print() JSONify: CFG implementation
Csaba Dabis [Wed, 29 May 2019 18:29:31 +0000 (18:29 +0000)]
[analyzer] print() JSONify: CFG implementation

Summary: -

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho,
             donat.nagy, dkrupp

Tags: #clang

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

llvm-svn: 362003

5 years ago[analyzer] print() JSONify: Decl revision
Csaba Dabis [Wed, 29 May 2019 18:21:14 +0000 (18:21 +0000)]
[analyzer] print() JSONify: Decl revision

Summary: -

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho,
             donat.nagy, dkrupp

Tags: #clang

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

llvm-svn: 362002

5 years agoAMDGPU: Return address lowering
Aakanksha Patil [Wed, 29 May 2019 18:20:11 +0000 (18:20 +0000)]
AMDGPU: Return address lowering

The patch computes the return address for the current function.

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

llvm-svn: 362001

5 years ago[analyzer][AST] print() JSONify: Stmt implementation
Csaba Dabis [Wed, 29 May 2019 18:17:18 +0000 (18:17 +0000)]
[analyzer][AST] print() JSONify: Stmt implementation

Summary:
This patch also adds a function called `JsonFormat()` which:
- Flattens the string so removes the new-lines.
- Escapes double quotes.

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho,
             donat.nagy, dkrupp

Tags: #clang

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

llvm-svn: 362000

5 years ago[Target] Introduce Process::GetLanguageRuntimes
Alex Langford [Wed, 29 May 2019 18:08:22 +0000 (18:08 +0000)]
[Target] Introduce Process::GetLanguageRuntimes

Summary:
Currently there's not really a good way to iterate over the language runtimes a
process has. This is sometimes desirable (as seen in my change to Thread).
Additionally, there's not really a good reason to iterate over every available
language, but rather only over languages for which we have a plugin loaded.

Reviewers: JDevlieghere, davide, jingham

Subscribers: lldb-commits

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

llvm-svn: 361999

5 years agolit: modernize the lit configuration for the lit tests
Stella Stamenova [Wed, 29 May 2019 18:07:39 +0000 (18:07 +0000)]
lit: modernize the lit configuration for the lit tests

Summary: This also normalizes the config feature that represents the windows platform to "system-windows" as opposed to having both "windows" and "system-windows"

Reviewers: asmith, probinson

Subscribers: delcypher, llvm-commits

Tags: #llvm

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

llvm-svn: 361998

5 years ago[analyzer] print() JSONify: getNodeLabel implementation
Csaba Dabis [Wed, 29 May 2019 18:05:53 +0000 (18:05 +0000)]
[analyzer] print() JSONify: getNodeLabel implementation

Summary: This patch also rewrites the ProgramPoint printing.

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho,
             donat.nagy, dkrupp

Tags: #clang

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

llvm-svn: 361997

5 years ago[Index] Compute correct symbol kind for variable templates
Ilya Biryukov [Wed, 29 May 2019 17:49:30 +0000 (17:49 +0000)]
[Index] Compute correct symbol kind for variable templates

Summary:
The index library itself seems to never pass variable templates as
input, however clangd does.

Reviewers: kadircet

Reviewed By: kadircet

Subscribers: jkorous, arphaman, cfe-commits

Tags: #clang

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

llvm-svn: 361996

5 years agoFixed source header [NFC]
Greg Clayton [Wed, 29 May 2019 17:25:03 +0000 (17:25 +0000)]
Fixed source header [NFC]

llvm-svn: 361995

5 years ago[CUDA][HIP] Skip setting `externally_initialized` for static device variables.
Michael Liao [Wed, 29 May 2019 17:23:27 +0000 (17:23 +0000)]
[CUDA][HIP] Skip setting `externally_initialized` for static device variables.

Summary:
- By declaring device variables as `static`, we assume they won't be
  addressable from the host side. Thus, no `externally_initialized` is
  required.

Reviewers: yaxunl

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 361994

5 years agoYet another attempt to fix buildbot after r361949
Eugene Leviant [Wed, 29 May 2019 17:14:48 +0000 (17:14 +0000)]
Yet another attempt to fix buildbot after r361949

Looks like %p format specifier of createStringError behaves
differently on different platforms

llvm-svn: 361993

5 years agoAdd curley brackets to case statement that declares a variable.
Erich Keane [Wed, 29 May 2019 17:04:48 +0000 (17:04 +0000)]
Add curley brackets to case statement that declares a variable.

llvm-svn: 361992

5 years ago[X86] Fix machineverifier error on avx512f-256-set0.mir
Craig Topper [Wed, 29 May 2019 17:02:27 +0000 (17:02 +0000)]
[X86] Fix machineverifier error on avx512f-256-set0.mir

Previously the pass ran the entire llc pipeline which caused the IR to be recodegened.

This commit restricts it to just running the postrapseudos pass and checking the results of that instead of the final assembly.

llvm-svn: 361991

5 years agoCallSiteSplitting: Respect convergent and noduplicate
Matt Arsenault [Wed, 29 May 2019 16:59:48 +0000 (16:59 +0000)]
CallSiteSplitting: Respect convergent and noduplicate

llvm-svn: 361990

5 years ago[ThinLTO] Use original alias visibility when importing
Teresa Johnson [Wed, 29 May 2019 16:50:46 +0000 (16:50 +0000)]
[ThinLTO] Use original alias visibility when importing

Summary:
When we import an alias, we do so by making a clone of the aliasee. Just
as this clone uses the original alias name and linkage, it should also
use the same visibility (not the aliasee's visibility). Otherwise,
linker behavior is affected (e.g. if the aliasee was hidden, but the
alias is not, the resulting imported clone should not be hidden,
otherwise the linker will make the final symbol hidden which is
incorrect).

Reviewers: wmi

Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, llvm-commits

Tags: #llvm

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

llvm-svn: 361989

5 years ago[NFC][InstCombine] Add a unary FNeg test to fsub.ll.
Cameron McInally [Wed, 29 May 2019 16:50:14 +0000 (16:50 +0000)]
[NFC][InstCombine] Add a unary FNeg test to fsub.ll.

llvm-svn: 361988

5 years agoAdd more information to the log timer dump
Antonio Afonso [Wed, 29 May 2019 16:31:32 +0000 (16:31 +0000)]
Add more information to the log timer dump

Summary:
The `log timer dump` is showing the time of the function itself minus any function that is called from this one that also happens to be timed. However, this is really not obvious and it also makes it hard to understand the time spent in total and also which children are actually taking the time.
To get a better reading of the timer dump I added the total, children (which I named child) and also the hit count. I used these timers to figure out a performance issue and only after adding this things were more clear to me.

It looks like this:
```
(lldb) log timer dump
35.447713617 sec (total: 35.449s; child: 0.001s; count: 1374) for void SymbolFileDWARF::Index()
29.717921481 sec (total: 29.718s; child: 0.000s; count: 8230500) for const lldb_private::ConstString &lldb_private::Mangled::GetDemangledName(lldb::LanguageType) const
21.049508865 sec (total: 24.683s; child: 3.633s; count: 1399) for void lldb_private::Symtab::InitNameIndexes()
...
```

Reviewers: clayborg, teemperor, labath, espindola, xiaobai

Reviewed By: labath, xiaobai

Subscribers: emaste, mgorny, arichardson, eraman, MaskRay, jdoerfert, labath, davide, teemperor, aprantl, erik.pilkington, jfb, abidh, lldb-commits

Tags: #lldb

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

llvm-svn: 361987

5 years ago[clang-format] Allow configuring list of function-like macros that resolve to a type
Francois Ferrand [Wed, 29 May 2019 16:30:47 +0000 (16:30 +0000)]
[clang-format] Allow configuring list of function-like macros that resolve to a type

Summary:
Adds a `TypenameMacros` configuration option that causes certain identifiers to be handled in a way similar to `typeof()`.

This is enough to:
- Prevent misinterpreting declarations of pointers to such types as expressions (`STACK_OF(int) * foo` -> `STACK_OF(int) *foo`),
- Avoid surprising line breaks in variable/struct field declarations (`STACK_OF(int)\nfoo;` -> `STACK_OF(int) foo;`, see https://bugs.llvm.org/show_bug.cgi?id=30353).

Reviewers: Typz, krasimir, djasper

Reviewed By: Typz

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 361986

5 years agoPartial revert of revert of r361827: Add constrained intrinsic tests for powerpc64le.
Kevin P. Neal [Wed, 29 May 2019 16:29:31 +0000 (16:29 +0000)]
Partial revert of revert of r361827: Add constrained intrinsic tests for powerpc64le.

The powerpc64-"nonle" tests are removed. They fail because of a bug that
Drew is currently working on that affects multiple targets.

Submitted by: Drew Wock <drew.wock@sas.com>
Reviewed by: Hal Finkel, Kevin P. Neal
Approved by: Hal Finkel
Differential Revision: http://reviews.llvm.org/D62388

llvm-svn: 361985

5 years ago[NFC] clang-format: Use LLVM style in NamespaceEndCommentsFixerTest
Francois Ferrand [Wed, 29 May 2019 16:22:43 +0000 (16:22 +0000)]
[NFC] clang-format: Use LLVM style in NamespaceEndCommentsFixerTest

As pointed out in https://reviews.llvm.org/D37813#inline-555026, the
code which is formatted does not match LLVM formatting style.

Technically this is not a problem since these tests bypass most of the
formatter, but it can be misleading.

llvm-svn: 361984

5 years ago[analyzer] print() JSONify: Program state implementation
Csaba Dabis [Wed, 29 May 2019 16:22:21 +0000 (16:22 +0000)]
[analyzer] print() JSONify: Program state implementation

Summary: -

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
             dkrupp

Tags: #clang

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

llvm-svn: 361983

5 years ago[analyzer] print() JSONify: Checker messages implementation
Csaba Dabis [Wed, 29 May 2019 16:02:33 +0000 (16:02 +0000)]
[analyzer] print() JSONify: Checker messages implementation

Summary: -

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
             dkrupp

Tags: #clang

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

llvm-svn: 361982

5 years ago[NFC][libcxx] Remove trailing whitespace
Louis Dionne [Wed, 29 May 2019 16:01:36 +0000 (16:01 +0000)]
[NFC][libcxx] Remove trailing whitespace

It's incredibly annoying when trying to create diffs

llvm-svn: 361981

5 years ago[analyzer] print() JSONify: Constructing objects implementation
Csaba Dabis [Wed, 29 May 2019 15:58:26 +0000 (15:58 +0000)]
[analyzer] print() JSONify: Constructing objects implementation

Summary: -

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
             dkrupp

Tags: #clang

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

llvm-svn: 361980

5 years ago[analyzer] print() JSONify: Type information implementation
Csaba Dabis [Wed, 29 May 2019 15:53:12 +0000 (15:53 +0000)]
[analyzer] print() JSONify: Type information implementation

Summary: -

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
             dkrupp

Tags: #clang

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

llvm-svn: 361979

5 years ago[analyzer] print() JSONify: Constraints implementation
Csaba Dabis [Wed, 29 May 2019 15:43:26 +0000 (15:43 +0000)]
[analyzer] print() JSONify: Constraints implementation

Summary: -

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
             dkrupp

Tags: #clang

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

llvm-svn: 361978

5 years ago[WebAssembly] Move direct call tracking from member to local. NFC.
Sam Clegg [Wed, 29 May 2019 15:41:08 +0000 (15:41 +0000)]
[WebAssembly] Move direct call tracking from member to local. NFC.

This data structure is only needed temporarily while symbols are being
created.

This is a followup on rL361678.

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

llvm-svn: 361977

5 years ago[analyzer] print() JSONify: Environment implementation
Csaba Dabis [Wed, 29 May 2019 15:36:58 +0000 (15:36 +0000)]
[analyzer] print() JSONify: Environment implementation

Summary: -

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
             dkrupp

Tags: #clang

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

llvm-svn: 361976

5 years ago[WebAssembly] Fix signatures of undefined function in LTO object which are not called...
Sam Clegg [Wed, 29 May 2019 15:36:42 +0000 (15:36 +0000)]
[WebAssembly] Fix signatures of undefined function in LTO object which are not called directly.

We recently added special handling for function that are not called
directly but failed to add testing for the LTO case.

See https://reviews.llvm.org/D62153

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

llvm-svn: 361975

5 years ago[CodeComplete] Add semicolon when completing patterns for 'static_assert' and 'typedef
Ilya Biryukov [Wed, 29 May 2019 15:32:17 +0000 (15:32 +0000)]
[CodeComplete] Add semicolon when completing patterns for 'static_assert' and 'typedef

This is a trivial follow-up to r360042, which added semicolons to other
pattern completions, so sending without review.

llvm-svn: 361974

5 years ago[NFC][InstCombine] Add unary FNeg tests to fpcast.ll and fpextend.ll
Cameron McInally [Wed, 29 May 2019 15:29:35 +0000 (15:29 +0000)]
[NFC][InstCombine] Add unary FNeg tests to fpcast.ll and fpextend.ll

llvm-svn: 361973

5 years ago[analyzer] print() JSONify: Store implementation
Csaba Dabis [Wed, 29 May 2019 15:25:19 +0000 (15:25 +0000)]
[analyzer] print() JSONify: Store implementation

Summary: -

Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus

Reviewed By: NoQ

Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
             dkrupp

Tags: #clang

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

llvm-svn: 361972

5 years ago[NFC][InstCombine] Add unary FNeg tests to fsub.ll known-never-nan.ll
Cameron McInally [Wed, 29 May 2019 15:21:28 +0000 (15:21 +0000)]
[NFC][InstCombine] Add unary FNeg tests to fsub.ll known-never-nan.ll

llvm-svn: 361971

5 years agoAdd additional constraints on midpoint(pointer, pointer). Fixes PR#42037.
Marshall Clow [Wed, 29 May 2019 15:17:55 +0000 (15:17 +0000)]
Add additional constraints on midpoint(pointer, pointer). Fixes PR#42037.

llvm-svn: 361970

5 years ago[clangd] Map typedefs to the same LSP completion kind as VSCode
Ilya Biryukov [Wed, 29 May 2019 15:10:19 +0000 (15:10 +0000)]
[clangd] Map typedefs to the same LSP completion kind as VSCode

For consistency and, more importantly, to get a nicer icon for those in VSCode.

llvm-svn: 361969

5 years agoQualify use of llvm::empty that's ambiguous with std::empty
Sam McCall [Wed, 29 May 2019 15:02:16 +0000 (15:02 +0000)]
Qualify use of llvm::empty that's ambiguous with std::empty

llvm-svn: 361968

5 years ago[mips] Check argument for __builtin_msa_ctcmsa / __builtin_msa_cfcmsa
Simon Atanasyan [Wed, 29 May 2019 14:59:32 +0000 (14:59 +0000)]
[mips] Check argument for __builtin_msa_ctcmsa / __builtin_msa_cfcmsa

The `__builtin_msa_ctcmsa` and `__builtin_msa_cfcmsa` builtins are mapped
to the `ctcmsa` and `cfcmsa` instructions respectively. While MSA
control registers have indexes in 0..7 range, the instructions accept
register index in 0..31 range [1].

[1] MIPS Architecture for Programmers Volume IV-j:
    The MIPS64 SIMD Architecture Module
https://www.mips.com/?do-download=the-mips64-simd-architecture-module

llvm-svn: 361967

5 years ago[mips] Use reg-exp in tests to tolerate register indexes changing. NFC
Simon Atanasyan [Wed, 29 May 2019 14:59:07 +0000 (14:59 +0000)]
[mips] Use reg-exp in tests to tolerate register indexes changing. NFC

llvm-svn: 361966

5 years ago[mips] Iterate over MSACtrlRegClass to reserve all MSA control registers. NFC
Simon Atanasyan [Wed, 29 May 2019 14:58:56 +0000 (14:58 +0000)]
[mips] Iterate over MSACtrlRegClass to reserve all MSA control registers. NFC

llvm-svn: 361965

5 years ago[mips] Use range-based for loops. NFC
Simon Atanasyan [Wed, 29 May 2019 14:58:50 +0000 (14:58 +0000)]
[mips] Use range-based for loops. NFC

llvm-svn: 361964

5 years agoRevert rL361944 from llvm/trunk :
Simon Pilgrim [Wed, 29 May 2019 14:39:37 +0000 (14:39 +0000)]
Revert rL361944 from llvm/trunk :
[ADT] add iterator_range::empty()
........
Breaks windows buildbots

llvm-svn: 361963

5 years agoClean up DWARFDebugInfoEntry
Fangrui Song [Wed, 29 May 2019 14:36:11 +0000 (14:36 +0000)]
Clean up DWARFDebugInfoEntry

llvm-svn: 361962

5 years agogn build: Merge r361953
Nico Weber [Wed, 29 May 2019 14:15:35 +0000 (14:15 +0000)]
gn build: Merge r361953

llvm-svn: 361961

5 years ago[clangd] Fix buildbot error.
Haojian Wu [Wed, 29 May 2019 14:11:53 +0000 (14:11 +0000)]
[clangd] Fix buildbot error.

llvm-svn: 361960

5 years agoclang-cl: Fix mangling of catchable types with names longer than 4kiB
Nico Weber [Wed, 29 May 2019 13:48:19 +0000 (13:48 +0000)]
clang-cl: Fix mangling of catchable types with names longer than 4kiB

The mangling used to contain the MD5 name of both the RTTI type
descriptor and the name of the copy ctor in MSVC2013, but it changed
to just the former in 2015. It looks like it changed back to the old
mangling in VS2017 version 15.7 and onwards, including VS2019 (version
16.0). VS2017 version 15.0 still has the VS2015 mangling. Versions
between 15.0 and 15.7 are't on godbolt. I found 15.4 (_MSC_VER 1911)
locally and that uses the 15.0 mangling still, but I didn't find 15.5 or
15.6, so I'm not sure where exactly it changed back.

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

llvm-svn: 361959

5 years ago[ARM] Split predicates out into their own .td file
Sjoerd Meijer [Wed, 29 May 2019 13:41:57 +0000 (13:41 +0000)]
[ARM] Split predicates out into their own .td file

The new ARMPredicates.td is included from ARM.td, early enough that
the predicate definitions are already in scope when ARMSchedule.td is
included. This will make it possible to refer to them in
UnsupportedFeatures fields of scheduling models.

NFC: the chunk of Tablegen being moved here is copied and pasted
verbatim.

Patch by: Simon Tatham

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

llvm-svn: 361958

5 years agoSpeculateAroundPHIs: Respect convergent
Matt Arsenault [Wed, 29 May 2019 13:14:39 +0000 (13:14 +0000)]
SpeculateAroundPHIs: Respect convergent

llvm-svn: 361957

5 years agoAMDGPU/GlobalISel: Remove unnecesssary REQUIREs
Matt Arsenault [Wed, 29 May 2019 13:14:35 +0000 (13:14 +0000)]
AMDGPU/GlobalISel: Remove unnecesssary REQUIREs

This has been a mandatory part of the build for a while.

llvm-svn: 361956

5 years ago[LibTooling] Add `before` and `after` selectors for selecting point-ranges relative...
Yitzhak Mandelbaum [Wed, 29 May 2019 12:40:36 +0000 (12:40 +0000)]
[LibTooling] Add `before` and `after` selectors for selecting point-ranges relative to nodes.

Summary:
The `before` and `after` selectors allow users to specify a zero-length range --
a point -- at the relevant location in an AST-node's source.  Point ranges can
be useful, for example, to insert a change using an API that takes a range to be
modified (e.g. `tooling::change()`).

Reviewers: ilya-biryukov

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 361955

5 years agoAttempt to fix buildbot after r361949
Eugene Leviant [Wed, 29 May 2019 12:26:23 +0000 (12:26 +0000)]
Attempt to fix buildbot after r361949

llvm-svn: 361954

5 years ago[SVE][IR] Scalable Vector IR Type
Graham Hunter [Wed, 29 May 2019 12:22:54 +0000 (12:22 +0000)]
[SVE][IR] Scalable Vector IR Type

* Adds a 'scalable' flag to VectorType
* Adds an 'ElementCount' class to VectorType to pass (possibly scalable) vector lengths, with overloaded operators.
* Modifies existing helper functions to use ElementCount
* Adds support for serializing/deserializing to/from both textual and bitcode IR formats
* Extends the verifier to reject global variables of scalable types
* Updates documentation

See the latest version of the RFC here: http://lists.llvm.org/pipermail/llvm-dev/2018-July/124396.html

Reviewers: rengolin, lattner, echristo, chandlerc, hfinkel, rkruppe, samparker, SjoerdMeijer, greened, sebpop

Reviewed By: hfinkel, sebpop

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

llvm-svn: 361953

5 years ago[clangd] Remove the whitelist std symbols in CanonicalIncludes.
Haojian Wu [Wed, 29 May 2019 12:08:11 +0000 (12:08 +0000)]
[clangd] Remove the whitelist std symbols in CanonicalIncludes.

Summary: These symbols have been included via StdSymbolMap.inc.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

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

llvm-svn: 361952

5 years ago[clangd] Another improvement for std include mapping.
Haojian Wu [Wed, 29 May 2019 12:03:41 +0000 (12:03 +0000)]
[clangd] Another improvement for std include mapping.

Summary:
Improve the way of checking a symbol name is in the first cell. The previous way
is not very robost for cases where a cell lists multiple symbols (e.g. int8_t).

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

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

llvm-svn: 361951

5 years ago[MCA] Refactor class LSUnit. NFCI
Andrea Di Biagio [Wed, 29 May 2019 11:38:27 +0000 (11:38 +0000)]
[MCA] Refactor class LSUnit. NFCI

This should be the last bit of refactoring in preparation for a patch that would
finally fix PR37494.

This patch introduces the concept of memory dependency groups (class
MemoryGroup) and "Load/Store Unit token" (LSUToken) to track the status of a
memory operation.

A MemoryGroup is a node of a memory dependency graph. It is used internally to
classify memory operations based on the memory operations they depend on.  Let I
and J be two memory operations, we say that I and J equivalent (for the purpose
of mapping instructions to memory dependency groups) if the set of memory
operations they depend depend on is identical.

MemoryGroups are identified by so-called LSUToken (a unique group identifier
assigned by the LSUnit to every group). When an instruction I is dispatched to
the LSUnit, the LSUnit maps I to a group, and then returns a LSUToken.
LSUTokens are used by class Scheduler to track memory dependencies.

This patch simplifies the LSUnit interface and moves most of the implementation
details to its base class (LSUnitBase). There is no user visible change to the
output.

llvm-svn: 361950

5 years ago[llvm-objcopy] Implement IHEX writer
Eugene Leviant [Wed, 29 May 2019 11:37:16 +0000 (11:37 +0000)]
[llvm-objcopy] Implement IHEX writer

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

llvm-svn: 361949