Louis Dionne [Fri, 9 Oct 2020 18:39:20 +0000 (14:39 -0400)]
[libc++] Rename LIBCXX_ENABLE_DEBUG_MODE to LIBCXX_ENABLE_DEBUG_MODE_SUPPORT
To make it clearer this is about whether the library supports the debug
mode at all, not whether the debug mode is enabled. Per comment by Nico
Weber on IRC.
Louis Dionne [Fri, 9 Oct 2020 18:21:23 +0000 (14:21 -0400)]
[libc++] NFCI: Define small methods of basic_stringstream inline
It greatly increases readability because defining the methods out-of-line
involves a ton of boilerplate template declarations.
Arthur Eubanks [Wed, 7 Oct 2020 03:28:43 +0000 (20:28 -0700)]
[BPF] Make BPFAbstractMemberAccessPass required
Or else on optnone functions we get the following during instruction selection:
fatal error: error in backend: Cannot select: intrinsic %llvm.preserve.struct.access.index
Currently the -O0 pipeline doesn't properly run passes registered via
TargetMachine::registerPassBuilderCallbacks(), so don't add that RUN
line yet. That will be fixed after this.
Reviewed By: yonghong-song
Differential Revision: https://reviews.llvm.org/D89083
Simon Pilgrim [Fri, 9 Oct 2020 18:19:35 +0000 (19:19 +0100)]
[ARM][MIPS] Add funnel shift test coverage
Based on offline discussions regarding D89139 and D88783 - we want to make sure targets aren't doing anything particularly dumb
Tests copied from aarch64 which has a mixture of general, legalization and special case tests
Jonas Devlieghere [Fri, 9 Oct 2020 17:57:37 +0000 (10:57 -0700)]
[lldb] Update docs with new buildbot URLs
Buildbot got upgraded and now the (LLDB) builders have different URLs.
Giorgis Georgakoudis [Tue, 7 Jul 2020 21:14:47 +0000 (14:14 -0700)]
[OpenMPOpt] Merge parallel regions
There are cases that generated OpenMP code consists of multiple,
consecutive OpenMP parallel regions, either due to high-level
programming models, such as RAJA, Kokkos, lowering to OpenMP code, or
simply because the programmer parallelized code this way. This
optimization merges consecutive parallel OpenMP regions to: (1) reduce
the runtime overhead of re-activating a team of threads; (2) enlarge the
scope for other OpenMP optimizations, e.g., runtime call deduplication
and synchronization elimination.
This implementation defensively merges parallel regions, only when they
are within the same BB and any in-between instructions are safe to
execute in parallel.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D83635
Louis Dionne [Fri, 25 Sep 2020 13:24:14 +0000 (09:24 -0400)]
[libc++] Clean up logic around aligned/sized allocation and deallocation
Due to the need to support compilers that implement builtin operator
new/delete but not their align_val_t overloaded versions, there was a
lot of complexity. By assuming that a compiler that supports the builtin
new/delete operators also supports their align_val_t overloads, the code
can be simplified quite a bit.
Differential Revision: https://reviews.llvm.org/D88301
Louis Dionne [Wed, 7 Oct 2020 18:27:55 +0000 (14:27 -0400)]
[clang] Don't look into <sysroot> for C++ headers if they are found alongside the toolchain
Currently, Clang looks for libc++ headers alongside the installation
directory of Clang, and it also adds a search path for headers in the
-isysroot. This is problematic if headers are found in both the toolchain
and in the sysroot, since #include_next will end up finding the libc++
headers in the sysroot instead of the intended system headers.
This patch changes the logic such that if the toolchain contains libc++
headers, no C++ header paths are added in the sysroot. However, if the
toolchain does *not* contain libc++ headers, the sysroot is searched as
usual.
This should not be a breaking change, since any code that previously
relied on some libc++ headers being found in the sysroot suffered from
the #include_next issue described above, which renders any libc++ header
basically useless.
Differential Revision: https://reviews.llvm.org/D89001
Louis Dionne [Fri, 9 Oct 2020 16:33:49 +0000 (12:33 -0400)]
[libc++] Remove some workarounds for C++03
We don't support any compiler that doesn't support variadics and rvalue
references in C++03 mode, so these workarounds can be dropped. There's
still *a lot* of cruft related to these workarounds, but I try to tackle
a bit of it here and there.
Arthur Eubanks [Thu, 8 Oct 2020 15:53:00 +0000 (08:53 -0700)]
[FixIrreducible][NewPM] Port -fix-irreducible to NPM
In the NPM, a pass cannot depend on another non-analysis pass. So pin
the test that tests that -lowerswitch is run automatically to legacy PM.
Reviewed By: sameerds
Differential Revision: https://reviews.llvm.org/D89051
Arthur Eubanks [Thu, 17 Sep 2020 23:19:04 +0000 (16:19 -0700)]
[LoopInterchange][NewPM] Port -loop-interchange to NPM
Reviewed By: fhahn
Differential Revision: https://reviews.llvm.org/D89058
Jay Foad [Fri, 9 Oct 2020 12:28:19 +0000 (13:28 +0100)]
[AMDGPU] Only enable mad/mac legacy f32 patterns if denormals may be flushed
Following on from D88890, this makes the newly added patterns
conditional on NoFP32Denormals. mad/mac f32 instructions always flush
denormals regardless of the MODE register setting, and I believe the
legacy variants do the same.
Differential Revision: https://reviews.llvm.org/D89123
Tres Popp [Fri, 9 Oct 2020 13:37:42 +0000 (15:37 +0200)]
[mlir] Forward listeners when utilizing scf::IfOp::get*BodyBuilder.
Without this PatternRewriting infrastructure does not know of modifications and
cannot properly legalize nor rollback changes.
Differential Revision: https://reviews.llvm.org/D89129
Simon Pilgrim [Fri, 9 Oct 2020 15:54:32 +0000 (16:54 +0100)]
[InstCombine] Support lshr(trunc(lshr(x,c1)), c2) -> trunc(lshr(lshr(x,c1),c2)) uniform vector tests
FoldShiftByConstant is hardcoded for scalar/uniform outer shift amounts atm so that needs to be fixed first to support non-uniform cases
Simon Pilgrim [Fri, 9 Oct 2020 15:32:07 +0000 (16:32 +0100)]
[InstCombine] Add lshr(trunc(lshr(x,c1)), c2) -> trunc(lshr(lshr(x,c1),c2)) vector tests
Eugene Zhulenev [Thu, 8 Oct 2020 20:28:09 +0000 (13:28 -0700)]
[MLIR] Add async token/value arguments to async.execute op
Async execute operation can take async arguments as dependencies.
Change `async.execute` custom parser/printer format to use `%value as %unwrapped: !async.value<!type>` sytax.
Reviewed By: mehdi_amini, herhut
Differential Revision: https://reviews.llvm.org/D88601
Andrzej Warzynski [Fri, 9 Oct 2020 09:57:35 +0000 (10:57 +0100)]
[mlir] Fix shared libs build
Reverts one breaking change introduced in
https://reviews.llvm.org/D88846.
Differential Revision: https://reviews.llvm.org/D89111
David Green [Fri, 9 Oct 2020 15:25:25 +0000 (16:25 +0100)]
[ARM] Add MVE vecreduce costmodel tests. NFC
There were some existing tests that were not super useful. New ones are
added for testing MVE specific patterns.
Scott Linder [Fri, 9 Oct 2020 15:13:45 +0000 (15:13 +0000)]
[NFC] Reformat MILexer.cpp:getIdentifierKind
Reformat to avoid unrelated changes in diff of future patch.
Committed as obvious.
Simon Pilgrim [Fri, 9 Oct 2020 14:59:19 +0000 (15:59 +0100)]
[InstCombine] commonShiftTransforms - add support for pow2 nonuniform constant vectors in srem fold
Note: we already fold srem to undef if any denominator vector element is undef.
Krzysztof Parzyszek [Fri, 9 Oct 2020 14:34:24 +0000 (09:34 -0500)]
[Hexagon] Return 1 instead of 0 from getMaxInterleaveFactor
Sanjay Patel [Fri, 9 Oct 2020 14:25:08 +0000 (10:25 -0400)]
[InstCombine] allow vector splats for add+and with high-mask
There might be a better way to specify the pre-conditions,
but this is hopefully clearer than the way it was written:
https://rise4fun.com/Alive/Jhk3
Pre: C2 < 0 && isShiftedMask(C2) && (C1 == C1 & C2)
%a = and %x, C2
%r = add %a, C1
=>
%a2 = add %x, C1
%r = and %a2, C2
Simon Pilgrim [Fri, 9 Oct 2020 13:42:34 +0000 (14:42 +0100)]
[InstCombine] Add tests for X shift (A srem B) -> X shift (A and B-1) pow2 nonuniform constant vectors
Anastasia Stulova [Fri, 9 Oct 2020 14:13:39 +0000 (15:13 +0100)]
[OpenCL] Add new compilation mode for OpenCL 3.0.
Extended -cl-std/std flag with CL3.0 and added predefined version macros.
Patch by Anton Zabaznov (azabaznov)!
Tags: #clang
Differential Revision: https://reviews.llvm.org/D88300
Louis Dionne [Fri, 9 Oct 2020 14:08:02 +0000 (10:08 -0400)]
[libc++] Make sure we don't cache DSL functions too aggressively
To make sure we don't store a mutable object (which could be modified by
outside code without us noticing) as the cache key, we pickle the cache
key to get a byte stream. If two keys are unequal, we know for sure they
will not have the same pickling. And if they are equal, there's a large
chance they will have the same pickling. If they don't, we might end up
not reusing a cached entry when we could have, but at least the behavior
we'll have is semantically correct.
Irina Dobrescu [Fri, 2 Oct 2020 14:45:44 +0000 (15:45 +0100)]
[mlir][openmp][NFC]Remove unnecessary brackets and rephrase ParallelOp description in mlir definition
Differential Revision: https://reviews.llvm.org/D88740
Sam McCall [Fri, 9 Oct 2020 14:08:44 +0000 (16:08 +0200)]
[clangd] Stop logging in fromJSON, report instead.
Fanbo Meng [Fri, 9 Oct 2020 14:13:45 +0000 (10:13 -0400)]
[SystemZ][z/OS] Update target specific __attribute__((aligned)) value for test
z/OS defaults to 16 bytes for __attribute__((aligned)), modify the test to differentiate between z/OS and Linux on s390x.
Reviewed By: abhina.sreeskantharajan
Differential Revision: https://reviews.llvm.org/D89127
Louis Dionne [Fri, 9 Oct 2020 14:08:42 +0000 (10:08 -0400)]
[libc++] More consistency with declaring int main(int, char**)
Tres Popp [Fri, 9 Oct 2020 12:34:44 +0000 (14:34 +0200)]
[mlir] Use PatternRewriter infrastructure for shape.assuming bufferization
Without this, legalization might not recursively handle child ops properly.
Additionally, this is required for pattern rewriting to properly rollback conversions.
Differential Revision: https://reviews.llvm.org/D89122
LLVM GN Syncbot [Fri, 9 Oct 2020 13:54:24 +0000 (13:54 +0000)]
[gn build] Port
0741a2c9cac
Stefan Pintilie [Fri, 9 Oct 2020 13:20:00 +0000 (08:20 -0500)]
[Clang][unittests][NFC] Break up test in Callbacks.cpp
The Callbacks.cpp test was taking a long time to compile on some build bots
causing timeouts. This patch splits up that test into five separate cpp
files and a header file.
Reviewed By: gribozavr2
Differential Revision: https://reviews.llvm.org/D88886
Florian Hahn [Fri, 9 Oct 2020 13:32:21 +0000 (14:32 +0100)]
[SCEV] Do not apply info from loop guards in AddRecs.
We cannot guarantee that the replacement expression is loop-invariant in
all AddRecs in the source expression. Use a rewriter that skips
AddRecExpr for now.
Fixes PR47776.
Simon Pilgrim [Fri, 9 Oct 2020 13:22:19 +0000 (14:22 +0100)]
[InstCombine] foldShiftOfShiftedLogic - add support for nonuniform constant vectors
Alexander Kornienko [Thu, 8 Oct 2020 22:56:00 +0000 (00:56 +0200)]
Remove old create(MainFile)?IncludeInsertion overloads
Reviewed By: hokein
Differential Revision: https://reviews.llvm.org/D89117
Simon Pilgrim [Fri, 9 Oct 2020 13:09:52 +0000 (14:09 +0100)]
[InstCombine] foldShiftOfShiftedLogic - replace cast<BinaryOperator> with m_BinOp matcher. NFCI.
Allows us to drop the !isa<ConstantExpr> check.
Stephan Herhut [Fri, 9 Oct 2020 10:12:35 +0000 (12:12 +0200)]
[mlir][gpu] Fix bug in kernel outlining
The updated version of kernel outlining did not handle cases correctly
where an operand of a candidate for sinking itself was defined by an operation
that is a sinking candidate. In such cases, it could happen that sunk
operations were inserted in the wrong order, breaking ssa properties.
Differential Revision: https://reviews.llvm.org/D89112
Simon Pilgrim [Fri, 9 Oct 2020 12:41:58 +0000 (13:41 +0100)]
[InstCombine] Add nonuniform/undef vector tests for shift(binop(shift(x,c1),y),c2) patterns
Martin Storsjö [Tue, 6 Oct 2020 10:07:17 +0000 (13:07 +0300)]
[LLD] [ELF] Fix the help listing for the wrap option. NFC.
This option just takes a single symbol name per invocation of the
option.
Differential Revision: https://reviews.llvm.org/D89007
Konstantin Zhuravlyov [Fri, 9 Oct 2020 12:29:53 +0000 (08:29 -0400)]
Regenerate ClangCommandLineReference.rst
Differential Revision: https://reviews.llvm.org/D89091
Ben Dunbobbin [Mon, 31 Aug 2020 20:32:36 +0000 (21:32 +0100)]
[windows-itanium] make dllimport/export handling closer to MS behavior
Differential Revision: https://reviews.llvm.org/D86828
Ben Dunbobbin [Fri, 9 Oct 2020 12:22:46 +0000 (13:22 +0100)]
Revert "first upstream review"
Pushed by accident :(
This reverts commit
4eb627ed96e3f2f9f24aec8a0654ce5204874bb8.
Ben Dunbobbin [Mon, 31 Aug 2020 20:32:36 +0000 (21:32 +0100)]
first upstream review
Sam McCall [Fri, 2 Oct 2020 09:34:40 +0000 (11:34 +0200)]
[clangd] Make the tweak filter a parameter to enumerateTweaks. NFC
(Required for CodeActionContext.only)
Differential Revision: https://reviews.llvm.org/D88724
Roman Lebedev [Fri, 9 Oct 2020 11:47:34 +0000 (14:47 +0300)]
Reland "[NFC][SCEV] Improve tests for ptrtoint modelling (D88806)"
I messed up runlines in the original commit.
Jonas Toth [Fri, 9 Oct 2020 11:17:59 +0000 (13:17 +0200)]
[clang] improve accuracy of ExprMutAnalyzer
This patch extracts the ExprMutAnalyzer changes from https://reviews.llvm.org/D54943
into its own revision for simpler review and more atomic changes.
The analysis results are improved. Nested expressions (e.g. conditional
operators) are now detected properly. Some edge cases, especially
template induced imprecisions are improved upon.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D88088
Nithin Vadukkumchery Rajendrakumar [Fri, 9 Oct 2020 11:42:25 +0000 (13:42 +0200)]
[Analyzer] Fix for dereferece of smart pointer after branching on unknown inner pointer
Summary: Enabling warning after dereferece of smart pointer after branching on unknown inner pointer.
Reviewers: NoQ, Szelethus, vsavchenko, xazax.hun
Reviewed By: NoQ
Subscribers: martong, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D87043
Max Kazantsev [Fri, 9 Oct 2020 11:28:12 +0000 (18:28 +0700)]
[NFC] Add option to disable IV widening if needed
IV widening is sometimes a strictly harmful transform (some examples
of this are shown in tests 11, 12 in widen-loop-comp.ll). One of the
reasons of this is that sometimes SCEV fails to prove some facts after
part of guards has been widened.
Though each single such case looks like a bug that can be addressed,
it seems that disabling of IV widening may be profitable in some cases.
We want to have an option to do so. By default, existing behavior is
preserved and IV widening is on.
James Molloy [Fri, 9 Oct 2020 11:12:11 +0000 (12:12 +0100)]
[mlir] Fix bug in computing operation order
When attempting to compute a differential orderIndex we were calculating the
bailout condition correctly, but then an errant "+ 1" meant the orderIndex we
created was invalid.
Added test.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D89115
Roman Lebedev [Fri, 9 Oct 2020 11:10:43 +0000 (14:10 +0300)]
Revert "[NFC][SCEV] Improve tests for ptrtoint modelling (D88806)"
Buildbots aren't happy, need to investigate.
This reverts commit
32cc8f7998abe1824e0832a49b66559471c9b879.
Jonas Paulsson [Thu, 8 Oct 2020 11:18:29 +0000 (13:18 +0200)]
[SystemZ] Use LA instead of AGR in eliminateFrameIndex().
Since AGR clobbers CC it should not be used here.
Fixes https://bugs.llvm.org/show_bug.cgi?id=47736.
Review: Ulrich Weigand
Differential Revision: https://reviews.llvm.org/D89034
Dávid Bolvanský [Fri, 9 Oct 2020 10:55:46 +0000 (12:55 +0200)]
[Diagnostics] Diagnose -Wsizeof-array-div for array of pointers
Differential Revision: https://reviews.llvm.org/D87990
Roman Lebedev [Fri, 9 Oct 2020 10:35:34 +0000 (13:35 +0300)]
[NFC][SCEV] Improve tests for ptrtoint modelling (D88806)
Christian Sigg [Thu, 8 Oct 2020 11:17:22 +0000 (13:17 +0200)]
[mlir] NFC: small improvement to how we print a gpu.launch op.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D89033
Luís Marques [Fri, 9 Oct 2020 09:00:11 +0000 (10:00 +0100)]
[NFC] Fix banner
Esme-Yi [Fri, 9 Oct 2020 08:51:40 +0000 (08:51 +0000)]
[DAGCombiner] Add decomposition patterns for Mul-by-Imm.
Summary: This patch is derived from D87384.
In this patch we expand the existing decomposition of mul-by-constant to be more general by implementing 2 patterns:
```
mul x, (2^N + 2^M) --> (add (shl x, N), (shl x, M))
mul x, (2^N - 2^M) --> (sub (shl x, N), (shl x, M))
```
The conversion will be trigged if the multiplier is a big constant that the target can't use a single multiplication instruction to handle. This is controlled by the hook `decomposeMulByConstant`.
More over, the conversion benefits from an ILP improvement since the instructions are independent. A case with the sequence like following also gets benefit since a shift instruction is saved.
```
*res1 = a * 0x8800;
*res2 = a * 0x8080;
```
Reviewed By: spatel
Differential Revision: https://reviews.llvm.org/D88201
Georgii Rymar [Fri, 9 Oct 2020 07:13:56 +0000 (10:13 +0300)]
[llvm-readelf/obj][test] - Stop using precompiled binary in mips-plt.test
This removes the precompiled binary and rewrites test to use YAML.
After this change we'll have no more precompiled inputs in `llvm-readobj/ELF/Inputs`.
Differential revision: https://reviews.llvm.org/D89097
Pavel Labath [Fri, 9 Oct 2020 08:35:02 +0000 (10:35 +0200)]
[lldb] Delete copy operations on PluginInterface class
This is a polymorphic class, copying it is a bad idea.
This was not a problem because most classes inheriting from it were
deleting their copy operations themselves. However, this enables us to
delete those explicit deletions, and ensure noone forgets to add them in
the future.
Bevin Hansson [Fri, 14 Aug 2020 09:47:25 +0000 (11:47 +0200)]
[Fixed Point] Add floating point methods to APFixedPoint.
This adds methods to APFixedPoint for converting to and from
floating point values.
Differential Revision: https://reviews.llvm.org/D85961
Bevin Hansson [Tue, 25 Aug 2020 13:59:12 +0000 (15:59 +0200)]
Refactor fixed point conversion test.
Differential Revision: https://reviews.llvm.org/D88648
Bevin Hansson [Fri, 11 Sep 2020 11:59:22 +0000 (13:59 +0200)]
[IR] Add Type::getFloatingPointTy.
It is possible to get a fltSemantics of a particular Type,
but there is no way to produce a Type based on a
fltSemantics.
This adds the function Type::getFloatingPointTy, which
will return the appropriate floating point Type for a given
fltSemantics.
ConstantFP is modified to use this function instead of
implementing it itself. Also some minor refactors to use
Type::getFltSemantics instead of a hand-rolled version.
Differential Revision: https://reviews.llvm.org/D87512
Sam McCall [Fri, 9 Oct 2020 08:21:25 +0000 (10:21 +0200)]
[clangd] Fix dead variable, typo. NFC
Kadir Cetinkaya [Mon, 5 Oct 2020 09:52:58 +0000 (11:52 +0200)]
[clangd] Enable partial namespace matches for workspace symbols
This will enable queries like "clangd::" to find symbols under clangd
namespace, without requiring full "clang::clangd::" qualification.
Since Fuzzyfind performs the search under all scopes and only boosts the symbols
from relevant namespaces, we might get symbols from non-matching namespaces.
This patch chooses to drop those as they clearly do not match the query.
Fixes https://github.com/clangd/clangd/issues/550.
Differential Revision: https://reviews.llvm.org/D88814
Kadir Cetinkaya [Wed, 5 Aug 2020 20:18:39 +0000 (22:18 +0200)]
[clangd] Reduce availability of extract function
This patch introduces hoisting detection logic into prepare state with
a partial AST traversal of the enclosing function.
We had some complaints from the users about this code action being almost always
available but failing most of the time. Hopefully this should reduce that noise.
The latency/correctness tradeoff is a bunch of hand-waving, but at least today
we don't have any other actions that are available on selection of statements,
so when we get to do the traversal it is quite likely that all the other checks
will bail out early. But this is still up for discussion, I am happy to abandon
the patch if you believe this is not practical.
Differential Revision: https://reviews.llvm.org/D85354
Haojian Wu [Fri, 9 Oct 2020 06:51:17 +0000 (08:51 +0200)]
[clangd] Add more incomplete_type diagnostics that could be fixed by include-fixer.
Differential Revision: https://reviews.llvm.org/D89036
Mehdi Amini [Fri, 9 Oct 2020 06:17:53 +0000 (06:17 +0000)]
Remove -gen-pass-doc from Flang CMake configuration: the documentation generation is broken
`ninja mlir-doc` fails when Flang is configured with this.
Mehdi Amini [Fri, 9 Oct 2020 06:16:42 +0000 (06:16 +0000)]
Revert "[MLIR] Add a foldTrait() mechanism to allow traits to define folding and test it with an Involution trait"
This reverts commit
1ceaffd95a6bdc4b7d2193e049bcd6b40ee9ff50.
The build is broken with -DBUILD_SHARED_LIBS=ON ; seems like a possible
layering issue to investigate:
tools/mlir/lib/IR/CMakeFiles/obj.MLIRIR.dir/Operation.cpp.o: In function `mlir::MemoryEffectOpInterface::hasNoEffect(mlir::Operation*)':
Operation.cpp:(.text._ZN4mlir23MemoryEffectOpInterface11hasNoEffectEPNS_9OperationE[_ZN4mlir23MemoryEffectOpInterface11hasNoEffectEPNS_9OperationE]+0x9c): undefined reference to `mlir::MemoryEffectOpInterface::getEffects(llvm::SmallVectorImpl<mlir::SideEffects::EffectInstance<mlir::MemoryEffects::Effect> >&)'
Federico Lebrón [Fri, 9 Oct 2020 03:58:42 +0000 (03:58 +0000)]
Give attributes C++ namespaces.
Reviewed By: mehdi_amini, jpienaar
Differential Revision: https://reviews.llvm.org/D89014
Serge Guelton [Mon, 5 Oct 2020 19:35:18 +0000 (15:35 -0400)]
[mlir] Improve LLVM shlib support
mlir-tblgen was incompatible with libLLVM, due to explicit linkage with
libLLVMSupport etc.
As it cannot link with libLLVM, make sure all lib it uses are not using libLLVM
either.
As a side effect, also remove some explicit references to LLVM libs and use
components instead.
Differential Revision: https://reviews.llvm.org/D88846
Fangrui Song [Fri, 9 Oct 2020 05:08:13 +0000 (22:08 -0700)]
[MCRegister] Simplify isStackSlot & isPhysicalRegister and delete isPhysical. NFC
Jonas Devlieghere [Fri, 9 Oct 2020 03:01:21 +0000 (20:01 -0700)]
[lldb] Format remaining signal table (NFC)
Restore the signal tables to its original glory and mark it as not to be
clang-formatted.
Fangrui Song [Fri, 9 Oct 2020 04:38:17 +0000 (21:38 -0700)]
Fix incorect Register -> MCRegister conversion
getReg returns a Register which may represent a virtual register.
ahmedsabie [Fri, 9 Oct 2020 02:58:10 +0000 (02:58 +0000)]
[MLIR] Add a foldTrait() mechanism to allow traits to define folding and test it with an Involution trait
This change allows folds to be done on a newly introduced involution trait rather than having to manually rewrite this optimization for every instance of an involution
Reviewed By: rriddle, andyly, stephenneuendorffer
Differential Revision: https://reviews.llvm.org/D88809
Liu, Chen3 [Fri, 9 Oct 2020 03:20:29 +0000 (11:20 +0800)]
[X86] Passing union type through register
For example:
union M256 {
double d;
__m256 m;
};
extern void foo1(union M256 A);
union M256 m1;
void test() {
foo1(m1);
}
clang will pass m1 through stack which does not follow the ABI.
Differential Revision: https://reviews.llvm.org/D78699
Xing GUO [Fri, 9 Oct 2020 03:13:05 +0000 (11:13 +0800)]
[llvm-dwarfdump][test] Rewrite verify_die_ranges.s in YAML. NFC.
This patch rewrites test case verify_die_ranges.s in YAML which helps
simplify the test.
Reviewed By: jhenderson, JDevlieghere, dblaikie
Differential Revision: https://reviews.llvm.org/D88200
Xing GUO [Fri, 9 Oct 2020 03:09:29 +0000 (11:09 +0800)]
[DWARFYAML] Make the opcode_base and the standard_opcode_lengths fields optional.
This patch makes the opcode_base and the standard_opcode_lengths fields
of the line table optional. When both of them are not specified,
yaml2obj emits them according to the line table's version.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D88355
Kazushi (Jam) Marukawa [Sat, 3 Oct 2020 05:27:51 +0000 (14:27 +0900)]
[VE] Add new MVT types for NEC SX Aurora VE vector
This patch adds entries for:
v64i64
v128i64
v256i64
v64f64
v128f64
v256f64
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D88776
Ben Barham [Fri, 9 Oct 2020 02:48:33 +0000 (19:48 -0700)]
[AST] Fix crashes caused by redeclarations in hidden prototypes
ObjCContainerDecl.getMethod returns a nullptr by default when the
container is a hidden prototype. Callsites where the method is being
looked up on the redeclaration's own container should skip this check
since they (rightly) expect a valid method to be found.
Resolves rdar://
69444243
Reviewed By: akyrtzi
Differential Revision: https://reviews.llvm.org/D89024
Kai Luo [Fri, 9 Oct 2020 02:28:22 +0000 (02:28 +0000)]
[TwoAddressInstruction][PowerPC] Call `regOverlapsSet` to find out real clobbers and uses
In `rescheduleKillAboveMI`, current implementation uses `SmallSet` to track reg's defs and uses. When comparing, use `SmallSet.count` to find out if it's clobbered or used. It's not correct if involving subregisters. This patch uses `regOverlapsSet` already used by `rescheduleMIBelowKill` to fix the issue.
Fixed https://bugs.llvm.org/show_bug.cgi?id=47707.
Reviewed By: #powerpc, nemanjai
Differential Revision: https://reviews.llvm.org/D88716
Esme-Yi [Fri, 9 Oct 2020 02:32:05 +0000 (02:32 +0000)]
[NFC][PowerPC] Supplement test cases for D88274.
QingShan Zhang [Fri, 9 Oct 2020 02:26:03 +0000 (02:26 +0000)]
[NFC][Test] Update the test with update_llc_test_checks.py
Stella Laurenzo [Thu, 8 Oct 2020 23:41:11 +0000 (16:41 -0700)]
[mlir][CAPI] Remove the exclusion of the MLIR C-API from libMLIR.so.
* I believe this was done early on due to it being experimental/etc.
* Needed for dynamic linking in npcomp.
Differential Revision: https://reviews.llvm.org/D89081
Louis Dionne [Wed, 7 Oct 2020 20:30:32 +0000 (16:30 -0400)]
[libc++] Add caching for feature-detection Lit tests
This significantly speeds up the configuration of libc++'s test suite
by making sure that we don't perform the same operations over and over
again.
Differential Revision: https://reviews.llvm.org/D89003
Alexandre Ganea [Fri, 9 Oct 2020 00:48:50 +0000 (20:48 -0400)]
Re-land [DebugInfo] Add debug location to stubs generated by CGDeclCXX and mark them as artificial
Previously, when clang was compiled with -DLLVM_ENABLE_ASSERTIONS=ON, the added tests were displaying:
inlinable function call in a function with debug info must have a !dbg location
call void @"??1?$c@UB@@@@QEAA@XZ"(%struct.c* @"?f@?1??d@@YAPEAU?$c@UB@@@@XZ@4U2@A")
fatal error: error in backend: Broken module found, compilation aborted!
Stack dump:
0. Program arguments: <f:\svn\buildninja\bin\clang -cc1 -emit-llvm debug-info-no-location.cpp> -gcodeview -debug-info-kind=limited
1. <eof> parser at end of file
2. Per-function optimization
Fixes PR43012
Differential Revision: https://reviews.llvm.org/D66328
Kai Luo [Fri, 9 Oct 2020 00:29:01 +0000 (00:29 +0000)]
[PowerPC] Add RUN line for powerpc 32-bit. NFC.
Austin Kerbow [Thu, 8 Oct 2020 20:19:34 +0000 (13:19 -0700)]
[AMDGPU] Fix mai hazard VALU to LD/ST
Fixes: SWDEV-251863
Differential Revision: https://reviews.llvm.org/D89079
Richard Smith [Fri, 9 Oct 2020 00:00:22 +0000 (17:00 -0700)]
PR47175: Ensure type-dependent function-style casts have dependent
types.
Previously, a type-dependent cast to a deduced class template
specialization type would end up with a non-dependent class template
specialization type, leading to confusion downstream.
Yuanfang Chen [Thu, 8 Oct 2020 22:38:57 +0000 (15:38 -0700)]
[NFC] Fix a comment in MachinePassManager.h
Fix "warning: '\returns' command used in a comment that is not attached
to a function or method declaration [-Wdocumentation]
1 warning generated."
Fangrui Song [Thu, 8 Oct 2020 22:22:32 +0000 (15:22 -0700)]
[X86] Fix some clang-tidy bugprone-argument-comment issues
Jim Ingham [Thu, 8 Oct 2020 22:21:51 +0000 (15:21 -0700)]
Change the default handling of SIGCONT to nosuppress/nostop/notify
Except for the few people actually debugging shells, stopping on a
SIGCONT doesn't add any value. And for people trying to run tests
under the debugger, stopping here is actively inconvenient. So this
patch switches the default behavior to not stop.
Differential Revision: https://reviews.llvm.org/D89019
Mircea Trofin [Wed, 7 Oct 2020 23:11:50 +0000 (16:11 -0700)]
[NFC][MC] MCRegister API typing.
Mostly LiveIntervals, with their effects (users).
Differential Revision: https://reviews.llvm.org/D89018
Thomas Raoux [Thu, 8 Oct 2020 21:45:56 +0000 (14:45 -0700)]
[mlir][vector] Add integration test for vector distribute transformation
Differential Revision: https://reviews.llvm.org/D89062
Thomas Raoux [Thu, 8 Oct 2020 21:41:57 +0000 (14:41 -0700)]
[mlir][vector] Add unit test for vector distribute by block
When distributing a vector larger than the given multiplicity, we can
distribute it by block where each id gets a chunk of consecutive element
along the dimension distributed. This adds a test for this case and adds extra
checks to make sure we don't distribute for cases not multiple of multiplicity.
Differential Revision: https://reviews.llvm.org/D89061
Arthur Eubanks [Tue, 6 Oct 2020 23:13:50 +0000 (16:13 -0700)]
[HWAsan][NewPM] Handle hwasan like other sanitizers
Move it as an EP callback (-O[123]) or in addSanitizersAtO0.
This makes it not run in ThinLTO pre-link (like the other sanitizers),
so don't check LTO runs in hwasan-new-pm.c. Changing its position also
seems to change the generated IR. I think we just need to make sure the
pass runs.
Reviewed By: leonardchan
Differential Revision: https://reviews.llvm.org/D88936
Alexandre Ganea [Thu, 8 Oct 2020 21:20:40 +0000 (17:20 -0400)]
[LLDB] More Windows non-English locales fixes
This is a follow-up for https://reviews.llvm.org/D88975
Simon Pilgrim [Thu, 8 Oct 2020 21:07:36 +0000 (22:07 +0100)]
[InstCombine] visitTrunc - trunc(shl(X, C)) --> shl(trunc(X),trunc(C)) vector support
Annoyingly vectors aren't supported by shouldChangeType(), but we have precedents for always performing this on vector types (e.g. narrowBinOp).
Differential Revision: https://reviews.llvm.org/D89067
Quentin Colombet [Thu, 8 Oct 2020 20:54:24 +0000 (13:54 -0700)]
[GlobalISel] Add missing pass dependencies for IRTranslator
The IRTranslator depends on the branch probability info pass when the
optimization level is different than None and it depends all the time on
the StackProtector pass.
We have to explicitly call out pass dependencies otherwise the pass manager
may not be able to schedule the IRTranslator.
Before this patch, we were lucky because previous passes depend on the branch
probability info pass (like the Global Variable Optimization) and the stack
protector pass is initialized in initializeCodeGen.
However, if the target has a custom pipeline without any passes like Global
Variable Optimization, the pipeline creation will fail, at least because of
the branch probability info pass dependency (it is unlikely that
initializeCodeGen is not called).
This patch adds the missing dependencies to the IRTranslator.
Differential Revision: https://reviews.llvm.org/D89063
Paula Toth [Thu, 8 Oct 2020 20:43:47 +0000 (13:43 -0700)]
[libc] Update buildbot worker version to 2.8.4.
Tested locally by connecting to LLVM master. (:
http://lab.llvm.org:8011/#/builders/78/builds/1
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D89069
Simon Pilgrim [Thu, 8 Oct 2020 19:47:07 +0000 (20:47 +0100)]
[InstCombine] Add additional trunc(shl(x,c)) -> shl(trunc(x),trunc(c)) vector tests
Sanjay Patel [Thu, 8 Oct 2020 19:49:55 +0000 (15:49 -0400)]
[InstCombine] allow vector splats for add+xor with low-mask
This can be allowed with undef elements too, but that can be another step:
https://alive2.llvm.org/ce/z/hnC4Z-