Nikita Popov [Sat, 7 Mar 2020 15:34:34 +0000 (16:34 +0100)]
[InstSimplify] Simplify calls with "returned" attribute
If a call argument has the "returned" attribute, we can simplify
the call to the value of that argument. The "-inst-simplify" pass
already handled this for the constant integer argument case via
known bits, which is invoked in SimplifyInstruction. However,
non-constant (or non-int) arguments are not handled at all right now.
This addresses one of the regressions from D75801.
Differential Revision: https://reviews.llvm.org/D75815
Marcello Maggioni [Sun, 8 Mar 2020 17:55:21 +0000 (10:55 -0700)]
Fix indentation using clang-format for Spiller.h. NFC
Spiller.h had indentation that doesn't match LLVM guidelines. Fixing it
Reviewers: qcolombet, arsenm
Subscribers: MatzeB, wdng, hiraditya, llvm-commits, qcolombet
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75830
Marcello Maggioni [Sun, 8 Mar 2020 16:36:29 +0000 (09:36 -0700)]
Move Spiller.h from lib/ directory path to include/CodeGen. NFC
This allows Spiller.h to be used and included outside of
the lib/CodeGen directory. For example to be used in the
lib/Target directory or other places.
Nikita Popov [Sat, 7 Mar 2020 19:21:09 +0000 (20:21 +0100)]
[InstCombine] Don't simplify calls without uses
When simplifying a call without uses, replaceInstUsesWith() is
going to do nothing, but we'll skip all following folds. We can
only run into this problem with calls that both simplify and are
not trivially dead if unused, which currently seems to happen only
with calls to undef, as the test diff shows. When extending
SimplifyCall() to handle "returned" attributes, this becomes a much
bigger problem, so I'm fixing this first.
Differential Revision: https://reviews.llvm.org/D75814
Nikita Popov [Sun, 8 Mar 2020 12:11:46 +0000 (13:11 +0100)]
[InstSimplify] Don't simplify musttail calls
As pointed out by jdoerfert on D75815, we must be careful when
simplifying musttail calls: We can only replace the return value
if we can eliminate the call entirely. As we can't make this
guarantee for all consumers of InstSimplify, this patch disables
simplification of musttail calls. Without this patch, musttail
simplification currently results in module verification errors.
Differential Revision: https://reviews.llvm.org/D75824
Jeremy Stenglein [Mon, 9 Mar 2020 17:17:15 +0000 (10:17 -0700)]
Add a warning for builtin_return_address/frame_address with > 0 argument
Clang is missing a warning for
builtin_return_address/builtin_frame_address called with > 0 argument.
Gcc provides a warning for this via -Wframe-address:
https://gcc.gnu.org/onlinedocs/gcc/Return-Address.html
As calling these functions with argument > 0 has caused several crashes
for us, we would like to have the same warning as gcc here. This diff
adds the warning and makes it part of -Wmost.
Differential Revision: https://reviews.llvm.org/D75768
Jonathan Coe [Mon, 9 Mar 2020 17:33:53 +0000 (17:33 +0000)]
[clang-format] C# does not indent braced initializers as continuations
Summary: C# treats object initializers as braced init blocks. Braced init blocks are no longer indented as continuations.
Reviewers: krasimir
Reviewed By: krasimir
Subscribers: cfe-commits
Tags: #clang-format, #clang
Differential Revision: https://reviews.llvm.org/D75731
Nicolas Vasilache [Mon, 9 Mar 2020 17:29:13 +0000 (13:29 -0400)]
[mlir][Vector] Add a vector.matrix_multiply op on 1-D vectors
Summary: This op mirrors the llvm.intr counterpart and allows lowering + type conversions in a progressive fashion.
Differential Revision: https://reviews.llvm.org/D75775
Jonathan Roelofs [Wed, 4 Mar 2020 16:55:03 +0000 (09:55 -0700)]
[clang-tidy] Use ; as separator for HeaderFileExtensions
... and deprecate use of ',' for the same.
https://reviews.llvm.org/D75621
Jonathan Roelofs [Tue, 25 Feb 2020 17:41:32 +0000 (10:41 -0700)]
[clang-tidy] Generalize HeaderFileExtensions.{h,cpp}. NFC
https://reviews.llvm.org/D75489
Jonathan Coe [Mon, 9 Mar 2020 17:10:09 +0000 (17:10 +0000)]
[clang-format] cleanup from D75517
Summary:
Fix typo in comment.
Add closing brace to test text.
Reviewers: krasimir
Subscribers: cfe-commits
Tags: #clang-format, #clang
Differential Revision: https://reviews.llvm.org/D75856
Nicolas Vasilache [Mon, 9 Mar 2020 17:13:56 +0000 (13:13 -0400)]
[mlir][Vector] Allow lowering of vector.shape_cast 2D <-> 1D
Summary:
This will support the progressive lowering of:
```
vector.contract ->
downcast + vector.matrix_multiply + upcast ->
llvm.intr.matrix
```
Differential Revision: https://reviews.llvm.org/D75776
Nicolas Vasilache [Mon, 9 Mar 2020 17:00:45 +0000 (13:00 -0400)]
[mlir][LLVM] Add remaining llvm.matrix intrinsics
Summary:
This revision adds intrinsics for transpose, columnwise.load and columnwise.store
achieving full coverage of the llvm.matrix intrinsics.
Differential Revision: https://reviews.llvm.org/D75852
Jonas Devlieghere [Mon, 9 Mar 2020 16:59:06 +0000 (09:59 -0700)]
[lldb/Process] Update ThreadKDP for API change
GetUnwinder now returns a reference instead of a pointer.
Nicolas Vasilache [Mon, 9 Mar 2020 16:53:04 +0000 (12:53 -0400)]
[mlir] NFC - Add predicates and types for VectorOfRank
Summary:
This is the counterpart of VectorOfLength for ranks.
This will be used in lowering vector.contract operations to llvm.matrix
Differential Revision: https://reviews.llvm.org/D75771
Michael Kruse [Mon, 9 Mar 2020 16:15:14 +0000 (11:15 -0500)]
[Polly] Replace use of std::stringstream. NFC.
Use of std::-style (io)streams is discouraged in the LLVM coding style
(https://llvm.org/docs/CodingStandards.html#include-iostream-is-forbidden).
Replace with a use of llvm::Twine (which uses llvm::raw_ostream behind
the scenes).
aartbik [Sat, 7 Mar 2020 01:01:18 +0000 (17:01 -0800)]
[mlir] [ExecutionEngine] add option to enable/disable GDB notification listener
Summary:
This way, clients can opt-out of the GDB notification listener. Also, this
changes the semantics of enabling the object cache, which seemed the wrong
way around.
Reviewers: rriddle, nicolasvasilache, ftynse, andydavis1
Reviewed By: nicolasvasilache
Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75787
Mikhail Maltsev [Mon, 9 Mar 2020 16:13:02 +0000 (16:13 +0000)]
[ARM,CDE] Implement CDE feature test macros
Summary:
This patch implements feature test macros for the CDE extension
according to the upcoming ACLE specification.
The following 2 macros are being added:
- __ARM_FEATURE_CDE - defined as '1' when any coprocessor is
configured as a CDE coprocessor
- __ARM_FEATURE_CDE_COPROC - defined as an 8-bit mask, each bit of the
mask corresponds to a coprocessor and is set when the corresponding
coprocessor is configured as CDE (and cleared otherwise).
The patch also exposes the value of __ARM_FEATURE_CDE_COPROC in the
target-independent method TargetInfo::getARMCDECorpocMask, the method
will be used in follow-up patches implementing semantic checks of CDE
intrinsics (we want to diagnose the cases when CDE intrinsics are used
with coprocessors that are not configured as CDE).
Reviewers: simon_tatham, dmgreen, ostannard, MarkMurrayARM
Reviewed By: simon_tatham
Subscribers: kristof.beyls, danielkiss, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75843
Shiva Chen [Mon, 24 Feb 2020 06:21:26 +0000 (14:21 +0800)]
[RISCV] Add new SchedRead SchedWrite
The patch fixes some typos and introduces ReadFMemBase, ReadFSGNJ32,
ReadFSGNJ64, WriteFSGNJ32, WriteFSGNJ64, ReadFMinMax32, ReadFMinMax64,
WriteFMinMax32, WriteFMinMax64, so the target CPU with different pipeline model
could use them to describe latency.
Differential Revision: https://reviews.llvm.org/D75515
Jay Foad [Mon, 9 Mar 2020 16:08:28 +0000 (16:08 +0000)]
[AMDGPU] Remove unused SchedWrite class
LLVM GN Syncbot [Mon, 9 Mar 2020 16:03:39 +0000 (16:03 +0000)]
[gn build] Port
882f589e20d
Jonas Devlieghere [Mon, 9 Mar 2020 15:56:03 +0000 (08:56 -0700)]
Revert "[AssumeBundles] Move to IR so it can be used by Analysis"
This breaks the modules build:
http://green.lab.llvm.org/green/job/clang-stage2-Rthinlto/
http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/
This reverts commit
57c964aaa76bfaa908398fbd9d8c9d6d19856859.
Kirstóf Umann [Thu, 12 Sep 2019 20:20:58 +0000 (22:20 +0200)]
[analyzer][NFC] Refactor the checker registration unit test file
Nothing exciting to see here! The new interface allows for more fine tuning
(register but disable a checker, add custom checker registry functions, etc),
that was basically the point.
Differential Revision: https://reviews.llvm.org/D67335
Muhammad Omair Javaid [Mon, 9 Mar 2020 15:28:13 +0000 (20:28 +0500)]
[lldb/test] Fix arch arm for 32-bit armv7l/armv8l
This patch forces architecture "arm" if underlying os reports core
armv7l or armv8l. On linux systems 32 bit sysroot running on 64bit
AArch64 hardware reports armv7l or armv8l which is essently arm
32bit mode. This fixes 5 testcases on 32bit arm.
Fangrui Song [Fri, 6 Mar 2020 19:49:58 +0000 (11:49 -0800)]
[ELF] Postpone evaluation of ORIGIN/LENGTH in a MEMORY command
```
createFiles(args)
readDefsym
readerLinkerScript(*mb)
...
readMemory
readMemoryAssignment("ORIGIN", "org", "o") // eagerly evaluated
target = getTarget();
link(args)
writeResult<ELFT>()
...
finalizeSections()
script->processSymbolAssignments()
addSymbol(cmd) // with this patch, evaluated here
```
readMemoryAssignment eagerly evaluates ORIGIN/LENGTH and returns an uint64_t.
This patch postpones the evaluation to make
* --defsym and symbol assignments
* `CONSTANT(COMMONPAGESIZE)` (requires a non-null `lld::elf::target`)
work. If the expression somehow requires interaction with memory
regions, the circular dependency may cause the expression to evaluate to
a strange value. See the new test added to memory-err.s
Reviewed By: grimar
Differential Revision: https://reviews.llvm.org/D75763
Erich Keane [Mon, 9 Mar 2020 15:06:58 +0000 (08:06 -0700)]
Fix Target Multiversioning renaming.
The initial implementation only did 'first declaration renaming' when
a default version came after. This is insufficient in cases where a
default does not exist, so this patch makes sure that we do the renaming
in all cases.
This renaming is necessary because we emit the first declaration before
knowing that it IS a target multiversion function, which would change
its name. The second declaration (the one that caused the
multiversioning) then needs to make sure that the first one has its name
changed to be consistent with the resolver usage.
Fangrui Song [Sat, 7 Mar 2020 17:10:50 +0000 (09:10 -0800)]
[lld] Add .clang-tidy to customize readability-identifier-naming.{Member,Parameter,Variable}Case => camelBack
lld/.clang-tidy is almost identical to the top-level .clang-tidy, with the aforementioned customization.
Reviewed By: ruiu
Differential Revision: https://reviews.llvm.org/D75809
Fangrui Song [Sat, 7 Mar 2020 20:55:44 +0000 (12:55 -0800)]
[llvm-objdump] Rename --disassemble-functions to --disassemble-symbols
https://bugs.llvm.org/show_bug.cgi?id=41910
The feature can disassemble data and the new option name reflects its
more generic usage.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D75816
Pavel Labath [Mon, 9 Mar 2020 15:24:34 +0000 (16:24 +0100)]
[lldb] Fix windows build, second attempt
Fangrui Song [Sat, 7 Mar 2020 05:49:40 +0000 (21:49 -0800)]
[llvm-objdump][test] Move binary format specific tests under COFF/ ELF/ MachO/ XCOFF/ wasm/
Reviewed By: grimar
Differential Revision: https://reviews.llvm.org/D75798
Haojian Wu [Mon, 9 Mar 2020 14:36:49 +0000 (15:36 +0100)]
[clangd] Bump vscode-clangd v0.0.21.
CHANGELOG:
- better ranking for completions
- enable dot-to-arrow fix in code completion
Alexander Belyaev [Mon, 9 Mar 2020 14:03:33 +0000 (15:03 +0100)]
[MLIR] Change custom printer/parser for loop.parallel and loop.reduce.
Krzysztof Parzyszek [Mon, 9 Mar 2020 14:08:02 +0000 (09:08 -0500)]
[Hexagon] Fix match pattern in a testcase
Pavel Labath [Mon, 9 Mar 2020 13:55:43 +0000 (14:55 +0100)]
[lldb] Fix windows&freebsd builds for
c0b1af68
Adam Balogh [Mon, 9 Mar 2020 09:48:56 +0000 (10:48 +0100)]
[Analyzer] Mark constant member functions const in CheckerManager
Most of the getter functions (and a reporter function) in
`CheckerManager` are constant but not marked as `const`. This prevents
functions having only a constant reference to `CheckerManager` using
these member functions. This patch fixes this issue.
Differential Revision: https://reviews.llvm.org/D75839
Thomas Rodgers [Mon, 9 Mar 2020 13:15:45 +0000 (09:15 -0400)]
[pstl] Clean up parameter uglifications
Summary: These were overlooked on an earlier uglification pass.
Differential Revision: https://reviews.llvm.org/D60595
Pavel Labath [Mon, 9 Mar 2020 13:10:41 +0000 (14:10 +0100)]
[lldb] Return Unwinder& from Thread::GetUnwinder
The function always returns a valid object. Let the return type reflect
that, and remove some null checks.
Haojian Wu [Fri, 6 Mar 2020 14:08:23 +0000 (15:08 +0100)]
[clangd][vscode] Enable dot-to-arrow fixes in clangd completion.
Summary:
The previous issue is that the item was filtered out by vscode, because
the prefix (which contains ".") are not matched against the filterText.
This patch works around it by adjusting the item filterText, inspired by
https://reviews.llvm.org/D75623.
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75739
James Henderson [Tue, 25 Feb 2020 16:07:16 +0000 (16:07 +0000)]
[DebugInfo] Add check for .debug_line minimum_instruction_length of 0
If the minimum_instruction_length of a debug line program is 0, no
address advancing via special opcodes, DW_LNS_const_add_pc, and
DW_LNS_advance_pc can occur, since the minimum_instruction_length is
used in a multiplication. This patch adds a warning reporting when this
issue occurs.
Reviewed by: probinson
Differential Revision: https://reviews.llvm.org/D75189
James Henderson [Tue, 25 Feb 2020 15:08:07 +0000 (15:08 +0000)]
[DebugInfo] Prevent crash when .debug_line line_range is zero
The line_range value of a debug line program header is used in divisions
related to special opcodes and DW_LNS_const_add_pc opcodes. As such, a
value of 0 cannot be used. This change introduces a new warning, if such
a situation is identified, and does not perform the relevant
calculations.
Reviewed by: probinson, aprantl
Differential Revision: https://reviews.llvm.org/D43470
James Henderson [Wed, 19 Feb 2020 15:03:01 +0000 (15:03 +0000)]
[DebugInfo] Report unsupported maximum_operations_per_instruction values
This patch adds a check which reports an unsupported value of the
maximum_operations_per_instruction field in a debug line table header.
This is reported once per line table, at most, and only if the tablet
would otherwise need to use it (i.e. never for tables with version 3 or
less, or for tables which don't use DW_LNS_const_add_pc or special
opcodes). Unsupported values are currently any apart from 1.
Reviewed by: probinson, MaskRay
Differential Revision: https://reviews.llvm.org/D74819
James Henderson [Wed, 19 Feb 2020 14:03:02 +0000 (14:03 +0000)]
[NFC][DebugInfo] Refactor address advancing operations to share code
This change is a preparatory change for subsequent commits.
Reviewed by: probinson
Differential Revision: https://reviews.llvm.org/D75188
Pavel Labath [Thu, 5 Mar 2020 13:42:03 +0000 (14:42 +0100)]
[lldb] Reduce duplication in the Disassembler class
Summary:
The class has two pairs of functions whose functionalities differ in
only how one specifies how much he wants to disasseble. One limits the
process by the size of the input memory region. The other based on the
total amount of instructions disassembled. They also differ in various
features (like error reporting) that were only added to one of the
versions.
There are various ways in which this could be addressed. This patch
does it by introducing a helper struct called "Limit", which is
effectively a pair specifying the value that you want to limit, and the
actual limit itself.
Reviewers: JDevlieghere
Subscribers: sdardis, jrtc27, atanasyan, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D75730
Alex Cameron [Mon, 9 Mar 2020 11:58:12 +0000 (11:58 +0000)]
[XRay] Sanitize DOT labels in graph output
Summary:
Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=39701
This patch is to convert certain characters to their XML escape sequences when generating labels for a DOT graph.
I had trouble reproducing the exact issue described on the tracker. I ran `llvm-xray graph` on a log from a test program that included function templates but wasn't able to get the `dot` tool to complain about the `<` and `>` characters. The documentation also suggests that the escape sequences should only be necessary when using HTML string labels which XRay doesn't use (`label=<...>` as opposed to `label="..."`). Perhaps newer versions of Graphviz silently handle this in the case of quoted-string labels.
In any case, the generated labels still look correct after this patch and should also fix the reporter's issue.
I was a bit unsure how to add a test for this since the existing tests seem to only care about `func-id` rather than giving an actual name. If you could give me a hint on the best way to go about this, that'd be much appreciated!
Reviewers: dberris
Reviewed By: dberris
Subscribers: lebedev.ri, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69461
evgeny [Mon, 9 Mar 2020 11:05:15 +0000 (14:05 +0300)]
[WPD] Provide a way to prevent functions from being devirtualized
Differential revision: https://reviews.llvm.org/D75617
Djordje Todorovic [Mon, 9 Mar 2020 10:02:35 +0000 (11:02 +0100)]
[CallSiteInfo] Enable the call site info only for -g + optimizations
Emit call site info only in the case of '-g' + 'O>0' level.
Differential Revision: https://reviews.llvm.org/D75175
Gabor Marton [Mon, 9 Mar 2020 10:58:20 +0000 (11:58 +0100)]
[analyzer] Skip analysis of inherited ctor as top-level function
Summary:
This fixes a regression introduced in https://reviews.llvm.org/D74735
Reviewers: NoQ, Szelethus
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75678
Balázs Kéri [Mon, 9 Mar 2020 10:01:48 +0000 (11:01 +0100)]
[ASTImporter] Added visibility check for variable templates.
Summary:
ASTImporter makes now difference between variable templates
with same name in different translation units if not visible
outside.
Reviewers: a.sidorin, shafik, a_sidorin
Reviewed By: a_sidorin
Subscribers: dkrupp, Szelethus, gamesh411, teemperor, martong, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75732
Sjoerd Meijer [Mon, 9 Mar 2020 10:37:28 +0000 (10:37 +0000)]
Revert "Recommit "[Driver] Default to -fno-common for all targets""
This reverts commit
2c36c23f3476baf3b9283ea387c579419a70b112.
Still problems in the test-suite, which I really thought I had fixed...
Sven van Haastregt [Mon, 9 Mar 2020 10:26:11 +0000 (10:26 +0000)]
[OpenCL] Fix 'any' and 'all' builtins
These should only be defined for signed integer types according to
OpenCL v2.0 s6.12.6.
KAWASHIMA Takahiro [Tue, 3 Mar 2020 12:52:27 +0000 (21:52 +0900)]
[AArch64] Add support for Fujitsu A64FX
A64FX is an Armv8.2-A CPU used in FUJITSU Supercomputer
PRIMEHPC FX1000, PRIMEHPC FX700, and supercomputer Fugaku.
https://www.fujitsu.com/global/products/computing/servers/supercomputer/specifications/
Differential Revision: https://reviews.llvm.org/D75594
Sjoerd Meijer [Mon, 9 Mar 2020 10:07:37 +0000 (10:07 +0000)]
Recommit "[Driver] Default to -fno-common for all targets"
This includes fixes for:
- test-suite: some benchmarks need to be compiled with -fcommon, see D75557.
- compiler-rt: one test needed -fcommon, and another a change, see D75520.
Balázs Kéri [Mon, 9 Mar 2020 09:15:31 +0000 (10:15 +0100)]
[Analyzer][StreamChecker] Check for opened stream before operations.
Summary:
According to documentations, after an `fclose` call any other stream
operations cause undefined behaviour, regardless if the close failed
or not.
This change adds the check for the opened state before all other
(applicable) operations.
Reviewers: Szelethus
Reviewed By: Szelethus
Subscribers: xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, gamesh411, Charusso, martong, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75614
Clement Courbet [Tue, 3 Mar 2020 12:17:21 +0000 (13:17 +0100)]
[ExpandMemCmp] Properly constant-fold all compares.
Summary:
This gets rid of duplicated code and diverging behaviour w.r.t.
constants.
Fixes PR45086.
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75519
Nathan James [Mon, 9 Mar 2020 08:12:52 +0000 (08:12 +0000)]
Fix build failure from rG223a43ee8d89
Clement Courbet [Tue, 3 Mar 2020 12:17:21 +0000 (13:17 +0100)]
[ExpandMemCmp] Properly constant-fold all compares.
Summary:
This gets rid of duplicated code and diverging behaviour w.r.t.
constants.
Fixes PR45086.
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75519
Muhammad Omair Javaid [Mon, 9 Mar 2020 07:52:08 +0000 (12:52 +0500)]
[lldb/test] Remove skip arm/aarch64 decorator from instruction counting tests
This patch removes skipIf decorator from instruction counting tests.
We now use inline intruction in testing inferior to make sure that
number of instructions stays fixed. This was tested on aarch64 linux.
Nathan James [Mon, 9 Mar 2020 00:48:51 +0000 (00:48 +0000)]
[clang-tidy] [NFC] Remove unnecessary matchers
Reviewers: aaron.ballman, alexfh, gribozavr2
Reviewed By: aaron.ballman
Subscribers: wuzish, nemanjai, xazax.hun, kbarton, cfe-commits
Tags: #clang, #clang-tools-extra
Differential Revision: https://reviews.llvm.org/D75803
Alex Brachet [Mon, 9 Mar 2020 07:10:59 +0000 (03:10 -0400)]
add extern "C" to __errno_location's definition if in __cplusplus file
Hideto Ueno [Mon, 9 Mar 2020 05:19:32 +0000 (14:19 +0900)]
[Attributor] Deduction based on path exploration
This patch introduces the propagation of known information based on path exploration.
For example,
```
int u(int c, int *p){
if(c) {
return *p;
} else {
return *p + 1;
}
}
```
An argument `p` is dereferenced whatever c's value is.
For an instruction `CtxI`, we accumulate branch instructions in the must-be-executed-context of `CtxI` and then, we take the conjunction of the successors' known state.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D65593
Uday Bondhugula [Mon, 9 Mar 2020 04:27:26 +0000 (04:27 +0000)]
[MLIR] NFC: modernize affine loop fusion test cases
- update test case for readability, avoid unnecessary matches
Signed-off-by: Uday Bondhugula <uday@polymagelabs.com>
Differential Revision: https://reviews.llvm.org/D75823
Uday Bondhugula [Mon, 9 Mar 2020 04:21:40 +0000 (04:21 +0000)]
[MLIR][Affine] NFC: add convenience method for affine data copy for a loop body
add convenience method for affine data copy generation for a loop body
Signed-off-by: Uday Bondhugula <uday@polymagelabs.com>
Differential Revision: https://reviews.llvm.org/D75822
Craig Topper [Sun, 8 Mar 2020 22:54:05 +0000 (15:54 -0700)]
[X86] Remove isel patterns that matched vXi16 X86VBroadcast with i8->i16 aextload input.
This was selecting VBROADCASTW which turned the 8-bit load into
a 16-bit load if it happened to be 2 byte aligned.
I have a plan to fix the regression with a follow up patch
which I'll post shortly.
Nathan James [Sat, 7 Mar 2020 09:51:43 +0000 (09:51 +0000)]
[ASTMatchers] adds isComparisonOperator to BinaryOperator and CXXOperatorCallExpr
Reviewers: aaron.ballman, gribozavr2
Reviewed By: aaron.ballman
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75800
Michael Liao [Sun, 8 Mar 2020 16:59:21 +0000 (12:59 -0400)]
Fix GCC warnings. NFC.
David Green [Sun, 8 Mar 2020 13:01:18 +0000 (13:01 +0000)]
[ARM] MVE VMULL tests. NFC
Sanjay Patel [Sun, 8 Mar 2020 13:57:55 +0000 (09:57 -0400)]
[VectorCombine] fold extract-extract-op with different extraction indexes
opcode (extelt V0, Ext0), (ext V1, Ext1) --> extelt (opcode (splat V0, Ext0), V1), Ext1
The first part of this patch generalizes the cost calculation to accept
different extraction indexes. The second part creates a shuffle+extract
before feeding into the existing code to create a vector op+extract.
The patch conservatively uses "TargetTransformInfo::SK_PermuteSingleSrc"
rather than "TargetTransformInfo::SK_Broadcast" (splat specifically
from element 0) because we do not have a more general "SK_Splat"
currently. That does not affect any of the current regression tests,
but we might be able to find some cost model target specialization where
that comes into play.
I suspect that we can expose some missing x86 horizontal op codegen with
this transform, so I'm speculatively adding a debug flag to disable the
binop variant of this transform to allow easier testing.
The test changes show that we're sensitive to cost model diffs (as we
should be), so that means that patches like D74976
should have better coverage.
Differential Revision: https://reviews.llvm.org/D75689
Sanjay Patel [Sun, 8 Mar 2020 13:33:07 +0000 (09:33 -0400)]
[VectorCombine] add tests for wider vectors; NFC
Kang Zhang [Sun, 8 Mar 2020 11:58:53 +0000 (11:58 +0000)]
[NFC][PowerPC] Order the MTSTR/MFSPR InstAlias definetion by SPR
Summary:
This NFC patch is only modify the position of MTSTR/MFSPR InstAlias
definition. So it will be easy to read.
LLVM GN Syncbot [Sun, 8 Mar 2020 11:50:36 +0000 (11:50 +0000)]
[gn build] Port
57c964aaa76
Tyker [Sun, 8 Mar 2020 11:19:29 +0000 (12:19 +0100)]
[AssumeBundles] Move to IR so it can be used by Analysis
Summary:
Assume bundles need to be usable by Analysis and Transforms/Utils isn't.
so this commit moves utilities to deal with asusme bundles to IR.
Reviewers: jdoerfert
Reviewed By: jdoerfert
Subscribers: mgorny, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75618
Tyker [Sat, 7 Mar 2020 17:00:05 +0000 (18:00 +0100)]
[AssumeBundles] Add API to query a bundles from a use
Summary: Finding what information is know about a value from a use is generally useful and can be done quickly.
Reviewers: jdoerfert
Reviewed By: jdoerfert
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75616
Craig Topper [Sun, 8 Mar 2020 08:15:26 +0000 (00:15 -0800)]
[X86] Add DAG combine to turn (vzext_movl (vbroadcast_load)) -> vzext_load.
If we're zeroing the other elements then we don't need the broadcast.
Kang Zhang [Sun, 8 Mar 2020 06:32:12 +0000 (06:32 +0000)]
Revert "[NFC][PowerPC] Remove the repeated definition for some InstAlias of mtspr/mfspr"
This reverts commit
46126a30f268a54dc68a40ca07556cf8aca5edbc.
Some test cases failed.
Kang Zhang [Sun, 8 Mar 2020 06:02:55 +0000 (06:02 +0000)]
[NFC][PowerPC] Remove the repeated definition for some InstAlias of mtspr/mfspr
Summary:
Below InstAlias have been redeclaration, this patch is to remove them.
mtdec/mfdec mtsdr1/mfsdr1 mtsrr0/mfsrr0 mtsrr1/mfsrr1
Yaxun (Sam) Liu [Sun, 8 Mar 2020 05:38:30 +0000 (00:38 -0500)]
Fix lldb build failure due to clang mangler change
Yaxun (Sam) Liu [Thu, 5 Mar 2020 17:02:13 +0000 (12:02 -0500)]
[NFC] Let mangler accept GlobalDecl
Differential Revision: https://reviews.llvm.org/D75700
Alex Brachet [Sun, 8 Mar 2020 03:56:03 +0000 (22:56 -0500)]
[libc] [NFC] Use matchers in tests
Summary:
Use `EXPECT_THAT` where possible in tests NFC intended.
Added a `void *` template instantiation of `StreamWrapper::operator<<`
Reviewers: sivachandra, PaulkaToast
Reviewed By: sivachandra
Subscribers: MaskRay, tschuett, libc-commits
Differential Revision: https://reviews.llvm.org/D75717
Nathan Chancellor [Sun, 8 Mar 2020 00:37:44 +0000 (16:37 -0800)]
[Sema] Add -Wpointer-to-enum-cast and -Wvoid-pointer-to-enum-cast
GCC does not warn on casts from pointers to enumerators, while clang
currently does: https://godbolt.org/z/3DFDVG
This causes a bunch of extra warnings in the Linux kernel, where
certain structs contain a void pointer to avoid using a gigantic
union for all of the various types of driver data, such as
versions.
Add a diagnostic that allows certain projects like the kernel to
disable the warning just for enums, which allows those projects to
keep full compatibility with GCC but keeps the intention of treating
casts to integers and enumerators the same by default so that other
projects have the opportunity to catch issues not noticed before (or
follow suite and disable the warning).
Link: https://github.com/ClangBuiltLinux/linux/issues/887
Reviewed By: rjmccall
Differential Revision: https://reviews.llvm.org/D75758
Craig Topper [Sun, 8 Mar 2020 00:14:26 +0000 (16:14 -0800)]
[X86] Add DAG combine to replace vXi64 vzext_movl+scalar_to_vector with vYi32 vzext_movl+scalar_to_vector if the upper 32 bits of the scalar are zero.
We can just use a 32-bit copy and zero in the SSE domain when we
zero the upper bits.
Remove an isel pattern that becomes dead with this.
Craig Topper [Sat, 7 Mar 2020 22:39:53 +0000 (14:39 -0800)]
[X86] Add DAG combines to enable removing of movddup/vbroadcast + simple_load isel patterns.
Craig Topper [Sat, 7 Mar 2020 19:33:10 +0000 (11:33 -0800)]
[X86] Add a DAG combine to turn vbroadcast(vzload X) -> vbroadcast_load
Remove now unneeded isel patterns.
Argyrios Kyrtzidis [Sat, 7 Mar 2020 23:04:23 +0000 (15:04 -0800)]
[Index/USRGeneration] Make sure that ObjC properties in categories also get namescoped properly for USR generation
If the property is in a category that has module names from external_declaration property, make sure they are included in the USR.
rdar://
59897320
kpdev [Sat, 7 Mar 2020 07:30:42 +0000 (10:30 +0300)]
[NFC][Test commit] Remove redundant point in docs
Rafael Ávila de Espíndola [Sat, 7 Mar 2020 18:52:51 +0000 (10:52 -0800)]
[Sema] Initialize IsSurrogate
This fixes https://bugs.llvm.org/show_bug.cgi?id=45096
Differential Revision: https://reviews.llvm.org/D75701
Ruyman [Fri, 26 Jul 2019 15:21:01 +0000 (16:21 +0100)]
[SYCL] Driver option to select SYCL version
Summary:
User can select the version of SYCL the compiler will
use via the flag -sycl-std, similar to -cl-std.
The flag defines the LangOpts.SYCLVersion option to the
version of SYCL. The default value is undefined.
If driver is building SYCL code, flag is set to the default SYCL
version (1.2.1)
The preprocessor uses this variable to define CL_SYCL_LANGUAGE_VERSION macro,
which should be defined according to SYCL 1.2.1 standard.
Only valid value at this point for the flag is 1.2.1.
Co-Authored-By: David Wood <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co>
Signed-off-by: Ruyman Reyes <ruyman@codeplay.com>
Subscribers: ebevhan, Anastasia, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D72857
Craig Topper [Sat, 7 Mar 2020 06:29:34 +0000 (22:29 -0800)]
[X86] Use MVT instead of EVT in a couple shuffle lowering functions.
Mehdi Amini [Sat, 7 Mar 2020 17:43:10 +0000 (17:43 +0000)]
Fix MLIR clang-tidy: when tweaking it does not inherit from the parent
It is almost identical to the top-level .clang-tidy, except that
{Member,Parameter,Variable}Case use camelBack.
Michał Górny [Sat, 7 Mar 2020 17:35:22 +0000 (18:35 +0100)]
[lldb] Un-XFAIL two tests on NetBSD
Nikita Popov [Sat, 7 Mar 2020 11:18:05 +0000 (12:18 +0100)]
[InstCombine] Fix known bits handling in SimplifyDemandedUseBits
Fixes a regression from D75801. SimplifyDemandedUseBits() is also
supposed to compute the known bits (of the demanded subset) of the
instruction. For unknown instructions it does so by directly calling
computeKnownBits(). For known instructions it will compute known
bits itself. However, for instructions where only some cases are
handled directly (e.g. a constant shift amount) the known bits
invocation for the unhandled case is sometimes missing. This patch
adds the missing calls and thus removes the main discrepancy with
ExpensiveCombines mode.
Differential Revision: https://reviews.llvm.org/D75804
Matt Arsenault [Wed, 6 Nov 2019 18:26:43 +0000 (10:26 -0800)]
Assume ieee behavior without denormal-fp-math attribute
Nikita Popov [Sat, 7 Mar 2020 16:18:39 +0000 (17:18 +0100)]
[InstCombine] Regenerate test checks; NFC
Nikita Popov [Sat, 7 Mar 2020 15:25:33 +0000 (16:25 +0100)]
[InstSimplify] Add tests for "returned" attribute; NFC
Nikita Popov [Sat, 7 Mar 2020 11:59:16 +0000 (12:59 +0100)]
[InstCombine] Add additional known bits folding tests; NFC
Nikita Popov [Sat, 7 Mar 2020 09:56:29 +0000 (10:56 +0100)]
[InstCombine] Highlight tests using expensive combines; NFC
Sanjay Patel [Sat, 7 Mar 2020 15:20:38 +0000 (10:20 -0500)]
[InstCombine] regenerate complete test checks; NFC
Sanjay Patel [Sat, 7 Mar 2020 15:00:31 +0000 (10:00 -0500)]
[InstCombine] add test for gep (select),... (PR45084); NFC
Sourabh Singh Tomar [Sat, 7 Mar 2020 12:20:07 +0000 (17:50 +0530)]
[DebugInfo]: Added DWARFv5 macro header flags and corresponding helper
functions.
Stefanos Baziotis [Sat, 7 Mar 2020 10:38:44 +0000 (12:38 +0200)]
[Attributor] Fold terminators before changing instructions to unreachable
It is possible that an instruction to be changed to unreachable is
in the same block with a terminator that can be constant-folded.
In this case, as of now, the instruction will be changed to
unreachable before the terminator is folded. But, then the
whole BB becomes invalidated and so when we go ahead to fold
the terminator, we trap.
Change the order of these two.
Differential Revision: https://reviews.llvm.org/D75780
River Riddle [Sat, 7 Mar 2020 07:01:49 +0000 (23:01 -0800)]
[mlir] Change EffectKind in unsigned for bitfield to avoid miscompile in
MSVC
MSVC has problems if the type of the bitfield is different, leading to
invalid code generation.