platform/upstream/llvm.git
6 years ago[AArch64][v8.5A] Add Memory Tagging instructions
Oliver Stannard [Tue, 2 Oct 2018 10:04:39 +0000 (10:04 +0000)]
[AArch64][v8.5A] Add Memory Tagging instructions

This adds new instructions to manipluate tagged pointers, and to load
and store the tags associated with memory.

Patch by Pablo Barrio, David Spickett and Oliver Stannard!

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

llvm-svn: 343572

6 years ago[AArch64][v8.5A] Add Memory Tagging system registers
Oliver Stannard [Tue, 2 Oct 2018 09:54:35 +0000 (09:54 +0000)]
[AArch64][v8.5A] Add Memory Tagging system registers

This adds new system registers introduced by the Memory Tagging
extension.

Patch by Pablo Barrio!

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

llvm-svn: 343571

6 years ago[AArch64][v8.5A] Add MTE system instructions
Oliver Stannard [Tue, 2 Oct 2018 09:48:43 +0000 (09:48 +0000)]
[AArch64][v8.5A] Add MTE system instructions

The Memory Tagging Extension adds system instructions for data cache
maintenance, implemented as new operands to the DC instruction.

Patch by Pablo Barrio!

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

llvm-svn: 343570

6 years ago[InstCombine] Fold ~A - Min/Max(~A, O) -> Max/Min(A, ~O) - A
David Green [Tue, 2 Oct 2018 09:48:34 +0000 (09:48 +0000)]
[InstCombine] Fold ~A - Min/Max(~A, O) -> Max/Min(A, ~O) - A

This is an attempt to get out of a local-minimum that instcombine currently
gets stuck in. We essentially combine two optimisations at once, ~a - ~b = b-a
and min(~a, ~b) = ~max(a, b), only doing the transform if the result is at
least neutral. This involves using IsFreeToInvert, which has been expanded a
little to include selects that can be easily inverted.

This is trying to fix PR35875, using the ideas from Sanjay. It is a large
improvement to one of our rgb to cmy kernels.

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

llvm-svn: 343569

6 years ago[clang] Implement Override Suggestions in Sema.
Kadir Cetinkaya [Tue, 2 Oct 2018 09:42:31 +0000 (09:42 +0000)]
[clang] Implement Override Suggestions in Sema.

Summary:
In clangd we had a new type of completion suggestions for cpp
class/struct/unions that will show override signatures for virtual methods in
base classes. This patch implements it in sema because it is hard to deduce more
info about completion token outside of Sema and handle itchy cases.

See the patch D50898 for more info on the functionality.

In addition to above patch this one also converts the suggestion into a
CK_Pattern with whole insertion text as the name of the suggestion and factors
out CodeCompletionString generation for declerations so that it can be re-used
by others.

Reviewers: ioeric, ilya-biryukov

Reviewed By: ioeric

Subscribers: cfe-commits

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

llvm-svn: 343568

6 years ago[clangd] Remove override result handling logic from clangd
Kadir Cetinkaya [Tue, 2 Oct 2018 09:42:17 +0000 (09:42 +0000)]
[clangd] Remove override result handling logic from clangd

Summary:
Since we plan to move handling of override suggestions to Sema with
D52225 this patch just makes sure clangd-side has no logic related to that
anymore and updates tests.

Reviewers: ioeric, ilya-biryukov

Reviewed By: ioeric

Subscribers: MaskRay, jkorous, arphaman, cfe-commits

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

llvm-svn: 343567

6 years ago[AArch64][v8.5A] Test clang option for the Memory Tagging Extension
Oliver Stannard [Tue, 2 Oct 2018 09:38:59 +0000 (09:38 +0000)]
[AArch64][v8.5A] Test clang option for the Memory Tagging Extension

The implementation of this is in TargetParser, so we only need to add a
test for it in clang.

Patch by Pablo Barrio!

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

llvm-svn: 343566

6 years ago[clang-tidy] NFC use CHECK-NOTES in test for cppgoreguidelines-avoid-goto
Jonas Toth [Tue, 2 Oct 2018 09:38:26 +0000 (09:38 +0000)]
[clang-tidy] NFC use CHECK-NOTES in test for cppgoreguidelines-avoid-goto

Reviewers: alexfh, aaron.ballman, hokein

Reviewed By: alexfh

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

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

llvm-svn: 343565

6 years ago[clang-tidy] NFC use CHECK-NOTES in tests for cppcoreguidelines-owning-memory
Jonas Toth [Tue, 2 Oct 2018 09:38:20 +0000 (09:38 +0000)]
[clang-tidy] NFC use CHECK-NOTES in tests for cppcoreguidelines-owning-memory

Reviewers: alexfh, aaron.ballman, hokein

Reviewed By: alexfh

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

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

llvm-svn: 343564

6 years ago[AArch64][v8.5A] Add MTE as an optional AArch64 extension
Oliver Stannard [Tue, 2 Oct 2018 09:36:28 +0000 (09:36 +0000)]
[AArch64][v8.5A] Add MTE as an optional AArch64 extension

This adds the memory tagging extension, which is an optional extension
introduced in v8.5A. The new instructions and registers will be added by
subsequent patches.

Patch by Pablo Barrio!

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

llvm-svn: 343563

6 years ago[X86] Standardize floating point assembly comments
Simon Pilgrim [Tue, 2 Oct 2018 09:08:51 +0000 (09:08 +0000)]
[X86] Standardize floating point assembly comments

Consistently try to use APFloat::toString for floating point constant comments to get rid of differences between Constant / ConstantDataSequential values - it should help stop some of the linux-windows buildbot failures matching NaN/INF etc. as well.

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

llvm-svn: 343562

6 years ago[InstCombine] Tests for ~A - Min/Max(~A, O) -> Max/Min(A, ~O) - A. NFC
David Green [Tue, 2 Oct 2018 09:06:49 +0000 (09:06 +0000)]
[InstCombine] Tests for ~A - Min/Max(~A, O) -> Max/Min(A, ~O) - A. NFC

llvm-svn: 343561

6 years agoAdded warning for unary minus used with unsigned type
David Bolvansky [Tue, 2 Oct 2018 06:02:30 +0000 (06:02 +0000)]
Added warning for unary minus used with unsigned type

Summary:
Inspired by MSVC, which found some occurrences of this expression on our code base.

Fixes PR38950

Reviewers: rsmith, craig.topper, spatel, RKSimon, aaron.ballman, thakis

Reviewed By: rsmith

Subscribers: joerg, Quuxplusone, lebedev.ri, craig.topper, RKSimon, cfe-commits

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

llvm-svn: 343560

6 years agoAMDGPU: Expand atomicrmw nand in IR
Matt Arsenault [Tue, 2 Oct 2018 03:50:56 +0000 (03:50 +0000)]
AMDGPU: Expand atomicrmw nand in IR

llvm-svn: 343559

6 years ago[WebAssembly] Restore slashes in SIMD conversion names
Thomas Lively [Tue, 2 Oct 2018 01:52:21 +0000 (01:52 +0000)]
[WebAssembly] Restore slashes in SIMD conversion names

Summary: Depends on D52372 and D52442.

Reviewers: aheejin, dschuff, aardappel

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

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

llvm-svn: 343558

6 years ago[CodeGen] Before entering the loop that copies a non-trivial array field
Akira Hatanaka [Tue, 2 Oct 2018 01:00:44 +0000 (01:00 +0000)]
[CodeGen] Before entering the loop that copies a non-trivial array field
of a non-trivial C struct, copy the preceding trivial fields that
haven't been copied.

This commit fixes a bug where the instructions used to copy the
preceding trivial fields were emitted inside the loop body.

rdar://problem/44185064

llvm-svn: 343556

6 years ago[MCA] Remove SM.hasNext() call in FetchStage::execute.
Owen Rodley [Tue, 2 Oct 2018 00:40:08 +0000 (00:40 +0000)]
[MCA] Remove SM.hasNext() call in FetchStage::execute.

Summary:
This is redundant, as FetchStage::getNextInstruction already checks this
and returns llvm::ErrorSuccess() as appropriate.

NFC.

Reviewers: andreadb

Subscribers: gbedwell, llvm-commits

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

llvm-svn: 343555

6 years ago[sanitizer] Include inlined frames into __sanitizer_symbolize_pc output
Vitaly Buka [Tue, 2 Oct 2018 00:29:41 +0000 (00:29 +0000)]
[sanitizer] Include inlined frames into __sanitizer_symbolize_pc output

Summary:
Behavior for existing used is not changing as the first line is going
to be the same, and it was invalid to try to read more lines.

New clients can read until they get empty string.

Reviewers: eugenis, morehouse

Subscribers: kubamracek, eraman, llvm-commits

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

llvm-svn: 343554

6 years ago[AArch64][DAGCombiner]: change -stop-after=isel to instruction-select
Fangrui Song [Tue, 2 Oct 2018 00:22:51 +0000 (00:22 +0000)]
[AArch64][DAGCombiner]: change -stop-after=isel to instruction-select

"isel" is registered by AMDGPU. The test will break if the AMDGPU target
is not built.

llvm-svn: 343553

6 years ago[ELF] Read the call graph profile from object files.
Michael J. Spencer [Tue, 2 Oct 2018 00:17:15 +0000 (00:17 +0000)]
[ELF] Read the call graph profile from object files.

This uses the call graph profile embedded in the object files to construct the call graph.

This is read from a SHT_LLVM_CALL_GRAPH_PROFILE (0x6fff4c02) section as (uint32_t, uint32_t, uint64_t) tuples as (from symbol index, to symbol index, weight).

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

llvm-svn: 343552

6 years ago[SimplifyCFG] Use Value::hasNUses instead of 'getNumUses() =='. NFCI
Craig Topper [Mon, 1 Oct 2018 23:09:52 +0000 (23:09 +0000)]
[SimplifyCFG] Use Value::hasNUses instead of 'getNumUses() =='. NFCI

getNumUses is linear in the number of uses. Since we're looking for a specific use count, we can use hasNUses which will stop as soon as it determines there are more than N uses instead of walking all of them.

llvm-svn: 343550

6 years ago[llvm-mca] Rename the 'Subtract' method to 'subtract'
Matt Davis [Mon, 1 Oct 2018 23:01:45 +0000 (23:01 +0000)]
[llvm-mca] Rename the 'Subtract' method to 'subtract'

llvm-svn: 343549

6 years ago[SimplifyCFG] Update comments that refer to CondBB to say ThenBB instead. NFC
Craig Topper [Mon, 1 Oct 2018 22:56:11 +0000 (22:56 +0000)]
[SimplifyCFG] Update comments that refer to CondBB to say ThenBB instead. NFC

There is no variable in this function named CondBB, but there is one named ThenBB and I believe the comments are all refering to it.

llvm-svn: 343548

6 years ago[PDB] Add support for more kinds of PDB Sym Tags.
Zachary Turner [Mon, 1 Oct 2018 22:39:19 +0000 (22:39 +0000)]
[PDB] Add support for more kinds of PDB Sym Tags.

DIA SDK is returning several new sym tag types, so we update
the enumeration and printing code to support these.

llvm-svn: 343547

6 years agoRevert: r343521 and r343541: [globalisel] Add a combiner helpers for extending loads...
Daniel Sanders [Mon, 1 Oct 2018 22:32:08 +0000 (22:32 +0000)]
Revert: r343521 and r343541: [globalisel] Add a combiner helpers for extending loads and use them in a pre-legalize combiner for AArch64

There's a strange assertion on two of the Green Dragon bots that goes away when
this is reverted. The assertion is in RegBankAlloc and if it is this commit then
-verify-machine-instrs should have caught it earlier in the pipeline.

llvm-svn: 343546

6 years agoEnable C++ tests to run in the -gmodules configuration on Darwin.
Adrian Prantl [Mon, 1 Oct 2018 22:27:42 +0000 (22:27 +0000)]
Enable C++ tests to run in the -gmodules configuration on Darwin.

This addresses PR36048 (http://llvm.org/bugs/show_bug.cgi?id=36048)

rdar://problem/36776281

llvm-svn: 343545

6 years ago[codeview] Simplify S_DEFRANGE emission code, NFC
Reid Kleckner [Mon, 1 Oct 2018 22:25:49 +0000 (22:25 +0000)]
[codeview] Simplify S_DEFRANGE emission code, NFC

These assembler directives are still pretty unreadable and it would be
nice to clean them up at some point.

llvm-svn: 343544

6 years ago[codeview] Emit S_FRAMEPROC and use S_DEFRANGE_FRAMEPOINTER_REL
Reid Kleckner [Mon, 1 Oct 2018 21:59:45 +0000 (21:59 +0000)]
[codeview] Emit S_FRAMEPROC and use S_DEFRANGE_FRAMEPOINTER_REL

Summary:
Before this change, LLVM would always describe locals on the stack as
being relative to some specific register, RSP, ESP, EBP, ESI, etc.
Variables in stack memory are pretty common, so there is a special
S_DEFRANGE_FRAMEPOINTER_REL symbol for them. This change uses it to
reduce the size of our debug info.

On top of the size savings, there are cases on 32-bit x86 where local
variables are addressed from ESP, but ESP changes across the function.
Unlike in DWARF, there is no FPO data to describe the stack adjustments
made to push arguments onto the stack and pop them off after the call,
which makes it hard for the debugger to find the local variables in
frames further up the stack.

To handle this, CodeView has a special VFRAME register, which
corresponds to the $T0 variable set by our FPO data in 32-bit.  Offsets
to local variables are instead relative to this value.

This is part of PR38857.

Reviewers: hans, zturner, javed.absar

Subscribers: aprantl, hiraditya, JDevlieghere, llvm-commits

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

llvm-svn: 343543

6 years agoDistinguish `__block` variables that are captured by escaping blocks
Akira Hatanaka [Mon, 1 Oct 2018 21:51:28 +0000 (21:51 +0000)]
Distinguish `__block` variables that are captured by escaping blocks
from those that aren't.

This patch changes the way __block variables that aren't captured by
escaping blocks are handled:

- Since non-escaping blocks on the stack never get copied to the heap
  (see https://reviews.llvm.org/D49303), Sema shouldn't error out when
  the type of a non-escaping __block variable doesn't have an accessible
  copy constructor.

- IRGen doesn't have to use the specialized byref structure (see
  https://clang.llvm.org/docs/Block-ABI-Apple.html#id8) for a
  non-escaping __block variable anymore. Instead IRGen can emit the
  variable as a normal variable and copy the reference to the block
  literal. Byref copy/dispose helpers aren't needed either.

This reapplies r343518 after fixing a use-after-free bug in function
Sema::ActOnBlockStmtExpr where the BlockScopeInfo was dereferenced after
it was popped and deleted.

rdar://problem/39352313

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

llvm-svn: 343542

6 years agoFix the Windows build in GlobalISel
Reid Kleckner [Mon, 1 Oct 2018 21:39:39 +0000 (21:39 +0000)]
Fix the Windows build in GlobalISel

Clang-cl was complaining about some sort of constexpr narrowing bug:

C:\src\llvm-project\llvm\lib\CodeGen\GlobalISel\CombinerHelper.cpp(136,31):  error: non-constant-expression cannot be narrowed from type 'llvm::TargetOpcode::(anonymous enum at C:\src\llvm-project\llvm\include\llvm/CodeGen/TargetOpcodes.h:22:1)' to 'unsigned int' in initializer list [-Wc++11-narrowing]
                              unsigned(MI.getOpcode()) == unsigned(TargetOpcode::G_LOAD)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\src\llvm-project\llvm\lib\CodeGen\GlobalISel\CombinerHelper.cpp(136,31):  note: insert an explicit cast to silence this issue
                              unsigned(MI.getOpcode()) == unsigned(TargetOpcode::G_LOAD)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              static_cast<unsigned int>(

llvm-svn: 343541

6 years agoRecommit r343499 "[X86] Enable load folding in the test shrinking code"
Craig Topper [Mon, 1 Oct 2018 21:35:28 +0000 (21:35 +0000)]
Recommit r343499 "[X86] Enable load folding in the test shrinking code"

Original message:
This patch adds load folding support to the test shrinking code. This was noticed missing in the review for D52669

llvm-svn: 343540

6 years agoRecommit r343498 "[X86] Improve test instruction shrinking when the sign flag is...
Craig Topper [Mon, 1 Oct 2018 21:35:26 +0000 (21:35 +0000)]
Recommit r343498 "[X86] Improve test instruction shrinking when the sign flag is used and the output of the and is truncated."

This includes a fix to prevent i16 compares with i32/i64 ands from being shrunk if bit 15 of the and is set and the sign bit is used.

Original commit message:
Currently we skip looking through truncates if the sign flag is used. But that's overly restrictive.

It's safe to look through the truncate as long as we ensure one of the 3 things when we shrink. Either the MSB of the mask at the shrunken size isn't set. If the mask bit is set then either the shrunk size needs to be equal to the compare size or the sign

There are still missed opportunities to shrink a load and fold it in here. This will be fixed in a future patch.

llvm-svn: 343539

6 years agoSort expected test output after previous commit
Stephen Kelly [Mon, 1 Oct 2018 21:10:30 +0000 (21:10 +0000)]
Sort expected test output after previous commit

llvm-svn: 343538

6 years ago[MinGW] Allow using ASan
Martin Storsjo [Mon, 1 Oct 2018 20:53:25 +0000 (20:53 +0000)]
[MinGW] Allow using ASan

Linking to ASan for MinGW is similar to MSVC, but MinGW always links
the MSVCRT dynamically, so there is only one of the MSVC cases to
consider.

When linking to a shared compiler runtime library on MinGW, the suffix
of the import library is .dll.a.

The existing case of .dll as suffix for windows in general doesn't
seem correct (since this is used for linking). As long as callers never
actually set the Shared flag, the default static suffix of .lib also
worked fine for import libraries as well.

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

llvm-svn: 343537

6 years ago[clang-query] Test non-code-completion on single letter shortcuts
Stephen Kelly [Mon, 1 Oct 2018 20:45:44 +0000 (20:45 +0000)]
[clang-query] Test non-code-completion on single letter shortcuts

llvm-svn: 343536

6 years ago[clang-query] Add missing quit test
Stephen Kelly [Mon, 1 Oct 2018 20:45:39 +0000 (20:45 +0000)]
[clang-query] Add missing quit test

llvm-svn: 343535

6 years ago[sanitizer] Small buffer tests for __sanitizer_symbolize_pc
Vitaly Buka [Mon, 1 Oct 2018 20:39:49 +0000 (20:39 +0000)]
[sanitizer] Small buffer tests for __sanitizer_symbolize_pc

llvm-svn: 343534

6 years ago[clang-query] Add missing 'l' command handling
Stephen Kelly [Mon, 1 Oct 2018 20:34:21 +0000 (20:34 +0000)]
[clang-query] Add missing 'l' command handling

The `let` command was added in commit 045c15ba (Add new 'let' command to
bind arbitrary values into constants., 2014-04-23).

The `let` command and the non-existant `l` command were documented in
commit 233092a0 (Add 'let' to the help message., 2015-02-27).

Implement the `l` command now for completeness.

llvm-svn: 343533

6 years ago[clang-query] Sort command options
Stephen Kelly [Mon, 1 Oct 2018 20:34:15 +0000 (20:34 +0000)]
[clang-query] Sort command options

llvm-svn: 343532

6 years agoRevert r343518.
Akira Hatanaka [Mon, 1 Oct 2018 20:29:34 +0000 (20:29 +0000)]
Revert r343518.

Bots are still failing.

http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/24420
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/12958

llvm-svn: 343531

6 years agoUpdate CMakeLists.txt snippet so that example compiles
Stephen Kelly [Mon, 1 Oct 2018 20:28:07 +0000 (20:28 +0000)]
Update CMakeLists.txt snippet so that example compiles

Summary: Previous to this the example didn't work out of the box, it seems some cmake config changed between when this was written and now.

Author: Dan Zimmerman <daniel.zimmerman@me.com>

Reviewers: modocache, steveire

Reviewed By: steveire

Subscribers: smeenai, steveire, cfe-commits

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

llvm-svn: 343530

6 years ago[InstCombine] add inverse test for vector trunc canonical form; NFC
Sanjay Patel [Mon, 1 Oct 2018 20:25:49 +0000 (20:25 +0000)]
[InstCombine] add inverse test for vector trunc canonical form; NFC

llvm-svn: 343529

6 years ago[clang-tidy] Build it even without static analyzer
Stephen Kelly [Mon, 1 Oct 2018 20:24:22 +0000 (20:24 +0000)]
[clang-tidy] Build it even without static analyzer

Conditionally compile the parts of clang-tidy which depend on the static
analyzer.

Funnily enough, I made the patch to exclude this from the build in 2013,
and it was committed with the comment that the tool should not be fully
excluded, but only the parts of it which depend on the analyzer should
be excluded.

 http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20130617/081797.html

This commit implements that idea.

Reviewed By: aaron.ballman

Tags: #clang-tools-extra

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

llvm-svn: 343528

6 years ago[InstCombine] regenerate test checks; NFC
Sanjay Patel [Mon, 1 Oct 2018 20:22:28 +0000 (20:22 +0000)]
[InstCombine] regenerate test checks; NFC

These files used an old version of the script.
We regex more now.

llvm-svn: 343527

6 years ago[clangd] exclude check-clangd from check-all, fix buildbot failure.
Haojian Wu [Mon, 1 Oct 2018 20:21:41 +0000 (20:21 +0000)]
[clangd] exclude check-clangd from check-all, fix buildbot failure.

check-clangd is included via check-clang-tools, otherwise we will run two
instances of check-clangd in parallel when running 'check-all',
which may have race condition.

llvm-svn: 343526

6 years ago[PowerPC] Folding XForm to DForm loads requires alignment for some DForm loads.
Stefan Pintilie [Mon, 1 Oct 2018 20:16:27 +0000 (20:16 +0000)]
[PowerPC] Folding XForm to DForm loads requires alignment for some DForm loads.

Going from XForm Load to DSForm Load requires that the immediate be 4 byte
aligned.
If we are not aligned we must leave the load as LDX (XForm).
This bug is causing a compile-time failure in the benchmark h264ref.

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

llvm-svn: 343525

6 years agoRemove a path-length limitation for the xray logfile.
Douglas Yung [Mon, 1 Oct 2018 20:03:53 +0000 (20:03 +0000)]
Remove a path-length limitation for the xray logfile.

Reviewers: MaskRay

Subscribers: llvm-commits

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

Patch by Jeremy Morse!

llvm-svn: 343524

6 years agoSwitch syscall(2)/__syscall(2) calls to libc calls on NetBSD
Kamil Rytarowski [Mon, 1 Oct 2018 19:50:12 +0000 (19:50 +0000)]
Switch syscall(2)/__syscall(2) calls to libc calls on NetBSD

Summary:
When possible, switch syscall(2)/__syscall(2) calls
to direct calls of internal libc symbols.

Add a new function to detect address of a libc
symbol of a function that could be intercepted.
With the address detector in GetRealLibcAddress(),
an optional interceptor of libc call will be bypassed.

The original approach with syscall(2)/__syscall(2)
wasn't portable across supported ABIs and CPU
architectures. The indirect syscall interface is
also a candidate for removal in future revisions
of NetBSD, as the C language ABI is not a good
domain for serialization of arbitrary functions
arguments.

Switch the following functions to libc calls:
 - internal_mmap()
 - internal_munmap()
 - internal_mprotect()
 - internal_close()
 - internal_open()
 - internal_read()
 - internal_write()
 - internal_ftruncate()
 - internal_stat()
 - internal_lstat()
 - internal_fstat()
 - internal_dup2()
 - internal_readlink()
 - internal_unlink()
 - internal_rename()
 - internal_sched_yield()
 - internal__exit()
 - internal_sleep()
 - internal_execve()
 - NanoTime()
 - internal_clock_gettime()
 - internal_waitpid()
 - internal_getpid()
 - internal_getppid()
 - internal_getdents()
 - internal_lseek()
 - internal_sigaltstack()
 - internal_fork()
 - internal_sigprocmask()
 - internal_sysctl()
 - internal_sigemptyset()
 - internal_sigfillset()
 - GetTid()
 - TgKill()

This revision leaves room for refactoring in subsequent commits.

Reviewers: vitalybuka, kcc, joerg

Reviewed By: vitalybuka

Subscribers: mgorny, fedor.sergeev, jfb, loverszhaokai, devnexen, kubamracek, llvm-commits, ro, #sanitizers

Tags: #sanitizers

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

llvm-svn: 343523

6 years agoTemporarily revert "[GVNHoist] Re-enable GVNHoist by default"
Eric Christopher [Mon, 1 Oct 2018 18:57:08 +0000 (18:57 +0000)]
Temporarily revert "[GVNHoist] Re-enable GVNHoist by default"

This reverts commit r342387 as it's showing significant performance
regressions in a number of benchmarks. Followed up with the
committer and original thread with an example and will get performance
numbers before recommitting.

llvm-svn: 343522

6 years ago[globalisel] Add a combiner helpers for extending loads and use them in a pre-legaliz...
Daniel Sanders [Mon, 1 Oct 2018 18:56:47 +0000 (18:56 +0000)]
[globalisel] Add a combiner helpers for extending loads and use them in a pre-legalize combiner for AArch64

Summary: Depends on D45541

Reviewers: ab, aditya_nandakumar, bogner, rtereshin, volkan, rovka, javed.absar, aemerson

Subscribers: aemerson, rengolin, mgorny, javed.absar, kristof.beyls, llvm-commits

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

llvm-svn: 343521

6 years agoX86, AArch64, ARM: Do not attach debug location to spill/reload instructions
Matthias Braun [Mon, 1 Oct 2018 18:56:39 +0000 (18:56 +0000)]
X86, AArch64, ARM: Do not attach debug location to spill/reload instructions

Spill/reload instructions are artificially generated by the compiler and
have no relation to the original source code. So the best thing to do is
not attach any debug location to them (instead of just taking the next
debug location we find on following instructions).

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

llvm-svn: 343520

6 years ago[X86] Add more test shrinking with truncate and sign bit usage tests. NFC
Craig Topper [Mon, 1 Oct 2018 18:52:19 +0000 (18:52 +0000)]
[X86] Add more test shrinking with truncate and sign bit usage tests. NFC

llvm-svn: 343519

6 years agoDistinguish `__block` variables that are captured by escaping blocks
Akira Hatanaka [Mon, 1 Oct 2018 18:50:14 +0000 (18:50 +0000)]
Distinguish `__block` variables that are captured by escaping blocks
from those that aren't.

This patch changes the way __block variables that aren't captured by
escaping blocks are handled:

- Since non-escaping blocks on the stack never get copied to the heap
  (see https://reviews.llvm.org/D49303), Sema shouldn't error out when
  the type of a non-escaping __block variable doesn't have an accessible
  copy constructor.

- IRGen doesn't have to use the specialized byref structure (see
  https://clang.llvm.org/docs/Block-ABI-Apple.html#id8) for a
  non-escaping __block variable anymore. Instead IRGen can emit the
  variable as a normal variable and copy the reference to the block
  literal. Byref copy/dispose helpers aren't needed either.

This reapplies r341754, which was reverted in r341757 because it broke a
couple of bots. r341754 was calling markEscapingByrefs after the call to
PopFunctionScopeInfo, which caused the popped function scope to be
cleared out when the following code was compiled, for example:

$ cat test.m
struct A {
  id data[10];
};

void foo() {
  __block A v;
  ^{ (void)v; };
}

This commit calls markEscapingByrefs before calling PopFunctionScopeInfo
to prevent that from happening.

rdar://problem/39352313

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

llvm-svn: 343518

6 years ago[clang-format] Update comment, NFCI
Krasimir Georgiev [Mon, 1 Oct 2018 18:41:21 +0000 (18:41 +0000)]
[clang-format] Update comment, NFCI

The initializer of `ParameterCount` was updated from 1 to 0 in r175165,
but the comment was never touched:
https://github.com/llvm-mirror/clang/commit/9fc56f2636137fcde8acb38865555ed6c7b84dfd

llvm-svn: 343517

6 years agoRevert r343499 and r343498. X86 test improvements
Craig Topper [Mon, 1 Oct 2018 18:40:44 +0000 (18:40 +0000)]
Revert r343499 and r343498. X86 test improvements

There's a subtle bug in the handling of truncate from i32/i64 to i32 without minsize.

I'll be adding more test cases and trying to find a fix.

llvm-svn: 343516

6 years ago[ELF] [HEXAGON] Add support for PLT_B22_PCREL and HEX_32_PCREL
Sid Manning [Mon, 1 Oct 2018 18:27:26 +0000 (18:27 +0000)]
[ELF] [HEXAGON] Add support for PLT_B22_PCREL and HEX_32_PCREL

Update testcase.

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

llvm-svn: 343515

6 years ago[Hexagon] Remove incorrect pattern for swiz
Krzysztof Parzyszek [Mon, 1 Oct 2018 18:24:40 +0000 (18:24 +0000)]
[Hexagon] Remove incorrect pattern for swiz

The pattern had a couple of problems:
- It was checking for loads of bytes in the reverse order to what it
  should have been looking for.
- It would replace loads of bytes with a load of a word without making
  sure that the alignment was correct.

Thanks to Eli Friedman for pointing it out.

llvm-svn: 343514

6 years ago[clang-format] Fix typo in comment, NFCI
Krasimir Georgiev [Mon, 1 Oct 2018 18:18:00 +0000 (18:18 +0000)]
[clang-format] Fix typo in comment, NFCI

llvm-svn: 343513

6 years agoUnbreak linux cfi build
David Carlier [Mon, 1 Oct 2018 18:14:02 +0000 (18:14 +0000)]
Unbreak linux cfi build

llvm-svn: 343512

6 years ago[analyzer][NFC] Refactor functions in PlistDiagnostics to take Preproc as parameter
Kristof Umann [Mon, 1 Oct 2018 18:11:51 +0000 (18:11 +0000)]
[analyzer][NFC] Refactor functions in PlistDiagnostics to take Preproc as parameter

This is patch is a preparation for the proposed inclusion of macro expansions in the plist output.

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

llvm-svn: 343511

6 years ago[Cfi] Compiling cfi library on FreeBSD and NetBSD
David Carlier [Mon, 1 Oct 2018 18:01:55 +0000 (18:01 +0000)]
[Cfi] Compiling cfi library on FreeBSD and NetBSD

Making the library slighty more portable.

Reviewers: vitalybuka, krytarowski

Reviewed By: vitalybuka

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

llvm-svn: 343510

6 years ago[AMDGPU] Fixed SIInstrInfo::getOpSize to handle subregs
Stanislav Mekhanoshin [Mon, 1 Oct 2018 18:00:02 +0000 (18:00 +0000)]
[AMDGPU] Fixed SIInstrInfo::getOpSize to handle subregs

Currently it returns incorrect operand size for a target independet
node such as COPY if operand is a register with subreg. Instead of
correct subreg size it returns a size of the whole superreg.

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

llvm-svn: 343508

6 years ago[PDB] Add support for dumping Typedef records.
Zachary Turner [Mon, 1 Oct 2018 17:55:38 +0000 (17:55 +0000)]
[PDB] Add support for dumping Typedef records.

These work a little differently because they are actually in
the globals stream and are treated as symbol records, even though
DIA presents them as types.  So this also adds the necessary
infrastructure to cache records that live somewhere other than
the TPI stream as well.

llvm-svn: 343507

6 years ago[PDB] Add support for parsing VFTable Shape records.
Zachary Turner [Mon, 1 Oct 2018 17:55:16 +0000 (17:55 +0000)]
[PDB] Add support for parsing VFTable Shape records.

This allows them to be returned from the native API.

llvm-svn: 343506

6 years agoMIRParser: Check that instructions only reference DILocation metadata
Matthias Braun [Mon, 1 Oct 2018 17:50:52 +0000 (17:50 +0000)]
MIRParser: Check that instructions only reference DILocation metadata

llvm-svn: 343505

6 years agoRemove redundant null pointer check in operator delete
Fangrui Song [Mon, 1 Oct 2018 17:21:07 +0000 (17:21 +0000)]
Remove redundant null pointer check in operator delete

Summary:
C89 4.10.3.2 The free function
C99 7.20.3.2 The free function
C11 7.22.3.3 The free function

    If ptr is a null pointer, no action shall occur.

_aligned_free on MSDN:

    If memblock is a NULL pointer, this function simply performs no actions.

Reviewers: EricWF, mclow.lists, khng300, hotpxl

Reviewed By: mclow.lists, khng300, hotpxl

Subscribers: lichray, llvm-commits, hotpxl, khng300, christof, ldionne, cfe-commits, libcxx-commits

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

llvm-svn: 343503

6 years agoFix tests affected by printing change.
Jonas Devlieghere [Mon, 1 Oct 2018 17:20:57 +0000 (17:20 +0000)]
Fix tests affected by printing change.

I forgot to update some tests that were affected by the escaping of
backticks in the format string, landed in r343471.

llvm-svn: 343502

6 years ago[WebAssembly] Fixed AsmParser not allowing instructions with /
Wouter van Oortmerssen [Mon, 1 Oct 2018 17:20:31 +0000 (17:20 +0000)]
[WebAssembly] Fixed AsmParser not allowing instructions with /

Summary:
The AsmParser Lexer regards these as a seperate token.
Here we expand the instruction name with them if they are
adjacent (no whitespace).

Tested: the basic-assembly.s test case has one case with a / in it.
The currently are also instructions with : in them, which we intend
to rename rather than fix them here.

Reviewers: tlively, dschuff

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

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

llvm-svn: 343501

6 years agoFix build with GCC < 5.0 (PR39131)
Tatyana Krasnukha [Mon, 1 Oct 2018 17:14:12 +0000 (17:14 +0000)]
Fix build with GCC < 5.0 (PR39131)

llvm-svn: 343500

6 years ago[X86] Enable load folding in the test shrinking code
Craig Topper [Mon, 1 Oct 2018 17:10:50 +0000 (17:10 +0000)]
[X86] Enable load folding in the test shrinking code

This patch adds load folding support to the test shrinking code. This was noticed missing in the review for D52669

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

llvm-svn: 343499

6 years ago[X86] Improve test instruction shrinking when the sign flag is used and the output...
Craig Topper [Mon, 1 Oct 2018 17:10:45 +0000 (17:10 +0000)]
[X86] Improve test instruction shrinking when the sign flag is used and the output of the and is truncated

Currently we skip looking through truncates if the sign flag is used. But that's overly restrictive.

It's safe to look through the truncate as long as we ensure one of the 3 things when we shrink. Either the MSB of the mask at the shrunken size isn't set. If the mask bit is set then either the shrunk size needs to be equal to the compare size or the sign flag needs to be unused.

There are still missed opportunities to shrink a load and fold it in here. This will be fixed in a future patch.

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

llvm-svn: 343498

6 years ago[lldb] Start a new line for the next output if there are no symbols in the current...
Aaron Smith [Mon, 1 Oct 2018 17:08:51 +0000 (17:08 +0000)]
[lldb] Start a new line for the next output if there are no symbols in the current symtab

Summary:
If there is no newline the "lldb" prompt could be on the wrong line. To reproduce the missing newline you can do 'image dump smytab' on any binary.

Previously

Symtab, file = D:\upstream\build\Debug\bin\clang-diff.exe, num_symbols = 0(lldb)

Now

Symtab, file = D:\upstream\build\Debug\bin\clang-diff.exe, num_symbols = 0
(lldb)

Reviewers: zturner, aleksandr.urakov, lldb-commits

Subscribers: abidh

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

llvm-svn: 343497

6 years ago[NFC] Fix `-Wcast-qual` warnings in Darwin `internal_sysctl(...)` implementation.
Dan Liew [Mon, 1 Oct 2018 16:51:01 +0000 (16:51 +0000)]
[NFC] Fix `-Wcast-qual` warnings in Darwin `internal_sysctl(...)` implementation.

Summary: The warnings were introduced in r341187 and r341192.

Reviewers: kubamracek, george.karpenkov, krytarowski

Subscribers: #sanitizers, llvm-commits

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

llvm-svn: 343496

6 years agoAdd an explanation about cross linking.
Rui Ueyama [Mon, 1 Oct 2018 16:41:58 +0000 (16:41 +0000)]
Add an explanation about cross linking.

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

llvm-svn: 343495

6 years ago[X86][Btver2] Fix BT(C|R|S)mr & BT(C|R|S)mi schedule latency + uop counts
Simon Pilgrim [Mon, 1 Oct 2018 16:31:30 +0000 (16:31 +0000)]
[X86][Btver2] Fix BT(C|R|S)mr & BT(C|R|S)mi schedule latency + uop counts

Match AMD Fam16h SOG + llvm-exegesis tests

llvm-svn: 343494

6 years agoDAGCombiner: StoreMerging: Fix bad index calculating when adjusting mismatching vecto...
Matthias Braun [Mon, 1 Oct 2018 16:25:50 +0000 (16:25 +0000)]
DAGCombiner: StoreMerging: Fix bad index calculating when adjusting mismatching vector types

This fixes a case of bad index calculation when merging mismatching
vector types. This changes the existing code to just use the existing
extract_{subvector|element} and a bitcast (instead of bitcast first and
then newly created extract_xxx) so we don't need to adjust any indices
in the first place.

rdar://44584718

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

llvm-svn: 343493

6 years ago[OPENMP][NVPTX] Handle `requires datasharing` flag correctly with
Alexey Bataev [Mon, 1 Oct 2018 16:20:57 +0000 (16:20 +0000)]
[OPENMP][NVPTX] Handle `requires datasharing` flag correctly with
lightweight runtime.

The datasharing flag must be set to `1` when executing SPMD-mode compatible directive with reduction|lastprivate clauses.

llvm-svn: 343492

6 years ago[x86] add tests for 256- and 512-bit vector types for scalar-to-vector transform...
Sanjay Patel [Mon, 1 Oct 2018 16:17:18 +0000 (16:17 +0000)]
[x86] add tests for 256- and 512-bit vector types for scalar-to-vector transform; NFC

llvm-svn: 343491

6 years ago[X86] Create schedule classes for BT(C|R|S)mi and BT(C|R|S)mr instructions
Simon Pilgrim [Mon, 1 Oct 2018 16:12:44 +0000 (16:12 +0000)]
[X86] Create schedule classes for BT(C|R|S)mi and BT(C|R|S)mr instructions

llvm-svn: 343490

6 years ago[AArch64] Refactor cheap cost model
Evandro Menezes [Mon, 1 Oct 2018 16:11:19 +0000 (16:11 +0000)]
[AArch64] Refactor cheap cost model

Refactor the order in `TII::isAsCheapAsAMove()` to ease future development
and maintenance.  Practically NFC.

llvm-svn: 343489

6 years ago[Basic] Update clang tests (really testing sys::fs) that broke with r343460
Sam McCall [Mon, 1 Oct 2018 16:07:03 +0000 (16:07 +0000)]
[Basic] Update clang tests (really testing sys::fs) that broke with r343460

llvm-svn: 343488

6 years ago[X86] Remove unnecessary BTmi/BTmr scheduler overrides
Simon Pilgrim [Mon, 1 Oct 2018 15:01:00 +0000 (15:01 +0000)]
[X86] Remove unnecessary BTmi/BTmr scheduler overrides

llvm-svn: 343487

6 years ago[InstCombine] Handle vector compares in foldGEPIcmp(), take 2
Jesper Antonsson [Mon, 1 Oct 2018 14:59:25 +0000 (14:59 +0000)]
[InstCombine] Handle vector compares in foldGEPIcmp(), take 2

Summary:
This is a continuation of the fix for PR34627 "InstCombine assertion at vector gep/icmp folding". (I just realized bugpoint had fuzzed the original test for me, so I had fixed another trigger of the same assert in adjacent code in InstCombine.)

This patch avoids optimizing an icmp (to look only at the base pointers) when the resulting icmp would have a different type.

The patch adds a testcase and also cleans up and shrinks the pre-existing test for the adjacent assert trigger.

Reviewers: lebedev.ri, majnemer, spatel

Reviewed By: lebedev.ri

Subscribers: llvm-commits

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

llvm-svn: 343486

6 years ago[mips] Generate tests expectations using update_llc_test_checks. NFC
Simon Atanasyan [Mon, 1 Oct 2018 14:43:07 +0000 (14:43 +0000)]
[mips] Generate tests expectations using update_llc_test_checks. NFC

Generate tests expectations using update_llc_test_checks and reduce
number of "check prefixes" used in the tests.

llvm-svn: 343485

6 years ago[X86][Btver2] Fix BTmr schedule uop counts
Simon Pilgrim [Mon, 1 Oct 2018 14:42:16 +0000 (14:42 +0000)]
[X86][Btver2] Fix BTmr schedule uop counts

Match AMD Fam16h SOG + llvm-exegesis tests

llvm-svn: 343484

6 years ago[OPENMP] Simplify code, NFC.
Alexey Bataev [Mon, 1 Oct 2018 14:40:06 +0000 (14:40 +0000)]
[OPENMP] Simplify code, NFC.

llvm-svn: 343483

6 years ago[InstCombine] try to convert vector insert+extract to trunc; 2nd try
Sanjay Patel [Mon, 1 Oct 2018 14:40:00 +0000 (14:40 +0000)]
[InstCombine] try to convert vector insert+extract to trunc; 2nd try

This was originally committed at rL343407, but reverted at
rL343458 because it crashed trying to handle a case where
the destination type is FP. This version of the patch adds
a check for that possibility. Tests added at rL343480.

Original commit message:

This transform is requested for the backend in:
https://bugs.llvm.org/show_bug.cgi?id=39016
...but I figured it was worth doing in IR too, and it's probably
easier to implement here, so that's this patch.

In the simplest case, we are just truncating a scalar value. If the
extract index doesn't correspond to the LSBs of the scalar, then we
have to shift-right before the truncate. Endian-ness makes this tricky,
but hopefully the ASCII-art helps visualize the transform.

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

llvm-svn: 343482

6 years ago[Preprocessor] Fix a crash when handling non-alpha include header.
Haojian Wu [Mon, 1 Oct 2018 14:38:43 +0000 (14:38 +0000)]
[Preprocessor] Fix a crash when handling non-alpha include header.

Summary: the crash is casued by an assertion in StringRef.
(llvm::StringRef::front() const: Assertion `!empty()' failed.)

Reviewers: sammccall

Subscribers: jsji, cfe-commits

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

llvm-svn: 343481

6 years ago[InstCombine] add more insert-extract tests for D52439; NFC
Sanjay Patel [Mon, 1 Oct 2018 14:29:09 +0000 (14:29 +0000)]
[InstCombine] add more insert-extract tests for D52439; NFC

The first attempt at this transform:
rL343407
...was reverted:
rL343458
...because it did not handle the case where we bitcast to FP.
The patch was already limited to avoid the case where we
bitcast from FP, but we might want to transform that too.

llvm-svn: 343480

6 years ago[OPENMP] Fix enum identifier, NFC.
Alexey Bataev [Mon, 1 Oct 2018 14:26:31 +0000 (14:26 +0000)]
[OPENMP] Fix enum identifier, NFC.

llvm-svn: 343479

6 years ago[X86] Create schedule classes for BTmi and BTmr instructions
Simon Pilgrim [Mon, 1 Oct 2018 14:23:37 +0000 (14:23 +0000)]
[X86] Create schedule classes for BTmi and BTmr instructions

llvm-svn: 343478

6 years ago[libomptarget-nvptx] Enable asserts in bclib
Jonas Hahnfeld [Mon, 1 Oct 2018 14:16:55 +0000 (14:16 +0000)]
[libomptarget-nvptx] Enable asserts in bclib

If the user requested LIBOMPTARGET_NVPTX_DEBUG, include asserts in
the bitcode library. Everything else will have very unpleasent
effects because asserts will appear when falling back to the static
library libomptarget-nvptx.a.

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

llvm-svn: 343477

6 years ago[libomptarget-nvptx] reduction: Determine if runtime uninitialized
Jonas Hahnfeld [Mon, 1 Oct 2018 14:14:26 +0000 (14:14 +0000)]
[libomptarget-nvptx] reduction: Determine if runtime uninitialized

Pass in the correct value of isRuntimeUninitialized() which solves
parallel reductions as reported on the mailing list.
For reference: r333285 did the same for loop scheduling.

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

llvm-svn: 343476

6 years agoFixed workaround made in https://reviews.llvm.org/D51694.
Andrey Churbanov [Mon, 1 Oct 2018 14:08:50 +0000 (14:08 +0000)]
Fixed workaround made in https://reviews.llvm.org/D51694.

Patch suggested by Kelvin Li: removed optional "kind=" part of kind-selector
for variables with long names and kind names.

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

llvm-svn: 343475

6 years ago[clangd] Add "check-clangd" target
Haojian Wu [Mon, 1 Oct 2018 14:02:02 +0000 (14:02 +0000)]
[clangd] Add "check-clangd" target

Summary:
So we don't have to run "check-clang-tools" (which builds and tests all
clang tools) to verify our clangd-related change. It'd save waiting time for
clangd developers.

check-clangd (build ~1000 files, run ~340 tests) vs check-clang-tools (build
~3000 files, run ~1000 tests).

In the future, we probably want to add similar target for other
clang-tools (e.g. clang-tidy).

Reviewers: sammccall

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

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

llvm-svn: 343474

6 years agoMove llvm util dependencies from clang-tools-extra to add_lit_target.
Haojian Wu [Mon, 1 Oct 2018 14:00:51 +0000 (14:00 +0000)]
Move llvm util dependencies from clang-tools-extra to add_lit_target.

Summary:
Address fixme in r301762. And would simplify the cmake file in
clang-tools-extra.

Reviewers: sammccall

Subscribers: mgorny, llvm-commits, cfe-commits

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

llvm-svn: 343473

6 years agoAdd support for unified_shared_memory clause on requires directive
Patrick Lyster [Mon, 1 Oct 2018 13:47:43 +0000 (13:47 +0000)]
Add support for unified_shared_memory clause on requires directive

llvm-svn: 343472

6 years ago[Interpreter] Escape backticks when dumping format entities.
Jonas Devlieghere [Mon, 1 Oct 2018 13:22:24 +0000 (13:22 +0000)]
[Interpreter] Escape backticks when dumping format entities.

Currently we reject our own default disassembly-format string because it
contains two backticks which causes everything in between to be
interpreter as an expression by the command interpreter. This patch
fixes that by escaping backticks when dumping format strings.

llvm-svn: 343471

6 years agoEscape newlines in default disassembly format.
Jonas Devlieghere [Mon, 1 Oct 2018 13:20:15 +0000 (13:20 +0000)]
Escape newlines in default disassembly format.

We can safely escape newlines in format strings because they will be
ignored by the format entity parser.

llvm-svn: 343470

6 years ago[LLVM-C] Add an accessor for the kind of a Metadata Node
Robert Widmann [Mon, 1 Oct 2018 13:15:09 +0000 (13:15 +0000)]
[LLVM-C] Add an accessor for the kind of a Metadata Node

Summary: Allows for retrieving the type of a metadata node.  Has the added benefit of ensuring that the C and C++ kind APIs stay in sync as a failure to add a corresponding LLVMMetadataKind will result in the switch in the accessor being semantically malformed.

Reviewers: whitequark, deadalnix

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 343469