platform/upstream/llvm.git
4 years ago[PowerPC][Future] Remove "unskipableSimplifyCode()" in PPCMIPeephole.cpp
Victor Huang [Mon, 27 Apr 2020 19:23:39 +0000 (14:23 -0500)]
[PowerPC][Future] Remove "unskipableSimplifyCode()" in PPCMIPeephole.cpp

"unskipableSimplifyCode()" was added to handle unsafe BL8_NOTOC instruction
when TOC was not completely removed. The function is not needed after confirming
TOC pointer is not used in a function that uses PC-Relative addressing.

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

4 years ago[InstCombine] add tests for set/clear masked bits; NFC
Sanjay Patel [Sun, 26 Apr 2020 15:49:47 +0000 (11:49 -0400)]
[InstCombine] add tests for set/clear masked bits; NFC

4 years ago[MLIR] Add getBody() method to SingleImplicitBlockTerminator op trait.
Alexander Belyaev [Mon, 27 Apr 2020 19:46:35 +0000 (21:46 +0200)]
[MLIR] Add getBody() method to SingleImplicitBlockTerminator op trait.

Many ops with this trait have `getBody()` and `getBodyBuilder()` methods defined in `extraClassDeclaration` in tablegen. `getBody()` implementation is the same accross all these ops, but `getBodyBuilder()` can return builders with varying insertion points set. In this PR, `getBody()` is moved into `SingleImplicitBlockTerminator` struct and `getBodyBuilder()` is replaced with `OpBuilder::atBlock(End|Terminator)(op.getBody);`.

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

4 years agoRecommit "Generate Callee Saved Register (CSR) related cfi directives
Wei Mi [Thu, 13 Feb 2020 17:23:27 +0000 (09:23 -0800)]
Recommit "Generate Callee Saved Register (CSR) related cfi directives
like .cfi_restore"

Insert .cfi_offset/.cfi_register when IncomingCSRSaved of current block
is larger than OutgoingCSRSaved of its previous block.

Original commit message:
https://reviews.llvm.org/D42848 only handled CFA related cfi directives but
didn't handle CSR related cfi. The patch adds the CSR part. Basically it reuses
the framework created in D42848. For each basicblock, the patch tracks which
CSR set have been saved at its CFG predecessors's exits, and compare the CSR
set with the set at its previous basicblock's exit (The previous block is the
block laid before the current block). If the saved CSR set at its previous
basicblock's exit is larger, .cfi_restore will be inserted.

The patch also generates proper .cfi_restore in epilogue to make sure the
saved CSR set is consistent for the incoming edges of each block.

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

4 years ago[clang-format] NFC clang-format the clang-format sources
mydeveloperday [Mon, 27 Apr 2020 19:41:01 +0000 (20:41 +0100)]
[clang-format] NFC clang-format the clang-format sources

Summary: In recent patches the clang-format code has become un-formatted, correct this before making additional changes

Reviewers: mitchell-stellar, sylvestre.ledru, Abpostelnicu, Wawha, jbcoe

Reviewed By: sylvestre.ledru, Abpostelnicu, jbcoe

Subscribers: cfe-commits

Tags: #clang, #clang-format

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

4 years agomake sure to not warn about unused macros from -D
Luboš Luňák [Sun, 2 Feb 2020 11:15:40 +0000 (12:15 +0100)]
make sure to not warn about unused macros from -D

If a PCH is used for compilation, SourceManager::isInMainFile()
returns true even for the "<built-in>" predefines area. Using -D
only for the TU compilation may trigger -Wunused-macros for it.
It is admitedly a bit fishy to set a macro only for a TU and not
for the PCH, but this works fine if the PCH does not use the macro
(I couldn't find a statement on this for Clang, but GCC explicitly
allows this in the docs).

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

4 years ago[MachineVerifier] retrofit iterators with range for. NFC
Nick Desaulniers [Mon, 27 Apr 2020 18:50:06 +0000 (11:50 -0700)]
[MachineVerifier] retrofit iterators with range for. NFC

Summary:
Reviewing failures identified in D78586, I was finding the identifiers
for these iterators hard to read.

Reviewers: efriedma, MaskRay, jyknight

Reviewed By: MaskRay

Subscribers: hiraditya, llvm-commits, srhines

Tags: #llvm

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

4 years ago[X86][CostModel] Update costs for vector truncate with avx512f/avx512bw.
Craig Topper [Mon, 27 Apr 2020 18:53:41 +0000 (11:53 -0700)]
[X86][CostModel] Update costs for vector truncate with avx512f/avx512bw.

All avx512 truncate instructions except vXi64->vXi32 are 2 uops
on port 5. So raise their costs to 2. Except when we have an
earlier faster sequence like pshufb for 128 bit input vectors.

Add a lower cost of 3 v16i16->v16i8 with avx512f where we can
extend to v16i32 then truncate. And a cost of 2 for avx512bw with
and without avx512vl. There we can use vpmovwb with either a ymm
or zmm input. Both of these beat masking, splitting, and using
packuswb which is our avx/avx2 codegen.

4 years ago[xray] Preserve x8 in trampoline on AArch64
Ian Levesque [Tue, 21 Apr 2020 22:44:19 +0000 (18:44 -0400)]
[xray] Preserve x8 in trampoline on AArch64

Summary: Fixes an ABI violation in the trampoline code for AArch64 that causes the indirect result register to get overwritten if the XRay handler function is complex enough to use it.

Reviewers: MaskRay, dberris, johnislarry

Subscribers: kristof.beyls, danielkiss, #sanitizers

Tags: #sanitizers

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

4 years ago[GlobalISel] Remove debug locations when emitting constants.
Davide Italiano [Mon, 27 Apr 2020 18:24:36 +0000 (11:24 -0700)]
[GlobalISel] Remove debug locations when emitting constants.

The tl;dr story is that this causes jumps in the emitted line
tables, even at `-O0`. We could at some point consider more fancy
solutions to preserve locations, but it doesn't seem to be worth
the effort for now.

<rdar://problem/62460788>

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

4 years ago[llvm-objcopy] Don't specialize the all zero p_paddr case
Fangrui Song [Fri, 24 Apr 2020 03:47:52 +0000 (20:47 -0700)]
[llvm-objcopy] Don't specialize the all zero p_paddr case

Spotted by https://reviews.llvm.org/D74755#1998673

> it looks like OrderedSegments in the function is only used to set the physical address to the virtual address when there are no physical addresses set amongst these sections.

I believe this behavior was copied from https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=6ffd79000b45e77b3625143932ffbf781b6aecab (2008-05)
The commit was made for some corner cases of very old linkers.
This special rule does not seem useful and remove it can allow us to
delete a large chunk of code.

Reviewed By: jhenderson, jakehehrlich

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

4 years agoStrip -showIncludes in getClangStripDependencyFileAdjuster()
Arthur Eubanks [Mon, 27 Apr 2020 16:14:11 +0000 (09:14 -0700)]
Strip -showIncludes in getClangStripDependencyFileAdjuster()

Summary:
Follow-up to https://reviews.llvm.org/D78836.

Also consolidate some test cases.

Reviewers: thakis

Subscribers: cfe-commits

Tags: #clang

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

4 years agoremove temporary logging again now that things are figured out
Nico Weber [Mon, 27 Apr 2020 18:00:25 +0000 (14:00 -0400)]
remove temporary logging again now that things are figured out

4 years ago[lld] Support --lto-emit-asm and --plugin-opt=emit-asm
Hongtao Yu [Wed, 1 Apr 2020 17:01:23 +0000 (10:01 -0700)]
[lld] Support --lto-emit-asm and --plugin-opt=emit-asm

Summary: The switch --plugin-opt=emit-asm can be used with the gold linker to dump the final assembly code generated by LTO in a user-friendly way. Unfortunately it doesn't work with lld. I'm hooking it up with lld. With that switch, lld emits assembly code into the output file (specified by -o) and if there are multiple input files, each of their assembly code will be emitted into a separate file named by suffixing the output file name with a unique number, respectively. The linking then stops after generating those assembly files.

Reviewers: espindola, wenlei, tejohnson, MaskRay, grimar

Reviewed By: tejohnson, MaskRay, grimar

Subscribers: pcc, emaste, inglorion, arichardson, hiraditya, MaskRay, steven_wu, dexonsmith, llvm-commits

Tags: #llvm

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

4 years agoAdd a comment to TarWriterTest.LongFilename
Nico Weber [Mon, 27 Apr 2020 17:58:53 +0000 (13:58 -0400)]
Add a comment to TarWriterTest.LongFilename

4 years ago[PowerPC][Future] Implement PC Relative Tail Calls
Stefan Pintilie [Fri, 24 Apr 2020 02:04:11 +0000 (21:04 -0500)]
[PowerPC][Future] Implement PC Relative Tail Calls

Tail Calls were initially disabled for PC Relative code because it was not safe
to make certain assumptions about the tail calls (namely that all compiled
functions no longer used the TOC pointer in R2). However, once all of the
TOC pointer references have been removed it is safe to tail call everything
that was tail called prior to the PC relative additions as well as a number of
new cases.
For example, it is now possible to tail call indirect functions as there is no
need to save and restore the TOC pointer for indirect functions if the caller
is marked as may clobber R2 (st_other=1). For the same reason it is now also
possible to tail call functions that are external.

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

4 years ago[X86][SSE] Regenerate oddsubvector.ll test checks
Simon Pilgrim [Mon, 27 Apr 2020 16:59:10 +0000 (17:59 +0100)]
[X86][SSE] Regenerate oddsubvector.ll test checks

Fixes some missed address symbol regexs

4 years ago[JITLink] Fix endianness bug fedd32e2fa36.
Lang Hames [Mon, 27 Apr 2020 17:23:47 +0000 (10:23 -0700)]
[JITLink] Fix endianness bug fedd32e2fa36.

The ByteSwap_NN functions return their result rather than modifying their
argument in-place, so we need to write the result back to CPUType here.

4 years ago[libc++] Properly handle --no-execute in the new format
Louis Dionne [Mon, 27 Apr 2020 17:37:00 +0000 (13:37 -0400)]
[libc++] Properly handle --no-execute in the new format

If --no-execute is passed, we shouldn't report XFAIL tests as passing,
or they will be considered to XPASS.

4 years agoReland D78945 TarWriter: Only use 137 of the 155 prefix bytes.
Fangrui Song [Mon, 27 Apr 2020 17:00:23 +0000 (13:00 -0400)]
Reland D78945 TarWriter: Only use 137 of the 155 prefix bytes.

With a fix to unittests/Support/TarWriterTest.cpp

This makes lld's --reproduce output more compatible with tar 1.13 and
before.  This is a very old version of tar, but it's the version in
both gnuwin and unxutils, and the cost for supporting them are very
low, so we might as well just do that.

https://bugs.chromium.org/p/chromium/issues/detail?id=1073524#c21
and onward has more details.

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

4 years ago[X86][CostModel] Improve costs for fp_to_uint/fp_to_sint for vXi8/vXi16/v2i32 results.
Craig Topper [Mon, 27 Apr 2020 17:11:02 +0000 (10:11 -0700)]
[X86][CostModel] Improve costs for fp_to_uint/fp_to_sint for vXi8/vXi16/v2i32 results.

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

4 years agoRevert "TarWriter: Only use 137 of the 155 prefix bytes."
Nico Weber [Mon, 27 Apr 2020 17:34:04 +0000 (13:34 -0400)]
Revert "TarWriter: Only use 137 of the 155 prefix bytes."

This reverts commit 90d6ed144c1352e393556a799e79da6ec3a5fab9.
Breaks check-llvm. Revert while I investigate.

4 years agoFix a memory link problem in SampleProfTest.cpp.
Wei Mi [Mon, 27 Apr 2020 17:31:25 +0000 (10:31 -0700)]
Fix a memory link problem in SampleProfTest.cpp.

4 years agoFix test without built AMDGPU
Matt Arsenault [Mon, 27 Apr 2020 17:31:49 +0000 (13:31 -0400)]
Fix test without built AMDGPU

4 years ago[mlir][spirv] Fix SPIR-V translation registration
Lei Zhang [Mon, 27 Apr 2020 15:31:24 +0000 (11:31 -0400)]
[mlir][spirv] Fix SPIR-V translation registration

'From' and 'To' should be reversed. And now we must explicitly
call the registration function given that MLIR moved away from
static registration.

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

4 years ago[lldb] Fix windows build break from 18e96a31
Pavel Labath [Mon, 27 Apr 2020 17:22:20 +0000 (19:22 +0200)]
[lldb] Fix windows build break from 18e96a31

4 years ago[mlir][linalg] Fix crash in tileAndFuseLinalgOpToParallelLoopsAndSetMarker
Lei Zhang [Mon, 27 Apr 2020 15:47:39 +0000 (11:47 -0400)]
[mlir][linalg] Fix crash in tileAndFuseLinalgOpToParallelLoopsAndSetMarker

Instead of using llvm_unreachable to guard against fusing linalg.conv,
reject fusing linalg.conv in isFusableInto.

tileLinalgOpImpl is a templated function now and it can operate on
loop.parellel. So we should avoid calling into getForInductionVarOwner
which always assumes loop.for.

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

4 years agoFix test/Misc/warning-flags.c after 5c03beefa720bddb3e3f53c595a76bce7ad50f37
Fangrui Song [Mon, 27 Apr 2020 17:18:39 +0000 (10:18 -0700)]
Fix test/Misc/warning-flags.c after 5c03beefa720bddb3e3f53c595a76bce7ad50f37

4 years ago[Polly] Fix long loop due to unsigned warparound.
Michael Kruse [Mon, 27 Apr 2020 17:08:07 +0000 (12:08 -0500)]
[Polly] Fix long loop due to unsigned warparound.

After the update to ISL to isl-0.22.1-87-gfee05a13 and its change of
isl_*_dim returning -1 instead of 0, the -1 got wrapped-around to
UINT_MAX because Polly often uses 'unsigned' type to represent
dimensions, as ISL did before this patch. This may happen in normal
executions after an out-of-quota.

Fix by catching the error-case earlier.

4 years agoTarWriter: Only use 137 of the 155 prefix bytes.
Nico Weber [Mon, 27 Apr 2020 17:00:23 +0000 (13:00 -0400)]
TarWriter: Only use 137 of the 155 prefix bytes.

This makes lld's --reproduce output more compatible with tar 1.13 and
before.  This is a very old version of tar, but it's the version in
both gnuwin and unxutils, and the cost for supporting them are very
low, so we might as well just do that.

https://bugs.chromium.org/p/chromium/issues/detail?id=1073524#c21
and onward has more details.

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

4 years ago[libc++] Quote path to the Python executable in ShTest
Louis Dionne [Mon, 27 Apr 2020 17:06:24 +0000 (13:06 -0400)]
[libc++] Quote path to the Python executable in ShTest

This is an attempt to unbreak this test on Windows, where paths contain
backslashes that are interpreted as escape characters unless quoted.

4 years ago[Matrix] Add draft specification for matrix support in Clang.
Florian Hahn [Mon, 27 Apr 2020 15:48:55 +0000 (16:48 +0100)]
[Matrix] Add draft specification for matrix support in Clang.

This patch documents the planned matrix support in Clang, based on the
draft specification discussed on cfe-dev in the 'Matrix Support in
Clang' thread.

Latest draft spec sent to cfe-dev: http://lists.llvm.org/pipermail/cfe-dev/2020-February/064742.html
Discussion thread January: http://lists.llvm.org/pipermail/cfe-dev/2020-January/064206.html
Discussion thread March: http://lists.llvm.org/pipermail/cfe-dev/2020-March/064834.html

Reviewers: rsmith, anemet, Bigcheese, dexonsmith, rjmccall

Reviewed By: rjmccall

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

4 years ago[flang][NFC] Fix gcc 9 warning in omp combined construct checks.
David Truby [Mon, 27 Apr 2020 16:56:41 +0000 (17:56 +0100)]
[flang][NFC] Fix gcc 9 warning in omp combined construct checks.

4 years ago[llvm-objdump] Print target address with evaluateMemoryOperandAddress()
Fangrui Song [Thu, 23 Apr 2020 23:06:07 +0000 (16:06 -0700)]
[llvm-objdump] Print target address with evaluateMemoryOperandAddress()

D63847 added `MCInstrAnalysis::evaluateMemoryOperandAddress()`. This patch
leverages the feature to print the target addresses for evaluable instructions.

```
-400a: movl 4080(%rip), %eax
+400a: movl 4080(%rip), %eax  # 5000 <data1>
```

This patch also deletes `MIA->isCall(Inst) || MIA->isUnconditionalBranch(Inst) || MIA->isConditionalBranch(Inst)`
which is used to guard `MCInstrAnalysis::evaluateBranch()`

Reviewed By: jhenderson, skan

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

4 years agoclang: Allow backend unsupported warnings
Matt Arsenault [Wed, 22 Apr 2020 21:17:59 +0000 (17:17 -0400)]
clang: Allow backend unsupported warnings

Currently this asserts on anything other than errors. In one
workaround scenario, AMDGPU emits DiagnosticInfoUnsupported as a
warning for functions that can't be correctly codegened, but should
never be executed.

4 years ago[llvm][NFC] Add an explicit 'ComputeFullInlineCost' API
Mircea Trofin [Thu, 23 Apr 2020 17:04:48 +0000 (10:04 -0700)]
[llvm][NFC] Add an explicit 'ComputeFullInlineCost' API

Summary:
Added getInliningCostEstimate, which is essentially what getInlineCost
computes if passed default inlining params, and  non-null ORE or
InlineParams::ComputeFullInlineCost.

Reviewers: davidxl, eraman, jdoerfert

Subscribers: hiraditya, haicheng, llvm-commits

Tags: #llvm

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

4 years ago[AMDGPU] Remove odd blank line in debug output.
Jay Foad [Mon, 27 Apr 2020 16:10:30 +0000 (17:10 +0100)]
[AMDGPU] Remove odd blank line in debug output.

4 years ago[ProfileSummary] Add partial profile annotation on IR.
Wei Mi [Tue, 21 Apr 2020 21:32:28 +0000 (14:32 -0700)]
[ProfileSummary] Add partial profile annotation on IR.

Profile and profile summary are usually read only once and then annotated
on IR. The profile summary metadata on IR should include the value of the
newly added partial profile flag, so that compilation phase like thinlto
postlink can get the full set of profile information.

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

4 years ago[lldb/unittests] Skip IPv6 test on systems which don't have IPv6 configured
Pavel Labath [Mon, 27 Apr 2020 15:15:36 +0000 (17:15 +0200)]
[lldb/unittests] Skip IPv6 test on systems which don't have IPv6 configured

Sadly IPv6 is still not present anywhere. The test was attempting to
detect&skip such hosts, but the way it did that (essentially, by calling
getaddrinfo) meant that it only detected hosts which have IPv6 support
completely compiled out. It did not do anything about hosts which have
it compiled in, but lack runtime configuration even for the ::1 loopback
address.

This patch changes the detection logic to use a new method. It does it
by attempting to bind a socket to the appropriate loopback address. That
should ensure the hosts loopback interface is fully set up. In an effort
to avoid silently skipping the test on too many hosts, the test is
fairly strict about the kind of error it expects in these cases -- it
will only skip the test when receiving EADDRNOTAVAIL. If we find other
error codes that can be reasonably returned in these situations, we can
add more of them.

The (small) change in TCPSocket.cpp is to ensure that the code correctly
propagates the error received from the OS.

4 years ago[mlir][doc] Add missing ` that breaks rendering
Lei Zhang [Mon, 27 Apr 2020 15:24:15 +0000 (11:24 -0400)]
[mlir][doc] Add missing ` that breaks rendering

4 years ago[mlir][VectorOps] Extend VectorTransfer lowering to n-D memref with minor identity map
Nicolas Vasilache [Mon, 27 Apr 2020 13:40:28 +0000 (09:40 -0400)]
[mlir][VectorOps] Extend VectorTransfer lowering to n-D memref with minor identity map

Summary: This revision extends the lowering of vector transfers to work with n-D memref and 1-D vector where the permutation map is an identity on the most minor dimensions (1 for now).

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

4 years ago[libc++abi] Assume that libcxx is checked out in the Apple build script
Louis Dionne [Mon, 27 Apr 2020 15:18:24 +0000 (11:18 -0400)]
[libc++abi] Assume that libcxx is checked out in the Apple build script

Instead of using the libc++ headers provided alongside the toolchain,
use those in the sibling libcxx directory that we know is checked out.
Before the days of the monorepo, we couldn't assume that the libc++
repository was present when building libcxxabi. Since we can now make
that assumption, it's always better to use the version of libc++ that
is in lockstep with libc++abi, to avoid subtle bugs.

4 years ago[CodeGen] Use SPLAT_VECTOR for zeroinitialiser with scalable types
David Sherwood [Mon, 27 Apr 2020 15:05:08 +0000 (16:05 +0100)]
[CodeGen] Use SPLAT_VECTOR for zeroinitialiser with scalable types

Adding tests that I forgot to add as part of a previous change:

https://reviews.llvm.org/D78636

4 years ago[MLIR][NFC] Organize the ordering in LLVM.h
Tres Popp [Mon, 27 Apr 2020 10:11:27 +0000 (12:11 +0200)]
[MLIR][NFC] Organize the ordering in LLVM.h

Summary:
Order classes by purpose and alphabetically to make it slightly easier
to read through the file.

Reviewers: ftynse!

Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, grosul1, frgossen, Kayjukh, llvm-commits

Tags: #llvm

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

4 years agoFix the check for regparm in FunctionType::ExtInfo
Momchil Velikov [Mon, 27 Apr 2020 14:18:06 +0000 (15:18 +0100)]
Fix the check for regparm in FunctionType::ExtInfo

`getHasRegParm()` was working under the assumption that the RegParm
bits are the last field, which is no longer true, after adding the
`NoCfCheck` and `CmseNSCall` fields.

This causes a spurious "regparm 0" attribute to appear when a function
type is declared with either `__attribute__((nocf_check))` or
`__attribute__((cmse_nonsecure_call))`.

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

4 years ago[CodeGen] Use SPLAT_VECTOR for zeroinitialiser with scalable types
David Sherwood [Mon, 27 Apr 2020 14:25:23 +0000 (15:25 +0100)]
[CodeGen] Use SPLAT_VECTOR for zeroinitialiser with scalable types

Summary:
When generating code for the LLVM IR zeroinitialiser operation, if
the vector type is scalable we should be using SPLAT_VECTOR instead
of BUILD_VECTOR.

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

4 years agoRevert "recommit c77a4078e01033aa2206c31a579d217c8a07569b"
Dmitri Gribenko [Mon, 27 Apr 2020 14:41:35 +0000 (16:41 +0200)]
Revert "recommit c77a4078e01033aa2206c31a579d217c8a07569b"

This reverts commit b46b1a916d44216f0c70de55ae2123eb9de69027. It broke
overload resolution for operator 'new' -- see reproducer in
https://reviews.llvm.org/D77954.

4 years ago[ARM] Allow fma in tail predicated loops
David Green [Mon, 27 Apr 2020 10:17:11 +0000 (11:17 +0100)]
[ARM] Allow fma in tail predicated loops

There are some intrinsics like this that currently block tail
predication, but should be fine. This allows fma through, as the one
that I ran into. There may be others that need the same treatment but
I've only done this one here.

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

4 years ago[lldb][cmake] Move the remove_module_flags call to the right place in debugserver...
Raphael Isemann [Mon, 27 Apr 2020 14:03:37 +0000 (16:03 +0200)]
[lldb][cmake] Move the remove_module_flags call to the right place in debugserver's CMakeLists

This code should always be executed, not just when building the debugserver
on its own. Fixes the modules build when building LLVM+LLDB together.

4 years ago[libc++] Create a small DSL for defining Lit features and parameters
Louis Dionne [Fri, 17 Apr 2020 13:19:49 +0000 (09:19 -0400)]
[libc++] Create a small DSL for defining Lit features and parameters

This allows defining Lit features that can be enabled or disabled based
on compiler support, and parameters that are passed on the command line.

The main benefits are:
- Feature detection is entirely based on the substitutions provided in
  the TestingConfig object, which is simpler and decouples it from the
  complicated compiler emulation infrastructure.
- The syntax is declarative, which makes it easy to see what features
  and parameters are accepted by the test suite. This is significantly
  less entangled than the current config.py logic.
- Since feature detection is based on substitutions, it works really
  well on top of the new format, and custom Lit configurations can be
  created easily without being based on `config.py`.

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

4 years ago[lldb] Remove NativeProcessDarwin
Pavel Labath [Mon, 27 Apr 2020 13:22:05 +0000 (15:22 +0200)]
[lldb] Remove NativeProcessDarwin

this is dead and non-functional code that hasn't been touched (modulo
refactors) since it was checked in (as an "NFC, with no review and
tests) in 2016.

Anyone interested in adding darwin support to lldb-server can look this
up in git history.

4 years ago[lld][macho] Fix implicit dependency on DenseMap.h include
Simon Pilgrim [Mon, 27 Apr 2020 13:05:29 +0000 (14:05 +0100)]
[lld][macho] Fix implicit dependency on DenseMap.h include

It was depending on CachedHashString.h providing the include.

4 years agoRevert "[gn build] (manually) merge 811c0c9eb46"
Nico Weber [Mon, 27 Apr 2020 13:00:21 +0000 (09:00 -0400)]
Revert "[gn build] (manually) merge 811c0c9eb46"

This reverts commit b160e9e5394ca1f52a94b5f44c3610567b7bb420.
811c0c9eb46 was reverted in 96717125e852.

4 years ago[lldb] Adjust TestExec code to be closer to real world code
Raphael Isemann [Mon, 27 Apr 2020 12:38:32 +0000 (14:38 +0200)]
[lldb] Adjust TestExec code to be closer to real world code

Summary:
For some reason the TestExec test on the macOS bots randomly fails with this error:
```
output: * thread #2, stop reason = EXC_BAD_ACCESS (code=1, address=0x108e66000)
  * frame #0: 0x0000000108e66000
[...]
  File "/Users/buildslave/jenkins/workspace/lldb-cmake/llvm-project/lldb/test/API/functionalities/exec/TestExec.py", line 25, in test_hitting_exec
    self.do_test(False)
  File "/Users/buildslave/jenkins/workspace/lldb-cmake/llvm-project/lldb/test/API/functionalities/exec/TestExec.py", line 113, in do_test
    "Stopped at breakpoint in exec'ed process.")
AssertionError: False is not True : Stopped at breakpoint in exec'ed process.
Config=x86_64-/Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/bin/clang-11
```

I don't know why the test program is failing and I couldn't reproduce this problem on my own.
This patch is a stab in the dark that just tries to make the test code more similar to code which
we would expect in a user program to make whatever part of macOS happy that is currently
not liking our code.

The actual changes are:
* We pass in argv[0] that is describing otherprog path instead of the current argv[0].
* We pass in a non-null envp (which anyway doesn't seem to be allowed on macOS man page).

Reviewers: labath, JDevlieghere

Reviewed By: labath

Subscribers: abidh, lldb-commits

Tags: #lldb

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

4 years agoCachedHashString.h - remove unnecessary includes. NFC.
Simon Pilgrim [Sun, 26 Apr 2020 21:21:11 +0000 (22:21 +0100)]
CachedHashString.h - remove unnecessary includes. NFC.
We don't need the full DenseMap.h just DenseMapInfo.h

4 years ago[opt] PassPrinters.h - remove unused includes + forward declarations. NFC.
Simon Pilgrim [Sun, 26 Apr 2020 21:18:50 +0000 (22:18 +0100)]
[opt] PassPrinters.h - remove unused includes + forward declarations. NFC.

4 years ago[opt] NewPMDriver.h - remove unused LLVMContext forward declaration. NFC.
Simon Pilgrim [Sun, 26 Apr 2020 21:16:29 +0000 (22:16 +0100)]
[opt] NewPMDriver.h - remove unused LLVMContext forward declaration. NFC.

4 years agoRevert "[analyzer] On-demand parsing capability for CTU"
Dmitri Gribenko [Mon, 27 Apr 2020 12:24:34 +0000 (14:24 +0200)]
Revert "[analyzer] On-demand parsing capability for CTU"

This reverts commit 811c0c9eb462d1fef6ab6908aab7881e5c4f5fbf. It broke
multiple buildbots.

4 years ago[clang-tidy] modernize-use-using: Fix broken fixit with InjectedClassName
Matthias Gehre [Sun, 12 Apr 2020 18:06:31 +0000 (20:06 +0200)]
[clang-tidy] modernize-use-using: Fix broken fixit with InjectedClassName

Summary:
Before this PR, `modernize-use-using` would transform the typedef in
```
template <int A>
struct InjectedClassName {
  typedef InjectedClassName b;
};
```
into `using b = InjectedClassName<A>;` and
```
template <int>
struct InjectedClassNameWithUnnamedArgument {
  typedef InjectedClassNameWithUnnamedArgument b;
};
```
into `using b = InjectedClassNameWithUnnamedArgument<>;`.
The first fixit is surprising because its different than the code
before, but the second fixit doesn't even compile.

This PR adds an option to the TypePrinter to print InjectedClassNameType without
template parameters (i.e. as written).

Reviewers: aaron.ballman, alexfh, hokein, njames93

Subscribers: xazax.hun, cfe-commits

Tags: #clang

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

4 years ago[clang] Remove NFC overload in ASTImporterTest
Raphael Isemann [Mon, 27 Apr 2020 12:10:36 +0000 (14:10 +0200)]
[clang] Remove NFC overload in ASTImporterTest

This overload is just an artifact from the original version of the patch, but
doesn't have any functional purpose.

4 years ago[mlir] Fixed warning related to unused variable in Liveness.
Marcel Koester [Mon, 27 Apr 2020 10:22:24 +0000 (12:22 +0200)]
[mlir] Fixed warning related to unused variable in Liveness.

The latest changes of the Liveness analysis caused a warning related to an
unused variable. This commit solves this warning.

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

4 years agoFix modules build after introduction of PassSupport.h include check
Raphael Isemann [Mon, 27 Apr 2020 11:51:22 +0000 (13:51 +0200)]
Fix modules build after introduction of PassSupport.h include check

D78815 added a check that ensures that PassSupport.h and PassAnalysisSupport.h
aren't included directly. However, as compiling this header into a module will
try to parse it with a clean preprocessor state, this check is also triggered
there. The check seems to make sense and it seems that compiling this header
into its own module is a mistake, so this patch makes those two headers
textual in the modulemap.

4 years ago[X86][SSE] getFauxShuffle - account for PEXTW/PEXTB implicit zero-extension
Simon Pilgrim [Mon, 27 Apr 2020 11:46:38 +0000 (12:46 +0100)]
[X86][SSE] getFauxShuffle - account for PEXTW/PEXTB implicit zero-extension

The insert(truncate/extend(extract(vec0,c0)),vec1,c1) case in rGacbc5ede99 wasn't combining the 'mineltsize' with the src vector elt size which may be smaller due to implicit extension during extraction.

Reduced from test case provided by @mstorsjo

4 years ago[NFC][CostModel] Refactor getCastInstrCost
Sam Parker [Mon, 27 Apr 2020 11:41:30 +0000 (12:41 +0100)]
[NFC][CostModel] Refactor getCastInstrCost

Move ZExt/SExt load handling into the BasicTTI switch statement.

4 years ago[flang] Semantic checks for OpenMP combined constructs.
David Truby [Thu, 9 Apr 2020 17:54:28 +0000 (18:54 +0100)]
[flang] Semantic checks for OpenMP combined constructs.

Summary:
This includes a refactor of the existing combined construct checks
that were present, as well as adding the remaining combined constructs
that had not been implemented yet.

Reviewers: jdoerfert

Subscribers: yaxunl, guansong, llvm-commits

Tags: #llvm

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

4 years ago[flang] Fix handling of files without terminating newlines.
David Truby [Tue, 21 Apr 2020 18:45:43 +0000 (19:45 +0100)]
[flang] Fix handling of files without terminating newlines.

Reviewers: sscalpone

Subscribers: llvm-commits

Tags: #llvm

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

4 years ago[ASTImporter] Also import overwritten file buffers
Raphael Isemann [Mon, 27 Apr 2020 08:06:56 +0000 (10:06 +0200)]
[ASTImporter] Also import overwritten file buffers

Summary:
Overwritten file buffers are at the moment ignored when importing and
instead only the underlying file buffer is imported.

This patch fixes this by not going to the underlying file entry if the file has
an overwritten buffer.

Reviewers: martong, a.sidorin, shafik

Reviewed By: martong, shafik

Subscribers: rnkovacs

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

4 years ago[SveEmitter] IsInsertOp1SVALL and builtins for svqdec[bhwd] and svqinc[bhwd]
Sander de Smalen [Sun, 26 Apr 2020 11:47:17 +0000 (12:47 +0100)]
[SveEmitter] IsInsertOp1SVALL and builtins for svqdec[bhwd] and svqinc[bhwd]

Some ACLE builtins leave out the argument to specify the predicate
pattern, which is expected to be expanded to an SV_ALL pattern.

This patch adds the flag IsInsertOp1SVALL to insert SV_ALL as the
second operand.

Reviewers: efriedma, SjoerdMeijer

Reviewed By: SjoerdMeijer

Tags: #clang

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

4 years ago[gn build] (manually) merge 811c0c9eb46
Nico Weber [Mon, 27 Apr 2020 10:39:33 +0000 (06:39 -0400)]
[gn build] (manually) merge 811c0c9eb46

4 years ago[Analyzer] Include typedef statements in CFG build.
Balázs Kéri [Mon, 27 Apr 2020 07:45:38 +0000 (09:45 +0200)]
[Analyzer] Include typedef statements in CFG build.

Summary:
Array size expressions in typedef statements with a VLA
(variable-length array) are handled from now as in plain
(non-typedef) VLA declarations.
Type-aliases with VLA are handled too
(but main focus is on C code).

Reviewers: Szelethus, aaron.ballman, NoQ, xazax.hun

Reviewed By: aaron.ballman, xazax.hun

Subscribers: rnkovacs, NoQ, efriedma, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, gamesh411, Charusso, martong, ASDenysPetrov, cfe-commits

Tags: #clang

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

4 years agoAdd the gsl::Pointer/gsl::Owner combo to ArrayRef and SmallVector so it can diagnose...
Benjamin Kramer [Mon, 27 Apr 2020 10:31:07 +0000 (12:31 +0200)]
Add the gsl::Pointer/gsl::Owner combo to ArrayRef and SmallVector so it can diagnose this common combo.

4 years ago[mlir] Extended Alloc and Dealloc operations with memory-effect traits.
Julian Gross [Wed, 22 Apr 2020 09:22:43 +0000 (11:22 +0200)]
[mlir] Extended Alloc and Dealloc operations with memory-effect traits.

Extended standard Alloc and Dealloc operations with memory-effect traits.

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

4 years ago[NFC] UnifyLoopExits: correctly skip expensive checks
Sameer Sahasrabuddhe [Mon, 27 Apr 2020 09:40:35 +0000 (15:10 +0530)]
[NFC] UnifyLoopExits: correctly skip expensive checks

4 years ago[MLIR] Propagate input side effect information
Tres Popp [Thu, 23 Apr 2020 16:13:44 +0000 (18:13 +0200)]
[MLIR] Propagate input side effect information

Summary:
Previously operations like std.load created methods for obtaining their
effects but did not inherit from the SideEffect interfaces when their
parameters were decorated with the information. The resulting situation
was that passes had no information on the SideEffects of std.load/store
and had to treat them more cautiously. This adds the inheritance
information when creating the methods.

As a side effect, many tests are modified, as they were using std.load
for testing and this oepration would be folded away as part of pattern
rewriting. Tests are modified to use store or to reutn the result of the
std.load.

Reviewers: mravishankar, antiagainst, nicolasvasilache, herhut, aartbik, ftynse!

Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, csigg, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, bader, grosul1, frgossen, Kayjukh, llvm-commits

Tags: #llvm

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

4 years ago[flang][docs] Doxygen support in flang.
sameeran joshi [Mon, 27 Apr 2020 09:22:36 +0000 (14:52 +0530)]
[flang][docs] Doxygen support in flang.

    Summary:
    Added support for doxygen-style documentation generation from source code.
    Added -DLLVM_ENABLE_DOXYGEN=ON -DFLANG_INCLUDE_DOCS=ON flags to cmake.
    Added the target doxygen-flang for building doxygen
    Updated README.txt

    Reviewers: DavidTruby, richard.barton.arm, sscalpone,  mehdi_amini, jdoerfert

    Reviewed By: DavidTruby, richard.barton.arm, sscalpone

    Previous review: https://github.com/flang-compiler/f18/pull/1065

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

4 years ago[analyzer] On-demand parsing capability for CTU
Endre Fülöp [Mon, 27 Apr 2020 08:13:34 +0000 (10:13 +0200)]
[analyzer] On-demand parsing capability for CTU

Summary:
Add an option to enable on-demand parsing of needed ASTs during CTU analysis.
Two options are introduced. CTUOnDemandParsing enables the feature, and
CTUOnDemandParsingDatabase specifies the path to a compilation database, which
has all the necessary information to generate the ASTs.

Reviewers: martong, balazske, Szelethus, xazax.hun

Subscribers: ormris, mgorny, whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, Charusso, steakhal, cfe-commits

Tags: #clang

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

4 years ago[ARM] Replace hasNoSchedulingInfo with UnsupportedFeatures in the A57 schedule
David Green [Mon, 27 Apr 2020 08:19:06 +0000 (09:19 +0100)]
[ARM] Replace hasNoSchedulingInfo with UnsupportedFeatures in the A57 schedule

hasNoSchedulingInfo should be used for Pseudo's and other instructions
that are never expected to be scheduled. This removes the flag from new
ARM instructions, instead fixing the A57 schedule by marking the related
architecture features as unsupported.

4 years ago[ARM] Only produce qadd8b under hasV6Ops
David Green [Sun, 26 Apr 2020 20:58:58 +0000 (21:58 +0100)]
[ARM] Only produce qadd8b under hasV6Ops

When compiling for a arm5te cpu from clang, the +dsp attribute is set.
This meant we could try and generate qadd8 instructions where we would
end up having no pattern. I've changed the condition here to be hasV6Ops
&& hasDSP, which is what other parts of ARMISelLowering seem to use for
similar instructions.

Fixed PR45677.

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

4 years ago[AST] Preserve the invalid initializer for auto VarDecl.
Haojian Wu [Mon, 27 Apr 2020 08:04:13 +0000 (10:04 +0200)]
[AST] Preserve the invalid initializer for auto VarDecl.

Fixes https://github.com/clangd/clangd/issues/330

Reviewers: sammccall

Tags: #clang

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

4 years ago[libc++] Add UNSUPPORTED markup for shared_mutex and shared_timed_mutex tests
Louis Dionne [Mon, 27 Apr 2020 08:09:54 +0000 (04:09 -0400)]
[libc++] Add UNSUPPORTED markup for shared_mutex and shared_timed_mutex tests

The tests were previously disabled entirely whenever availability markup
was enabled. Instead, enable the tests but add the proper UNSUPPORTED
markup.

4 years agoExplicitly tell Clang to output to stdout in a test that runs FileCheck
Dmitri Gribenko [Mon, 27 Apr 2020 08:03:45 +0000 (10:03 +0200)]
Explicitly tell Clang to output to stdout in a test that runs FileCheck

4 years ago[lldb][TypeSystemClang] Desugar an elaborated type before checking if it's a typedef...
Aleksandr Urakov [Fri, 24 Apr 2020 13:09:06 +0000 (16:09 +0300)]
[lldb][TypeSystemClang] Desugar an elaborated type before checking if it's a typedef or getting a typedefed type

Summary:
Sometimes a result variable of some expression can be presented as an elaborated
type. In this case the methods `IsTypedefType()` and `GetTypedefedType()` of
`SBType` didn't work. This patch fixes that.

I didn't find the test for these API methods, so I added a basic test for this
too.

Reviewers: aprantl, teemperor, labath, leonid.mashinskiy

Reviewed By: teemperor

Subscribers: labath, lldb-commits

Tags: #lldb

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

4 years ago[MLIR] Remove document references to gpu.kernel_module and gpu.kernel.
Tres Popp [Fri, 24 Apr 2020 10:33:47 +0000 (12:33 +0200)]
[MLIR] Remove document references to gpu.kernel_module and gpu.kernel.

Summary:
These have been replaced from attributes to operations gpu.module and
gpu.func respectively.

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

4 years ago[lldb] Improve error message when --func-regex parameter for the breakpoint command...
Raphael Isemann [Mon, 27 Apr 2020 07:11:45 +0000 (09:11 +0200)]
[lldb] Improve error message when --func-regex parameter for the breakpoint command is invalid

Summary:
Currently the breakpoint command is prompting the user to file a bug report if the provided regex is invalid:
```
(lldb) rbreak *foo
error: Function name regular expression could not be compiled: "Inconvertible error value. An error has occurred that could not be converted to a known std::error_code. Please file a bug. repetition-operator operand invalid"
```

The reason is simply that we are using the wrong StringError constructor (the one with the error code as the first parameter
is also printing the string version of the error code, and the inconvertible error code is just an invalid place holder code with
that description). Switching the StringError constructor parameters will only print the error message we get from the regex
engine when we convert the error into a string.

I checked the rest of the code base and I couldn't find the same issue anywhere else.

Fixes rdar://62233561

Reviewers: JDevlieghere

Reviewed By: JDevlieghere

Subscribers: lldb-commits

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

4 years ago[libc++] Mark C++20 Synchronization Library tests as unsupported in C++11
Louis Dionne [Mon, 27 Apr 2020 07:37:51 +0000 (03:37 -0400)]
[libc++] Mark C++20 Synchronization Library tests as unsupported in C++11

The various headers comprising the C++20 Synchronization Library only
contain something in C++ >= 14, not C++ >= 11.

4 years ago[mlir] Don't allocate an operand storage if the operation is known to never have...
River Riddle [Mon, 27 Apr 2020 04:28:32 +0000 (21:28 -0700)]
[mlir] Don't allocate an operand storage if the operation is known to never have operands

Certain classes of operations, such as FuncOp, are known to never have operands. This revision adds a bit to operation to detect this case and avoid allocating the unnecessary operand storage. This saves 1 word for each instance of these operations.

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

4 years ago[mlir] Optimize operand storage such that all operations can have resizable operand...
River Riddle [Mon, 27 Apr 2020 04:28:22 +0000 (21:28 -0700)]
[mlir] Optimize operand storage such that all operations can have resizable operand lists

This revision refactors the structure of the operand storage such that there is no additional memory cost for resizable operand lists until it is required. This is done by using two different internal representations for the operand storage:
* One using trailing operands
* One using a dynamically allocated std::vector<OpOperand>

This allows for removing the resizable operand list bit, and will free up APIs from needing to workaround non-resizable operand lists.

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

4 years ago[mlir] Optimize the allocation of resizable operand lists
River Riddle [Mon, 27 Apr 2020 04:28:11 +0000 (21:28 -0700)]
[mlir] Optimize the allocation of resizable operand lists

This revision optimizes resizable operand lists by allocating them in the same location as the trailing operands. This has numerous benefits:
* If the operation has at least one operand at construction time, there is 0 additional memory overhead to the resizable storage.
* There is less pointer arithmetic necessary as the resizable storage is now only used when the operands are dynamically allocated.

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

4 years ago[X86][CostModel] Fix typos in test. NFC
Craig Topper [Mon, 27 Apr 2020 04:08:17 +0000 (21:08 -0700)]
[X86][CostModel] Fix typos in test. NFC

4 years ago[NFC][DAGCombine] Adding three helper functions and change the getNegatedExpression...
QingShan Zhang [Mon, 27 Apr 2020 03:46:42 +0000 (03:46 +0000)]
[NFC][DAGCombine] Adding three helper functions and change the getNegatedExpression to negateExpression

This is a NFC patch for D77319. The idea is to hide the getNegatibleCost inside the getNegatedExpression()
to have it return null if the cost is expensive, and add some helper function for easy to use. And
rename the old getNegatedExpression to negateExpression to avoid the semantic conflict.

Reviewed By: RKSimon

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

4 years ago[AMDGPU] Expose llvm fence instruction as clang intrinsic
Saiyedul Islam [Mon, 27 Apr 2020 02:56:03 +0000 (08:26 +0530)]
[AMDGPU] Expose llvm fence instruction as clang intrinsic

Expose llvm fence instruction as clang builtin for AMDGPU target

__builtin_amdgcn_fence(unsigned int memoryOrdering, const char *syncScope)

The first argument of this builtin is one of the memory-ordering specifiers
__ATOMIC_ACQUIRE, __ATOMIC_RELEASE, __ATOMIC_ACQ_REL, or __ATOMIC_SEQ_CST
following C++11 memory model semantics. This is mapped to corresponding
LLVM atomic memory ordering for the fence instruction using LLVM atomic C
ABI. The second argument is an AMDGPU-specific synchronization scope
defined as string.

Reviewed By: sameerds

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

4 years ago[llvm-objcopy][MachO] Fix segment's vmsize
Alexander Shaposhnikov [Fri, 24 Apr 2020 07:58:27 +0000 (00:58 -0700)]
[llvm-objcopy][MachO] Fix segment's vmsize

This diff fixes the calculation of the field vmsize
in LC_SEGMENT/LC_SEGMENT_64 load commands.

Test plan: make check-all

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

4 years ago[X86] Add cost model tests for conversions between <2 x float> and integers.
Craig Topper [Sun, 26 Apr 2020 22:04:49 +0000 (15:04 -0700)]
[X86] Add cost model tests for conversions between <2 x float> and integers.

For all but 2 x i32 we were starting from 4 x float.

4 years ago[X86] Add cost table entry for v2i32->v2f64 fp_to_uint with avx512.
Craig Topper [Sun, 26 Apr 2020 21:02:21 +0000 (14:02 -0700)]
[X86] Add cost table entry for v2i32->v2f64 fp_to_uint with avx512.

We're currently getting this from the default implementation. But
I don't like how the cost model came to this answer and I might
be making some changes there.

4 years ago[clangd] Strip /showIncludes in clangd compile commands
Arthur Eubanks [Fri, 24 Apr 2020 23:08:36 +0000 (16:08 -0700)]
[clangd] Strip /showIncludes in clangd compile commands

In command lines with /showIncludes, clangd would output includes to stdout, breaking clients.

Summary: Fixes https://github.com/clangd/clangd/issues/322.

Reviewers: sammccall, kadircet

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

Tags: #clang

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

4 years ago[TableGen] Simplify with TGParser::consume()
Fangrui Song [Sun, 26 Apr 2020 22:16:07 +0000 (15:16 -0700)]
[TableGen] Simplify with TGParser::consume()

4 years ago[clangd] Fold buildAST into ParsedAST::build. NFCI
Sam McCall [Sun, 26 Apr 2020 22:13:56 +0000 (00:13 +0200)]
[clangd] Fold buildAST into ParsedAST::build. NFCI

4 years ago[mlir][DenseStringAttr] Fix support for splat detection and iteration
River Riddle [Sun, 26 Apr 2020 20:52:50 +0000 (13:52 -0700)]
[mlir][DenseStringAttr] Fix support for splat detection and iteration

This revision also adds proper tests for splat detection.

4 years ago[ViewCFG] Allow printing edge weights in debuggers
Hongtao Yu [Sun, 26 Apr 2020 18:22:16 +0000 (11:22 -0700)]
[ViewCFG] Allow printing edge weights in debuggers

Summary:
Extending the Function::viewCFG prototypes to allow for printing block probability info in form of .dot files during debugging.

Also avoiding an AV when no BFI/BPI available.

Reviewers: wenlei, davidxl, knaumov

Reviewed By: wenlei, davidxl

Subscribers: MaskRay, hiraditya, llvm-commits

Tags: #llvm

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

4 years agoAMDGPU: Add some missing atomics tests
Matt Arsenault [Sun, 26 Apr 2020 15:11:43 +0000 (11:11 -0400)]
AMDGPU: Add some missing atomics tests

We had no FP atomic load/store coverage.