Martin Storsjö [Wed, 5 Feb 2020 11:29:48 +0000 (13:29 +0200)]
Partially revert
c1c9819ef91aab51b5a23fb3027adac5a2f551cc
Revert the part of that change that broke the
test Passes/./PluginsTests/PluginsTests.LoadPlugin.
Martin Storsjö [Sat, 1 Feb 2020 20:46:27 +0000 (22:46 +0200)]
[CMake] Add missing component dependencies, to fix building for mingw with BUILD_SHARED_LIBS
Differential Revision: https://reviews.llvm.org/D73840
Haojian Wu [Wed, 5 Feb 2020 11:03:29 +0000 (12:03 +0100)]
[clangd] Pull out a isProtoFile function.
Reviewers: kadircet
Reviewed By: kadircet
Subscribers: merge_guards_bot, mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D73780
Raphael Isemann [Wed, 5 Feb 2020 10:44:28 +0000 (11:44 +0100)]
[lldb] Ignore type sugar in TypeSystemClang::GetPointerType
Summary:
Currently having a typedef for ObjC types is breaking member access in LLDB:
```
typedef NSString Str;
NSString *s; s.length; // OK
Str *s; s.length; // Causes: member reference base type 'Str *' (aka 'NSString *') is not a structure or union
```
This works for NSString as there the type building from `NSString` -> `NSString *` will correctly
build a ObjCObjectPointerType (which is necessary to make member access with a dot possible),
but for the typedef the `Str` -> `Str *` conversion will produce an incorrect PointerType. The reason
for this is that our check in TypeSystemClang::GetPointerType is not desugaring the base type,
which causes that `Str` is not recognised as a type to a `ObjCInterface` as the check only sees the
typedef sugar that was put around it. This causes that we fall back to constructing a PointerType
instead which does not allow member access with the dot operator.
This patch just changes the check to look at the desugared type instead.
Fixes rdar://
17525603
Reviewers: shafik, mib
Reviewed By: mib
Subscribers: mib, JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D73952
Sebastian Neubauer [Thu, 23 Jan 2020 13:58:38 +0000 (14:58 +0100)]
[AMDGPU] Fix lowering a16 image intrinsics
scalar_to_vector takes only one argument, not two.
The a16 tests now also check the packing of coordinates into registers
Differential Revision: https://reviews.llvm.org/D73482
Sebastian Neubauer [Wed, 29 Jan 2020 13:04:56 +0000 (14:04 +0100)]
[AMDGPU] Use v3f32 type in image instructions
This should lower the amount of used registers for gfx9.
I updated some of the changed tests with the update script because
changing them by hand is tedious.
Differential Revision: https://reviews.llvm.org/D73884
Georgii Rymar [Mon, 3 Feb 2020 14:10:36 +0000 (17:10 +0300)]
[yaml2obj][obj2yaml] - Simplify format of the SHT_LLVM_ADDRSIG section.
Previously the description allowed to describe symbols with use of
`Name` and `Index` keys. This patch removes them and now it is still
possible to use either names or symbol indexes, but the code is simpler
and the format is slightly different.
Such a change will be useful for another patches, e.g:
https://reviews.llvm.org/D73788#inline-671077
Differential revision: https://reviews.llvm.org/D73888
Kadir Cetinkaya [Wed, 5 Feb 2020 09:21:26 +0000 (10:21 +0100)]
[clangd] Use printf instead of `echo -e` to be compliant with dash
Djordje Todorovic [Wed, 5 Feb 2020 08:50:05 +0000 (09:50 +0100)]
[DebugInfo] Avoid the call site param for mem instrs with multiple defs
We currently only handle mem instructions with a single define.
Avoid the call site parameter debug info when we find the case with
multiple defs, rather than throwing an assert.
Differential Revision: https://reviews.llvm.org/D73954
Kadir Cetinkaya [Wed, 5 Feb 2020 08:55:56 +0000 (09:55 +0100)]
[clangd] Preserve -nostdinc and --sysroot when calling query driver
Solves this issue: https://github.com/clangd/clangd/issues/157
This is my first contribution to an llvm project, so I hope I'm doing it right!
Patch by @topisani (Tobias Pisani)!
Reviewers: kadircet, klimek
Differential Revision: https://reviews.llvm.org/D73811
Craig Topper [Tue, 4 Feb 2020 07:35:16 +0000 (23:35 -0800)]
[X86] Add a DAG combine for (i32 (sext (i8 (x86isd::setcc_carry)))) -> (i32 (x86isd::setcc_carry)) and remove isel patterns.
Same for any_extend though we don't have coverage for that.
The test changes are because isel didn't check one use of the
setcc_carry. So in isel we would end up with two different
sized setcc_carry instructions. And since it clobbers
the flags we would need to recreate the flags for the second
instruction.
This code handles additional uses by truncating the new wide
setcc_carry back to the original size for those uses.
Petr Hosek [Fri, 31 Jan 2020 22:53:07 +0000 (14:53 -0800)]
[CMake] Passthrough CMAKE_SYSTEM_NAME to default builtin and runtimes target
When building the default builtin and runtimes target, set the
CMAKE_SYSTEM_NAME to the current one. This is not necessary on
Linux and Darwin, but it appears to be necessary on Windows,
otherwise CMake fails.
Differential Revision: https://reviews.llvm.org/D73811
Petr Hosek [Tue, 28 Jan 2020 03:20:02 +0000 (19:20 -0800)]
[CMake][compiler-rt] Replace Windows backslashes with CMake ones
XRay builds uses llvm-config to obtain the ldflags and libs and then
passes those to CMake. Unfortunately, this breaks on Windows because
CMake tries to interpret backslashes followed by certain characters
as flags. We need to rewrite these into forward slashes that are used
by CMake (even on Windows).
Differential Revision: https://reviews.llvm.org/D73523
Paula Toth [Wed, 5 Feb 2020 05:41:30 +0000 (21:41 -0800)]
Remove leftover artifacts from use of gtest.
Reviewers: abrachet
Reviewed By: abrachet
Subscribers: mgorny, MaskRay, libc-commits
Tags: #libc-project
Differential Revision: https://reviews.llvm.org/D74008
Jan Vesely [Wed, 5 Feb 2020 00:27:19 +0000 (19:27 -0500)]
AMDGPU/EG,CM: Implement fsqrt using recip(rsqrt(x)) instead of x * rsqrt(x)
The old version might be faster on EG (RECIP_IEEE is Trans only),
but it'd need extra corner case checks.
This gives correct corner case behaviour and saves a register.
Fixes OCL CTS sqrt test (1-thread, scalar) on Turks.
Reviewer: arsenm
Differential Revision: https://reviews.llvm.org/D74017
Thomas Lively [Sat, 18 Jan 2020 02:28:43 +0000 (18:28 -0800)]
[WebAssembly] Add experimental multivalue calling ABI
Summary:
For now, this ABI simply expands all possible aggregate arguments and
returns all possible aggregates directly. This ABI will change rapidly
as we prototype and benchmark a new ABI that takes advantage of
multivalue return and possibly other changes from the MVP ABI.
Reviewers: aheejin, dschuff
Subscribers: sbc100, jgravelle-google, sunfish, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D72972
Thomas Lively [Mon, 3 Feb 2020 22:37:10 +0000 (14:37 -0800)]
Revert "[WebAssembly][InstrEmitter] Foundation for multivalue call lowering"
Summary:
This reverts commit
3ef169e586f4d14efe690c23c878d5aa92a80eb5. The
purpose of this commit was to allow stack machines to perform
instruction selection for instructions with variadic defs. However,
MachineInstrs fundamentally cannot support variadic defs right now, so
this change does not turn out to be useful.
Depends on D73927.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73928
Jason Molenda [Wed, 5 Feb 2020 03:43:33 +0000 (19:43 -0800)]
Enhance debugserver's err reporting on attach fails
Explicitly check for a request to attach to a pid that doesn't
exist, to attach to a pid that is already being debugged, unify the
SIP process check, and an attempt at checking if developer mode is
enabled on the system (which isn't working in debugserver, for some
reason; I can't get the authorization record which should be an
unprivileged operation and works in a standalone program I wrote).
I'll debug the developer mode check later, but I wanted to land it
along with everything else; right now it will claim that developer
mode is always enabled so it's harmless to include as-is.
Kern Handa [Wed, 5 Feb 2020 03:42:17 +0000 (03:42 +0000)]
[mlir] Mark the MLIR tools for installation in CMake
This binplaces `mlir-translate`, `mlir-cuda-runner`, and `mlir-cpu-runner` when building the CMake install target.
Differential Revision: https://reviews.llvm.org/D73986
Matt Arsenault [Tue, 28 Jan 2020 15:26:52 +0000 (10:26 -0500)]
AMDGPU: Correct memory size for image intrinsics
This was incorrectly rounding up to the next power of 2. v4f32 was
rounding up to v8f32, which was just wrong. There are also v3i16/v3f16
available in MVT, so we don't even need to round the f16 cases
anymore. Additionally, this field is really an EVT so we don't even
need to consider this.
Also switch some asserts to return invalid. We should have an IR
verifier for these intrinsic return types, but for now it's better to
not assert on IR that passes the verifier.
This should also probably be fixed to consider that dmask is really
eliminating some of the loaded components.
David Blaikie [Wed, 5 Feb 2020 03:25:47 +0000 (19:25 -0800)]
DebugInfo: Hash DW_OP_convert in loclists when using Split DWARF
Originally committed in:
1ced28cbe75ff81f35ac2c71e941041eb3afcd00
Reverted in:
f75301d16d444d8cb6810d679290df744bc79ec7
(reverted due to tests failing on non-linux/x86 targets, tests have since been
generalized and specialized... since Split DWARF isn't supported on non-elf
targets anyway and we have no way to run on "whatever elf target is available"
so they fail on MacOS without an explicit target triple)
This code was incorrectly emitting extra bytes into arbitrary parts of
the object file when it was meant to be hashing them to compute the DWO
ID.
Follow-up patch(es) will refactor this API somewhat to make such bugs
harder to introduce, hopefully.
David Blaikie [Wed, 5 Feb 2020 03:23:57 +0000 (19:23 -0800)]
DebugInfo: Add a couple of missing COFF sections to make convert-loclist.ll pass on Windows
David Blaikie [Wed, 5 Feb 2020 03:13:42 +0000 (19:13 -0800)]
DebugInfo: convert-debugloc.ll generalize to run on ppc64le
This target produces a location list for the location, so split the
match between lines to allow for a location list match.
Jonas Devlieghere [Wed, 5 Feb 2020 03:00:10 +0000 (19:00 -0800)]
[lldb/Reproducers] Change the way we instrument void* arguments
The reproducer instrumentation cannot automatically serialize and
deserialize void* arguments. Currently we deal with this by explicitly
preventing these methods from being instrumented. This has the undesired
side effect of breaking replay when that method returns a value later
used by another SB API call.
The solution is to change our approach and instrument these methods.
Instead of using the DUMMY macro, we just make (de)serialization of the
void pointer a NOOP and always return a nullptr.
David Blaikie [Wed, 5 Feb 2020 02:59:23 +0000 (18:59 -0800)]
DebugInfo: Fix convert-loclist.ll Split DWARF variant to use a hardcoded triple
Since we don't support Split DWARF emission on non-ELF formats, hardcode
an elfine triple (we don't have a way to ask for "any ELF triple" it
seems, so hardcoded will have to do)
Thomas Lively [Mon, 3 Feb 2020 22:27:03 +0000 (14:27 -0800)]
Revert "[WebAssembly] Split and recombine multivalue calls for ISel"
Summary:
This reverts commit
28857d14a86b1e99a9d2795636a5faf17674f5a2. This
commit worked toward a solution that did not turn out to be feasible
because MachineInstrs cannot contain an arbitrary number of defs.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73927
Yonghong Song [Tue, 4 Feb 2020 19:21:54 +0000 (11:21 -0800)]
[BPF] disable ReduceLoadWidth during SelectionDag phase
The compiler may transform the following code
ctx = ctx + reloc_offset
... (*(u32 *)ctx) & 0x8000 ...
to
ctx = ctx + reloc_offset
... (*(u8 *)(ctx + 1)) & 0x80 ...
where reloc_offset will be replaced with a constant during
AsmPrinter phase.
The above transformed code will be rejected the kernel verifier
as it does not allow
*(type *)((ctx + non_zero_offset1) + non_zero_offset2)
style access pattern.
It is hard at SelectionDag phase to identify whether a load
is related to context or not. Sometime, interprocedure analysis
may be needed. So let us simply prevent such optimization
from happening.
Differential Revision: https://reviews.llvm.org/D73997
David Blaikie [Wed, 5 Feb 2020 02:34:34 +0000 (18:34 -0800)]
Recommit: DebugInfo: Check DW_OP_convert in loclists with Split DWARF
Originally committed in:
552a8fe12bd1822f48dda2e9e8728a179f82d356
Reverted in:
f75301d16d444d8cb6810d679290df744bc79ec7
Reverted because it was running llc directly (rather than %llc_dwarf)
which uses COFF files on Windows which LLVM doesn't support all DWARF
features in.
This functionality isn't fully working, but sets up the testing for a
follow-on patch that demonstrates and fixes the brokenness related to
DWO ID hashing this construct.
Thomas Lively [Fri, 31 Jan 2020 02:23:14 +0000 (18:23 -0800)]
[WebAssembly] Enable recently implemented SIMD operations
Summary:
Moves a batch of instructions from unimplemented-simd128 to simd128
because they have recently become available in V8.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D73926
Lei Zhang [Sun, 2 Feb 2020 12:40:18 +0000 (07:40 -0500)]
[mlir][spirv] Add dialect-specific attribute for target environment
We were using normal dictionary attribute for target environment
specification. It becomes cumbersome with more and more fields.
This commit changes the modelling to a dialect-specific attribute,
where we can have control over its storage and assembly form.
Differential Revision: https://reviews.llvm.org/D73959
Richard Smith [Wed, 5 Feb 2020 02:28:36 +0000 (18:28 -0800)]
PR44786: Don't assert when profiling <=> expressions.
David Blaikie [Wed, 5 Feb 2020 02:23:22 +0000 (18:23 -0800)]
DebugInfo: use a symbolic DIE reference in convert-loclist.ll
David Blaikie [Wed, 5 Feb 2020 02:08:16 +0000 (18:08 -0800)]
Reapply: DebugInfo: Add missing test coverage for DW_OP_convert in loclists
Originally committed in:
5327b917e3bd0b3db352cb5a61eea7409f2d1972
and follow on fix:
4f281f047457ce3f1870a93253476222314f420b
Reverted in:
191a9a78b3f4bdf35a30d3480bd630d787a2fdf6
and:
f75301d16d444d8cb6810d679290df744bc79ec7
Reverted because it wasn't portable between the targets it was running
on. Using %llc_dwarf ensures the target triple is always elfine and thus
DWARF compatible.
David Blaikie [Wed, 5 Feb 2020 02:02:03 +0000 (18:02 -0800)]
DebugInfo: Generalize test/DebugInfo/X86/convert-linked.ll to run with different architectures
David Blaikie [Wed, 5 Feb 2020 01:50:55 +0000 (17:50 -0800)]
DebugInfo: Generalize test/DebugInfo/X86/convert-inlined.ll
This test was hardcoded to only run on x86-64-linux-gnu and was overly
constrained by CHECK-NEXTing every line for an exact match.
Michael Liao [Wed, 5 Feb 2020 01:47:36 +0000 (20:47 -0500)]
Fix warning on trailing `;`. NFC.
Francis Visoiu Mistrih [Wed, 5 Feb 2020 01:42:47 +0000 (17:42 -0800)]
[Remarks] Fix gcc build
Michael Liao [Wed, 5 Feb 2020 01:42:05 +0000 (20:42 -0500)]
Fix warning on trailing `;`. NFC.
David Blaikie [Wed, 5 Feb 2020 01:39:38 +0000 (17:39 -0800)]
DebugInfo: convert-debugloc.ll remove erroneous CHECK
David Blaikie [Wed, 5 Feb 2020 01:33:20 +0000 (17:33 -0800)]
DebugInfo: Generalize convert-debugloc.ll to run for multiple target architectures
This test was overly constrained & hardcoded only to x86-linux-gnu -
generalize the test & remove the hardcoded target triple.
LLVM GN Syncbot [Wed, 5 Feb 2020 01:27:20 +0000 (01:27 +0000)]
[gn build] Port
b8a847c0a3e
LLVM GN Syncbot [Wed, 5 Feb 2020 01:27:19 +0000 (01:27 +0000)]
[gn build] Port
7531a5039fd
Michael Liao [Wed, 5 Feb 2020 01:25:12 +0000 (20:25 -0500)]
[cuda][hip] Temporarily XFAIL on arm
Reid Kleckner [Tue, 4 Feb 2020 23:56:51 +0000 (15:56 -0800)]
Fix BroadcasterManager::RemoveListener to really remove the listener
This appears to be a real bug caught by -Wunused-value. std::find_if
doesn't modify the underlying collection, it just returns an iterator
pointing to the matching element.
Reviewed By: JDevlieghere
Differential Revision: https://reviews.llvm.org/D74010
Francis Visoiu Mistrih [Mon, 28 Oct 2019 21:53:31 +0000 (14:53 -0700)]
[Remarks] Extend the RemarkStreamer to support other emitters
This extends the RemarkStreamer to allow for other emitters (e.g.
frontends, SIL, etc.) to emit remarks through a common interface.
See changes in llvm/docs/Remarks.rst for motivation and design choices.
Differential Revision: https://reviews.llvm.org/D73676
Alina Sbirlea [Wed, 5 Feb 2020 00:29:04 +0000 (16:29 -0800)]
[NFCI] Update according to style.
clang-tidy + clang-format
Reid Kleckner [Wed, 5 Feb 2020 00:57:49 +0000 (16:57 -0800)]
Fix some more -Wrange-loop-analysis warnings in AArch64TargetParser
Jonas Devlieghere [Wed, 5 Feb 2020 00:44:30 +0000 (16:44 -0800)]
[lldb] Fix -Wdocumentation warnings
Adrian McCarthy [Tue, 4 Feb 2020 23:02:28 +0000 (15:02 -0800)]
Fix after c25938d
My refactor caused some changes in error reporting that TestAddDsymCommand.py
was checking, so this restores some of the changes to preserve the old
behavior and to un-xfail the affected test.
Differential Revision: https://reviews.llvm.org/D74001
Louis Dionne [Tue, 4 Feb 2020 23:34:28 +0000 (18:34 -0500)]
[Driver][Darwin] Improve tests for -nostdinc & friends
The tests were slightly underspecifying the current behavior of Clang.
Jonas Devlieghere [Wed, 5 Feb 2020 00:21:31 +0000 (16:21 -0800)]
[lldb/Reproducers] Add underscore to varaibles in LLDB_RECORD macros
Rename all variables used in the LLDB_RECORD macros to start with an
underscore to avoid conflicts with the arguments being recorded.
Jonas Devlieghere [Wed, 5 Feb 2020 00:10:10 +0000 (16:10 -0800)]
[lldb/Reproducers] Change record logging to mirror replay logging
Pretty printing the return value, although a good idea in theory, turned
out to be more confusing than anything else because they require
printing the log statement after the arguments and resulting value have
been serialized.
This changes the logging to behave more like how deserialization is
traced, although a bit more verbose because some of the serializers are
are calling each other.
Craig Topper [Tue, 4 Feb 2020 23:25:16 +0000 (15:25 -0800)]
[X86] Add custom lowering for lrint/llrint to either cvtss2si/cvtsd2si or fist.
lrint/llrint are defined as rounding using the current rounding
mode. Numbers that can't be converted raise FE_INVALID and an
implementation defined value is returned. They may also write to
errno.
I believe this means we can use cvtss2si/cvtsd2si or fist to
convert as long as -fno-math-errno is passed on the command line.
Clang will leave them as libcalls if errno is enabled so they
won't become ISD::LRINT/LLRINT in SelectionDAG.
For 64-bit results on a 32-bit target we can't use cvtss2si/cvtsd2si
but we can use fist since it can write to a 64-bit memory location.
Though maybe we could consider using vcvtps2qq/vcvtpd2qq on avx512dq
targets?
gcc also does this optimization.
I think we might be able to do this with STRICT_LRINT/LLRINT as
well, but I've left that for future work.
Differential Revision: https://reviews.llvm.org/D73859
Dimitry Andric [Tue, 4 Feb 2020 23:57:02 +0000 (23:57 +0000)]
Fix x86 32bits MLIR build (NFC)
This is fixing a build error:
error: non-constant-expression cannot be narrowed from type 'unsigned int' to 'Region::iterator::difference_type' (aka 'int') in initializer list
Fix pr44767
Reid Kleckner [Tue, 4 Feb 2020 23:50:44 +0000 (15:50 -0800)]
Fix -Wunused-result warnings in LLDB
These try_lock usages intentionally ignore the result, as commented.
Similar to
4d23764dddc23e74ad165086d7f471a3e0e52bf8, which was reviewed
previously.
Evgenii Stepanov [Tue, 4 Feb 2020 23:50:44 +0000 (15:50 -0800)]
[compiler-rt] fix OpenBSD and Solaris build with sigaltstack interception
Summary:
`sigaltstack` interception is implemented D73816. This updated OpenBSD and Solaris bits to fix the build errors.
Reviewers: eugenis
Reviewed By: eugenis
Subscribers: fedor.sergeev, krytarowski, emaste, eugenis, dberris, #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Patch by Igor Sugak.
Differential Revision: https://reviews.llvm.org/D73976
Reid Kleckner [Tue, 4 Feb 2020 23:48:22 +0000 (15:48 -0800)]
[Support] Fix warnings in ARMTargetParser.cpp
Alex Langford [Tue, 4 Feb 2020 23:40:43 +0000 (15:40 -0800)]
[lldb] Rename Type::ResolveClangType to Type::ResolveCompilerType
This is not specific to clang types. It operates on CompilerTypes in
general.
Alex Langford [Tue, 4 Feb 2020 22:59:20 +0000 (14:59 -0800)]
[lldb] Delete commented-out code
Reid Kleckner [Tue, 4 Feb 2020 23:22:15 +0000 (15:22 -0800)]
Avoid many std::tie/tuple instantiations in ASTImporter
To factor the error checking, use importChecked instead of importSeq.
This avoids repeating the names of all of the imported child nodes once,
and allows errors to be checked with a single conditional as it is with
importSeq.
After:
peak memory: 601.63MB
real: 0m19.172s
obj size: 8,352kb
Before:
peak memory: 954.11MB
real: 0m26.188s
obj size: 10,000kb
The speed is not as impressive as I hoped, but the memory use reduction
is impressive, and seems worth it.
Reviewed By: martong, shafik
Differential Revision: https://reviews.llvm.org/D73675
Craig Topper [Tue, 4 Feb 2020 20:37:19 +0000 (12:37 -0800)]
[X86] Give KSET0* and KSET1* pseudos the same scheduler resource usage as KXOR/KXNOR.
These aren't recognized as idioms by the CPU so they still use
execution resources. We just use the pseudo to force the input
register to k0.
Reid Kleckner [Thu, 30 Jan 2020 23:15:57 +0000 (15:15 -0800)]
[SEH] Remove CATCHPAD SDNode and X86::EH_RESTORE MachineInstr
The CATCHPAD node mostly existed to be selected into the EH_RESTORE
instruction, which sets the frame back up when 32-bit Windows exceptions
return to the parent function. However, creating this MachineInstr early
increases the risk that other passes will come along and insert
instructions that use the stack before ESP and EBP are restored. That
happened in PR44697.
Instead of representing these in the instruction stream early, delay it
until PEI. Mark the blocks where this needs to happen as EHPads, but not
funclet entry blocks. Passes after PEI have to be careful not to hoist
instructions that can use stack across frame setup instructions, so this
should be relatively reliable.
Fixes PR44697
Reviewed By: hans
Differential Revision: https://reviews.llvm.org/D73752
Saar Raz [Tue, 4 Feb 2020 22:51:40 +0000 (00:51 +0200)]
[Concepts] Add missing CXXThisScope to function template constraint substitution
We did not have a CXXThisScope around constraint checking of functions and
function template specializations, causing a crash when checking a constraint
that had a 'this' (bug 44689).
Recommit after fixing test.
Jonas Devlieghere [Tue, 4 Feb 2020 23:09:53 +0000 (15:09 -0800)]
[lldb/Reproducers] Add missing SBFile methods to the registry
SBFile::Read and SBFile::Write were missing from the registry.
Saar Raz [Tue, 4 Feb 2020 22:58:02 +0000 (00:58 +0200)]
Revert "[Concepts] Add missing CXXThisScope to function template constraint substitution"
This reverts commit
0c67cfdb114b4c2f5c7ec374cf12118c7fa9d768 which has a broken test.
Saar Raz [Tue, 4 Feb 2020 22:51:40 +0000 (00:51 +0200)]
[Concepts] Add missing CXXThisScope to function template constraint substitution
We did not have a CXXThisScope around constraint checking of functions and
function template specializations, causing a crash when checking a constraint
that had a 'this' (bug 44689)
Kiran Chandramohan [Tue, 4 Feb 2020 21:43:40 +0000 (21:43 +0000)]
[OpenMP] Add Flush directive to OpenMPIRBuilder
Add support for Flush in the OMPIRBuilder. This patch also adds changes
to clang to use the OMPIRBuilder when '-fopenmp-enable-irbuilder'
commandline option is used.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D70712
Alex Langford [Tue, 4 Feb 2020 22:40:51 +0000 (14:40 -0800)]
[lldb] Remove unused references to ClangExpressionDeclMap
Kamil Rytarowski [Tue, 4 Feb 2020 22:30:05 +0000 (23:30 +0100)]
[compiler-rt] [netbsd] Fix build after "implement sigaltstack interception"
Fallout after: https://reviews.llvm.org/D73816
Alex Langford [Mon, 3 Feb 2020 23:55:18 +0000 (15:55 -0800)]
[lldb] Remove clang classes from lldb-forward.h
Summary:
lldb-forward.h is convenient in many ways, but having clang-based
class forward declarations in there makes it easy to proliferate uses of clang
outside of plugins. Removing them makes you much more conscious of when
you're using something from clang and marks where we're using things
from clang in non-plugins.
Differential Revision: https://reviews.llvm.org/D73935
Tom Stellard [Tue, 4 Feb 2020 21:06:54 +0000 (13:06 -0800)]
[cmake] Fix clang builds with BUILD_SHARED=ON and CLANG_LINK_CLANG_DYLIB=ON
Summary:
We were linking all the clang objects and shared libraries into
libclang-cpp.so, which was causing the command line options to be
registered twice.
Reviewers: beanz, mgorny
Reviewed By: beanz, mgorny
Subscribers: merge_guards_bot, mgorny, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D68520
Jonas Devlieghere [Tue, 4 Feb 2020 22:05:15 +0000 (14:05 -0800)]
[lldb/Unittest] Fix the modules build by including TypeSystemClang.h
This should fix the modules build on the GreenDragon bot.
Jonas Devlieghere [Tue, 4 Feb 2020 21:59:29 +0000 (13:59 -0800)]
Re-land "[lldb] [testsuite] generalize `DWARFASTParserClangTests` based on `DWARFExpressionTest`'s YAML"
Jon Chesterfield [Tue, 4 Feb 2020 21:55:26 +0000 (21:55 +0000)]
[libomptarget] Implement wavefront functions for amdgcn
Summary: [libomptarget] Implement wavefront functions for amdgcn
Reviewers: jdoerfert, ABataev, grokos, arsenm
Reviewed By: arsenm
Subscribers: saiislam, wdng, arsenm, jvesely, openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D73077
Dimitry Andric [Tue, 4 Feb 2020 21:50:05 +0000 (22:50 +0100)]
[compiler-rt] Fix sanitizer_common build for FreeBSD
This was broken by
28c91219c7e2, which added `struct_stack_t_sz` only to
sanitizer_platform_limits_posix.{cpp,h}.
Jan Kratochvil [Tue, 4 Feb 2020 21:48:27 +0000 (22:48 +0100)]
Revert: [lldb] [testsuite] generalize `DWARFASTParserClangTests` based on `DWARFExpressionTest`'s YAML
It is causing a failure on OSX, to be investigated more.
Differential Revision: https://reviews.llvm.org/D73279
Simon Pilgrim [Tue, 4 Feb 2020 21:36:11 +0000 (21:36 +0000)]
[clang-tidy] Fix "expression is redundant [misc-redundant-expression]" warning. NFCI. (PR44768)
We only accept tok::TokenKind::comment enum values so no need to add other cases. Seems to be a cut+paste typo.
Matt Arsenault [Tue, 4 Feb 2020 20:25:48 +0000 (15:25 -0500)]
AMDGPU: Fix isAlwaysUniform for simple asm SGPR results
We were handling the case where the result was a struct with an
extracted SGPR component, but not for the simple case.
Jonas Devlieghere [Tue, 4 Feb 2020 21:18:12 +0000 (13:18 -0800)]
[lldb/Reproducers] Treat SB classes pass by value as const references
Unless trivially copyable, SB classes that are passed by value should be
treated as const references by the reproducer infrastructure and their
address should be serialized. This is already the case on the
serialization side, but not on the deserialization side. This fixes that
by removing the NotImplementedTag.
Jonas Devlieghere [Tue, 4 Feb 2020 21:17:12 +0000 (13:17 -0800)]
[lldb/Reproducers] Instrument SBFile
Currently SBFile isn't really instrumented, which was causing trouble
when capturing and replaying the Python test suite. The class is
particularly tricky because one of its constructors takes a FileSP which
isn't instrumented. Until we have proper shadowing in place, we'll
simply always record a nullptr.
Differential revision: https://reviews.llvm.org/D73992
Simon Pilgrim [Tue, 4 Feb 2020 21:23:50 +0000 (21:23 +0000)]
Fix "expression is redundant [misc-redundant-expression]" warning (PR44768)
Be more specific that getOperandConstraint should return -1 or a uint8_t value
Matt Arsenault [Sat, 25 Jan 2020 00:38:53 +0000 (19:38 -0500)]
AMDGPU/GlobalISel: Select G_SEXT_INREG
Matt Arsenault [Sat, 25 Jan 2020 14:31:09 +0000 (09:31 -0500)]
AMDGPU/GlobalISel: Do a better job splitting 64-bit G_SEXT_INREG
We don't need to expand to full shifts for the > 32-bit case. This
just switches to a sext_inreg of the high half.
Matt Arsenault [Tue, 4 Feb 2020 21:06:34 +0000 (16:06 -0500)]
AMDGPU/GlobalISel: Legalize G_SEXT_INREG
Split the VALU 64-bit case in RegBankSelect.
Austin Kerbow [Tue, 4 Feb 2020 01:08:26 +0000 (17:08 -0800)]
[AMDGPU] Fix infinite loop with fma combines
https://reviews.llvm.org/D72312 introduced an infinite loop which involves
DAGCombiner::visitFMA and AMDGPUTargetLowering::performFNegCombine.
fma( a, fneg(b), fneg(c) ) => fneg( fma (a, b, c) ) => fma( a, fneg(b), fneg(c) ) ...
This only breaks with types where 'isFNegFree' returns flase, e.g. v4f32.
Reproducing the issue also needs the attribute 'no-signed-zeros-fp-math',
and no source mods allowed on one of the users of the Op.
This fix makes changes to indicate that it is not free to negate a fma if it
has users with source mods.
Differential Revision: https://reviews.llvm.org/D73939
Evgenii Stepanov [Tue, 4 Feb 2020 20:21:06 +0000 (12:21 -0800)]
[sanitizer] Add missing declarations for sigaltstack syscall wrappers.
Subscribers: #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D73987
Matt Arsenault [Tue, 21 Jan 2020 21:47:27 +0000 (16:47 -0500)]
AMDGPU/GlobalISel: Remove extension legality hacks
The legalization has improved since this was added, and the tests
relying on this no longer need it.
Michael Liao [Mon, 3 Feb 2020 20:35:18 +0000 (15:35 -0500)]
[hip] Properly populate macros based on host processor.
Summary:
- The device compilation needs to have a consistent source code compared
to the corresponding host compilation. If macros based on the
host-specific target processor is not properly populated, the device
compilation may fail due to the inconsistent source after the
preprocessor. So far, only the host triple is used to build the
macros. If a detailed host CPU target or certain features are
specified, macros derived from them won't be populated properly, e.g.
`__SSE3__` won't be added unless `+sse3` feature is present. On
Windows compilation compatible with MSVC, that missing macros result
in that intrinsics are not included and cause device compilation
failure on the host-side source.
- This patch addresses this issue by introducing two `cc1` options,
i.e., `-aux-target-cpu` and `-aux-target-feature`. If a specific host
CPU target or certain features are specified, the compiler driver will
append them during the construction of the offline compilation
actions. Then, the toolchain in `cc1` phase will populate macros
accordingly.
- An internal option `--gpu-use-aux-triple-only` is added to fall back
the original behavior to help diagnosing potential issues from the new
behavior.
Reviewers: tra, yaxunl
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D73942
Richard Smith [Tue, 4 Feb 2020 20:20:34 +0000 (12:20 -0800)]
PR44761: Fix fallback to later tiebreakers if two non-template functions
are equally constrained.
Richard Smith [Tue, 4 Feb 2020 19:43:15 +0000 (11:43 -0800)]
Additional testcase for
0130b6cb5a8.
Tyker [Tue, 4 Feb 2020 20:17:47 +0000 (21:17 +0100)]
Craig Topper [Tue, 4 Feb 2020 19:25:24 +0000 (11:25 -0800)]
Recommit "[X86] Use X86ISD::SUB instead of X86ISD::CMP in some places."
This time with correct types for the data result from the SUB.
Original commit message:
Our normal lowering for ISD::SETCC uses X86ISD::SUB to enable
CSE unless the RHS is 0. optimizeCompareInstr called by the peephole
pass can turn subs with unused results into cmps to clean this up.
This commit makes other places that create X86ISD::CMP have the
same behavior.
River Riddle [Tue, 4 Feb 2020 20:17:14 +0000 (12:17 -0800)]
[mlir] Print types to the OpAsmPrinter instead of the raw_ostream.
This allows for reusing the internal state of the printer, which is more
efficient and also allows for using type aliases
Teresa Johnson [Tue, 4 Feb 2020 18:37:53 +0000 (10:37 -0800)]
[InlineCost] Add flag to allow changing the default inline cost
Summary:
It can be useful to tune the default inline threshold without overriding other inlining thresholds (e.g. in code compiled for size).
The existing `-inline-threshold` flag overrides other thresholds, so it is insufficient in codebases where there is a mix of code compiled for size and speed.
Patch by Michael Holman <michael.holman@microsoft.com>
Reviewers: eraman, tejohnson
Reviewed By: tejohnson
Subscribers: tejohnson, mtrofin, davidxl, hiraditya, haicheng, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73217
Matt Arsenault [Sat, 25 Jan 2020 01:53:26 +0000 (20:53 -0500)]
AMDGPU/GlobalISel: Custom lower G_FEXP
Matt Arsenault [Sat, 25 Jan 2020 02:21:03 +0000 (21:21 -0500)]
AMDGPU/GlobalISel: Legalize s16 G_FEXP2
Paula Toth [Tue, 4 Feb 2020 18:39:16 +0000 (10:39 -0800)]
[libc] Fix typo in header generation docs.
Reviewers: sivachandra, abrachet
Reviewed By: sivachandra, abrachet
Subscribers: libc-commits, MaskRay, tschuett
Tags: #libc-project, #llvm
Differential Revision: https://reviews.llvm.org/D72248
Tyker [Tue, 4 Feb 2020 18:23:33 +0000 (19:23 +0100)]
[C++20] Add consteval-specific semantic for functions
Summary:
Changes:
- Calls to consteval function are now evaluated in constant context but IR is still generated for them.
- Add diagnostic for taking address of a consteval function in non-constexpr context.
- Add diagnostic for address of consteval function accessible at runtime.
- Add tests
Reviewers: rsmith, aaron.ballman
Reviewed By: rsmith
Subscribers: mgrang, riccibruno, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D63960
Aaron Watry [Sun, 2 Feb 2020 01:54:45 +0000 (19:54 -0600)]
libclc/asin: Switch to amd builtins version of asin
Fixes a wimpy-mode CTS failure for asin(float).
Passes non-wimpy for both float/double on RX580.
Signed-off-by: Aaron Watry <awatry@gmail.com>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu>
Matt Arsenault [Fri, 31 Jan 2020 19:35:53 +0000 (14:35 -0500)]
CodeGenPrepare: Reorder check for cold and shouldOptimizeForSize
shouldOptimizeForSize is showing up in a profile, spending around 10%
of the pass time in one function. This should probably not be so slow,
but the much cheaper attribute check should be done first anyway.