Sander de Smalen [Tue, 14 Apr 2020 12:17:52 +0000 (13:17 +0100)]
[SveEmitter] Implement builtins for contiguous loads/stores
This adds builtins for all contiguous loads/stores, including
non-temporal, first-faulting and non-faulting.
Reviewers: efriedma, SjoerdMeijer
Reviewed By: SjoerdMeijer
Tags: #clang
Differential Revision: https://reviews.llvm.org/D76238
LLVM GN Syncbot [Tue, 14 Apr 2020 14:20:02 +0000 (14:20 +0000)]
[gn build] Port
45630243562
Pierre-vh [Thu, 9 Apr 2020 08:19:23 +0000 (09:19 +0100)]
[Target][ARM] Fix VPT Block Pass miscompilation
The pass was incorrectly reverting back to a "T" when something wrote
to VPR inside a "E" block. This is not the correct behaviour, the
predicate should stay the same.
Differential Revision: https://reviews.llvm.org/D77798
Pierre-vh [Wed, 18 Mar 2020 15:23:17 +0000 (15:23 +0000)]
[Target][ARM] Adding MVE VPT Optimisation Pass
Differential Revision: https://reviews.llvm.org/D76709
Sam McCall [Mon, 13 Apr 2020 20:07:12 +0000 (22:07 +0200)]
[clangd] Add tests that no-op changes are cheap
Summary:
We want to be sure they don't cause AST rebuilds or evict items from the cache.
D77847 is going to start sending spurious no-op changes (in case the preamble
was invalidated), this is cheap enough but we shouldn't regress that in future.
Reviewers: kadircet
Subscribers: ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, jfb, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D78048
Daniel Stone [Tue, 14 Apr 2020 04:42:50 +0000 (00:42 -0400)]
libclc: Use temporary files rather than a pipe
This is required for using the Ninja backend on Windows, as it passes
commands directly to CreateProcess, and does not allow the shell to
interpret them: https://ninja-build.org/manual.html#ref_rule_command
Using the Visual Studio backend is not possible as attempting to create
a static library target comprised entirely of novel languages not known
to the Visual Studio backend built in to CMake's C++ source will
generate nothing at all.
reviewer: jvesely
Differential Revision: https://reviews.llvm.org/D77165
Daniel Stone [Tue, 14 Apr 2020 04:41:29 +0000 (00:41 -0400)]
libclc: Don't pass linker flags to CLC/LLAsm
We don't want the regular linker flags for these invocations, since
we're not compiling to the target machine anyway. This fixes things like
'/machine:x64' being unknown when invoked under Windows.
reviewer: jvesely
Differential Revision: https://reviews.llvm.org/D77164
Daniel Stone [Tue, 14 Apr 2020 04:40:20 +0000 (00:40 -0400)]
libclc: Use echo rather than true for try_compile
When providing a fake compiler, libclc currently uses 'true' which does
not exist on Windows. Use echo instead as the no-op.
reviewer: jvesely
Differential Revision: https://reviews.llvm.org/D77163
Daniel Stone [Tue, 14 Apr 2020 04:38:22 +0000 (00:38 -0400)]
libclc: Fix LLVM library linking on Windows
CMake requires library lists on Windows to be split by semi-colons,
rather than the spaces we get from llvm-config. Fix this by a
substitution on Windows.
reviewer: jvesely
Differential Revision: https://reviews.llvm.org/D77162
Pavel Labath [Mon, 23 Mar 2020 10:40:25 +0000 (11:40 +0100)]
[DWARFDebugLine] Check for (EOF) errors when parsing v5 content descriptors
Summary:
Without that we could be silently reading zeroes, as that's the default
DataExtractor behavior. The entire parse would still most likely fail,
but it would do that with a seemingly unrelated/nonsensical error
message.
Reviewers: dblaikie, probinson, jhenderson
Subscribers: hiraditya, MaskRay, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D77554
Max Kazantsev [Tue, 14 Apr 2020 13:25:31 +0000 (20:25 +0700)]
[ADCE] Fix incorrect reporting of CFG changes
This patch fixes 2 related bugs in ADCE:
- `performDeadCodeElimination` does not report changes if it did ONLY
CFG changes (affects both old and new pass managers);
- When control flow removal is enabled, new pass manager does not
drop CFG analyses.
Both can lead to incorrect loop info after ADCE that does only CFG changes.
Differential Revision: https://reviews.llvm.org/D78103
Reviewed By: Denis Antrushin
Simon Pilgrim [Tue, 14 Apr 2020 12:37:10 +0000 (13:37 +0100)]
[clang-objc-fuzzer] Add LLVMFuzzerInitialize to fix msvc builds (PR44414)
The (supposedly superfluous) LLVMFuzzerInitialize function was removed when this file was copied from clang-fuzzer, but this is causing link errors on some targets. @morehouse confirmed on D69171 that it was OK to add back.
Louis Dionne [Mon, 13 Apr 2020 21:12:30 +0000 (17:12 -0400)]
[libc++] Simplify how with_system_cxx_lib and availability features are defined
Instead of spamming a bunch of available features that are not actually
used anywhere, only set those that are actually used in the test suite.
In the future, this should probably be based on the target triple only,
with the ability to have wildcards in the triple.
Louis Dionne [Mon, 13 Apr 2020 21:28:52 +0000 (17:28 -0400)]
[libc++] NFC: Minor cleanups in config.py
Remove mentions of the ValgrindExecutor, which doesn't exist. That
executor is literally nowhere in the code base, so this is dead code
as far as we're concerned.
Also, inline a one-liner function that was called exactly once.
Simon Pilgrim [Tue, 14 Apr 2020 11:58:02 +0000 (12:58 +0100)]
[TTI][X86] Add X86TTIImpl::getScalarizationOverhead implementation.
This is a currently just a wrapper to the base type, I'll be adding ISD::BUILD_VECTOR costs in a future patch.
Med Ismail Bennani [Tue, 14 Apr 2020 11:53:26 +0000 (13:53 +0200)]
[lldb/test] Fix TestLoadUnload
Summary:
[lldb/test] Fix TestLoadUnload failure introduced in
e0dbd025131c4d77d8a5050a91d391d950529a8c
It seems that `env_cmd_string` is declared and used few lines under this
self.runCmd expression. I guess this is some left-over from an older
version.
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Reviewers: labath
Reviewed By: labath
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D78094
Max Kazantsev [Tue, 14 Apr 2020 11:15:16 +0000 (18:15 +0700)]
[Test] Add failing test that demonstrates buggy behavior of ADCE
ADCE messes up with loop info (proved for new pass manager only) by
making some loop blocks unreachable, without making proper updates
to the loop.
Aaron Puchert [Tue, 14 Apr 2020 11:32:43 +0000 (13:32 +0200)]
[ValueLattice] Remove unused DataLayout parameter of mergeIn, NFC
Reviewed By: fhahn, echristo
Differential Revision: https://reviews.llvm.org/D78061
Muhammad Omair Javaid [Tue, 14 Apr 2020 11:19:05 +0000 (16:19 +0500)]
[LLDB] Remove xfail aarch64-linux from test_step_over_load*
test_step_over_load_with_svr4 and test_step_over_load now pass on
aarch64 linux.
Fixed by change-id:
e0dbd025131c4d77d8a5050a91d391d950529a8c
Differential Revision: https://reviews.llvm.org/D77662
Georgii Rymar [Mon, 13 Apr 2020 11:46:41 +0000 (14:46 +0300)]
[ADT/STLExtras.h] - Add llvm::is_sorted wrapper and update callers.
It can be used to avoid passing the begin and end of a range.
This makes the code shorter and it is consistent with another
wrappers we already have.
Differential revision: https://reviews.llvm.org/D78016
Tres Popp [Tue, 7 Apr 2020 12:12:04 +0000 (14:12 +0200)]
[MLIR] Constant fold multiplies in deriveStaticUpperBound.
Summary:
This operation occurs during collapseParallelLoops, so we constant fold
them also to allow more situations of determining a loop invariant upper
bound when lowering to the GPU dialect from the Loop dialect.
Differential Revision: https://reviews.llvm.org/D77723
Haojian Wu [Fri, 3 Apr 2020 09:00:16 +0000 (11:00 +0200)]
[AST] Dont invalide VarDecl even the default initializaiton is failed.
Summary:
This patch would cause clang emit more diagnostics, but it is much better than https://reviews.llvm.org/D76831
```cpp
struct A {
A(int);
~A() = delete;
};
void k() {
A a;
}
```
before the patch:
/tmp/t3.cpp:24:5: error: no matching constructor for initialization of 'A'
A a;
^
/tmp/t3.cpp:20:3: note: candidate constructor not viable: requires 1 argument, but 0 were provided
A(int);
^
/tmp/t3.cpp:19:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0 were provided
struct A {
After the patch:
/tmp/t3.cpp:24:5: error: no matching constructor for initialization of 'A'
A a;
^
/tmp/t3.cpp:20:3: note: candidate constructor not viable: requires 1 argument, but 0 were provided
A(int);
^
/tmp/t3.cpp:19:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0 were provided
struct A {
^
/tmp/t3.cpp:24:5: error: attempt to use a deleted function
A a;
^
/tmp/t3.cpp:21:3: note: '~A' has been explicitly marked deleted here
~A() = delete;
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D77395
Florian Hahn [Tue, 14 Apr 2020 10:15:20 +0000 (11:15 +0100)]
Recommit "[SCCP] Use SimplifyBinOp for non-integer constant/expressions & overdef."
This includes a fix reported with simplifications in the presence of
NaN.
This reverts the revert commit
06408451bf12d4baed1fb1312d8af6e6bbb6a797.
Tyker [Tue, 14 Apr 2020 09:57:19 +0000 (11:57 +0200)]
[AssumeBundles] preserve knowledge in DCE
Reviewers: jdoerfert
Reviewed By: jdoerfert
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D77403
Tyker [Tue, 14 Apr 2020 09:56:56 +0000 (11:56 +0200)]
[AssumeBundles] preserve knowledge in DSE
Reviewers: jdoerfert
Reviewed By: jdoerfert
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D77404
Tyker [Tue, 14 Apr 2020 09:56:38 +0000 (11:56 +0200)]
[AssumeBundles] preserve information in NewGVN
Reviewers: jdoerfert
Reviewed By: jdoerfert
Subscribers: Prazek, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D77406
Tyker [Tue, 14 Apr 2020 09:56:16 +0000 (11:56 +0200)]
[AssumeBundles] preserve information in LICM
Reviewers: jdoerfert
Reviewed By: jdoerfert
Subscribers: hiraditya, asbirlea, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D77407
Tyker [Tue, 14 Apr 2020 09:55:56 +0000 (11:55 +0200)]
[AssumeBundles] adapte GVN to assume bundles
Summary:
prevent GVN from removing assume bundles
make GVN preserve information from removed instructions
Reviewers: jdoerfert
Reviewed By: jdoerfert
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D77405
Balázs Kéri [Tue, 14 Apr 2020 09:14:17 +0000 (11:14 +0200)]
[Analyzer][StreamChecker] Added evaluation of fseek.
Summary:
Function `fseek` is now evaluated with setting error return value
and error flags.
Reviewers: Szelethus, NoQ, xazax.hun, rnkovacs, dcoughlin, baloghadamsoftware, martong
Reviewed By: Szelethus
Subscribers: ASDenysPetrov, 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/D75851
Georgii Rymar [Tue, 14 Apr 2020 10:20:51 +0000 (13:20 +0300)]
[LLD][ELF][Test] - Fixed the broken test case.
There was no ":" after "SEC", hence the check was
disabled. Found with the use of D78024.
LLVM GN Syncbot [Tue, 14 Apr 2020 09:55:20 +0000 (09:55 +0000)]
[gn build] Port
36c76de6789
Kerry McLaughlin [Tue, 14 Apr 2020 08:52:04 +0000 (09:52 +0100)]
[AArch64][SVE] Add a pass for SVE intrinsic optimisations
Summary:
Creates the SVEIntrinsicOpts pass. In this patch, the pass tries
to remove unnecessary reinterpret intrinsics which convert to
and from svbool_t (llvm.aarch64.sve.convert.[to|from].svbool)
For example, the reinterprets below are redundant:
%1 = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> %a)
%2 = call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> %1)
The pass also looks for ptest intrinsics and phi instructions where
the operands are being needlessly converted to and from svbool_t.
Reviewers: sdesmalen, andwar, efriedma, cameron.mcinally, c-rhodes, rengolin
Reviewed By: efriedma
Subscribers: mgorny, tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, danielkiss, cfe-commits, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D76078
Peter Smith [Mon, 13 Apr 2020 07:55:07 +0000 (08:55 +0100)]
[MC][ARM] Emit R_ARM_BASE_PREL for _GLOBAL_OFFSET_TABLE_ expressions
The _GLOBAL_OFFSET_TABLE_ in SysVr4 ELF is conventionally the base of the
.got or .got.prel sections. Expressions such as _GLOBAL_OFFSET_TABLE_
- (.L1 +8) are used in assembler code to calculate offsets into the .got.
At present MC outputs a R_ARM_REL32 with respect to the
_GLOBAL_OFFSET_TABLE_ symbol, whereas gas outputs a R_ARM_BASE_PREL
relocation with respect to the _GLOBAL_OFFSET_TABLE_ symbol. While both are
correct the R_ARM_REL32 depends on the value of the _GLOBAL_OFFSET_TABLE_
symbol, wheras te R_ARM_BASE_PREL relocation is idependent of the symbol.
The R_ARM_BASE_PREL is therefore slightly more robust to linker's that may
not follow the conventional placement of _GLOBAL_OFFSET_TABLE_; for example
LLD for some time defined _GLOBAL_OFFSET_TABLE_ to 0.
Differential Revision: https://reviews.llvm.org/D46319
Pavel Labath [Mon, 6 Apr 2020 20:24:51 +0000 (22:24 +0200)]
[lldb/test] Make TestLoadUnload compatible with windows
Summary:
This patch introduces a header "dylib.h" which can be used in tests to
handle shared libraries semi-portably. The shared library APIs on
windows and posix systems look very different, but their underlying
functionality is relatively similar, so the mapping is not difficult.
It also introduces two new macros to wrap the functinality necessary to
export/import function across the dll boundary on windows. Previously we
had the LLDB_TEST_API macro for this purpose, which automagically
changed meaning depending on whether we were building the shared library
or the executable. While convenient for simple cases, this approach was
not sufficient for the more complicated setups where one deals with
multiple shared libraries.
Lastly it rewrites TestLoadUnload, to make use of the new APIs. The
trickiest aspect there is the handling of DYLD_LIBRARY_PATH on macos --
previously setting this variable was not needed as the test used
@executable_path-relative dlopens, but the new generic api does not
support that. Other systems do not support such dlopens either so the
test already contained support for setting the appropriate path
variable, and this patch just makes that logic more generic. In doesn't
seem that the purpose of this test was to exercise @executable_path
imports, so this should not be a problem.
These changes are sufficient to make some of the TestLoadUnload tests
pass on windows. Two other tests will start to pass once D77287 lands.
Reviewers: amccarth, jingham, JDevlieghere, compnerd
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D77662
Pratyai Mazumder [Tue, 14 Apr 2020 06:49:31 +0000 (23:49 -0700)]
[SanitizerCoverage] The section name for inline-bool-flag was too long for darwin builds, so shortening it.
Summary:
Following up on the comments on D77638.
Not undoing rGd6525eff5ebfa0ef1d6cd75cb9b40b1881e7a707 here at the moment, since I don't know how to test mac builds. Please let me know if I should include that here too.
Reviewers: vitalybuka
Reviewed By: vitalybuka
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D77889
Balázs Kéri [Tue, 14 Apr 2020 07:20:22 +0000 (09:20 +0200)]
[Analyzer][VLASize] Support multi-dimensional arrays.
Summary:
Check the size constraints for every (variable) dimension of the array.
Try to compute array size by multiplying size for every dimension.
Reviewers: Szelethus, martong, baloghadamsoftware, gamesh411
Reviewed By: Szelethus, martong
Subscribers: rnkovacs, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, gamesh411, Charusso, martong, ASDenysPetrov, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D77305
Alex Brachet [Tue, 14 Apr 2020 08:02:27 +0000 (04:02 -0400)]
[libc] Add very basic stdio FILE and fwrite
Summary:
This patch adds a very basic `FILE` type and basic `fwrite`.
It also removes `snprintf` from `StdIO`'s function spec because `VarArgType` was causing the generation to fail.
Reviewers: sivachandra, PaulkaToast
Reviewed By: sivachandra
Subscribers: mgorny, MaskRay, tschuett, libc-commits
Differential Revision: https://reviews.llvm.org/D77626
Alex Brachet [Tue, 14 Apr 2020 07:27:10 +0000 (03:27 -0400)]
[libc] Remove <functional> dependency in syscall_test.cpp
Summary: Create self contained functional header which has a type similar to `std::function`
Reviewers: sivachandra, PaulkaToast
Reviewed By: sivachandra
Subscribers: mgorny, tschuett, libc-commits
Differential Revision: https://reviews.llvm.org/D77948
Kazushi (Jam) Marukawa [Tue, 14 Apr 2020 06:56:44 +0000 (08:56 +0200)]
[VE] Remove unnecessary iz pattern
Summary:
This iz pattern is a special pattern of im pattern. This im pattern
has been supported by https://reviews.llvm.org/D77769, so removing
iz pattern as a continuous patch.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D77770
Craig Topper [Tue, 14 Apr 2020 06:04:52 +0000 (23:04 -0700)]
[CallSite removal][CodeGen] Replace ImmutableCallSite with CallBase in isInTailCallPosition.
Mircea Trofin [Tue, 14 Apr 2020 04:41:25 +0000 (21:41 -0700)]
[llvm][NFC][CallSite] Remove CallSite from CGSCCPassManager
Reviewers: craig.topper, dblaikie, davidxl
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78080
Fangrui Song [Tue, 14 Apr 2020 05:28:31 +0000 (22:28 -0700)]
[XRay] Define uint64_t Address = Sled.Address; NFC
This makes it easy to change the address stored in a sled from an
absolute address to a PC-relative address.
Chris Lattner [Mon, 13 Apr 2020 23:37:00 +0000 (16:37 -0700)]
Fix the MLIR integer attribute parser to be correct in the face of large integer attributes, it was previously artificially limited to 64 bits.
Reviewers: rriddle!
Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, grosul1, frgossen, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78065
Mircea Trofin [Mon, 13 Apr 2020 23:39:52 +0000 (16:39 -0700)]
[llvm][NFC] CallSite removal from inliner-related files
Summary: This removes CallSite from inliner files. Some dependencies where thus affected.
Reviewers: dblaikie, davidxl, craig.topper
Subscribers: arsenm, jvesely, nhaehnle, eraman, hiraditya, aheejin, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D77991
Uday Bondhugula [Tue, 14 Apr 2020 04:24:19 +0000 (09:54 +0530)]
Fix MLIR test case failure caused by
89e0662dee5fa541f284e6be0af9e36e7f39f947
Fix MLIR test case failure introduced by
89e0662dee5fa541f284e6be0af9e36e7f39f947. LLVM's IR builder
now automatically sets the alignment on alloca.
Uday Bondhugula [Mon, 13 Apr 2020 19:48:37 +0000 (01:18 +0530)]
[MLIR] Remove dead affine.applys while generating pointwise copies
This makes no impact on the test cases because affine-data-copy-generate
runs whole function canonicalization at its end; however, the latter
will be removed in a pending revision. It is thus useful to clean up
these affine.applys right here, and eventually, not even generate
these (when the right API to compose by construction is in place).
Differential Revision: https://reviews.llvm.org/D78055
Craig Topper [Tue, 14 Apr 2020 03:43:43 +0000 (20:43 -0700)]
[X86] Use a more realisitic cost for truncate v16i64->v16i8 with avx512f.
Still not great and we could probably codegen this better, but
11 was clearly ridiculous.
Craig Topper [Tue, 14 Apr 2020 02:29:33 +0000 (19:29 -0700)]
[X86] Split AVX512 getCastInstrCost into tables that require useAVX512Regs() and those that just operate on 256 or smaller vectors.
Use useAVX512Regs() to skip lookups instead of using type legalization
action.
Craig Topper [Tue, 14 Apr 2020 01:59:09 +0000 (18:59 -0700)]
[X86] Add a more accurate truncate cost for v8i64->v8i8
Craig Topper [Tue, 14 Apr 2020 01:37:23 +0000 (18:37 -0700)]
[X86] Add truncate cost model tests to min-legal-vector-width.ll for when we're avoiding 512 bit vectors.
Julian Lettner [Tue, 14 Apr 2020 03:44:15 +0000 (20:44 -0700)]
[lit] Update local test objects "in place" from remote test objects
Update local test object "in place" from remote test object. We need to
do this to ensure that discovered test object which is used for printing
test results reflect the changes.
> Why are we sending back the whole test object from the worker process
> (lit.worker.execute) instead of just the result?
Unfortunately, the test result is not the only "result" of test
execution. Other members (e.g., xfails, requires) of the Test class are
set only during execution. Those members affect the behavior of
`isExpectedToFail` and `setResult`, and are accessed when printing
results. For example, xunit.xml test results include missing features
for "skip reasons". The lack of separation between an immutable "test
definition" and "generated outputs" (including the primary result and
other secondary state) is unfortunate historical design decision in lit.
> Why do we update the initial test object instead of just discarding it
> and continuing with the pickled test object?
Both of these approaches would work. However, note that we need a fully
populated test object for printing results. Updating the existing one
seems to be the easier path.
Fangrui Song [Tue, 14 Apr 2020 02:54:39 +0000 (19:54 -0700)]
[VE] Adapt D77995 CallSite removal
Matt Arsenault [Sat, 11 Apr 2020 17:57:15 +0000 (13:57 -0400)]
GlobalISel: Fix casted unmerge of G_CONCAT_VECTORS
This was assuming a scalarizing unmerge, and would fail assert if the
unmerge was to smaller vector types.
Brian Cain [Fri, 10 Apr 2020 21:19:30 +0000 (16:19 -0500)]
Add duplex to R_HEX_GOT_16_X
Building 'espresso' from llvm-test-suite revealed missing support
for duplex instructions with R_HEX_GOT_16_X.
LLVM GN Syncbot [Tue, 14 Apr 2020 00:27:34 +0000 (00:27 +0000)]
[gn build] Port
384ca190ae7
Mehdi Amini [Tue, 14 Apr 2020 00:27:08 +0000 (00:27 +0000)]
Revert "Move ModuleSummaryAnalysis from libAnalysis to libObject to break the dependency from Analysis to Object"
This reverts commit
10df1563d608323a3144afc5f6038ecb81869b92.
Some buildbots are broken.
Nico Weber [Tue, 14 Apr 2020 00:15:01 +0000 (20:15 -0400)]
[gn build] (manually) merge
10df1563d some more
Christopher Tetreault [Mon, 13 Apr 2020 23:00:10 +0000 (16:00 -0700)]
[SVE] Change return type of getNumElements to unsigned
Reviewers: efriedma, sdesmalen, craig.topper, dexonsmith
Reviewed By: efriedma, sdesmalen
Subscribers: tschuett, hiraditya, rkruppe, psnobl, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, grosul1, frgossen, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D77763
LLVM GN Syncbot [Mon, 13 Apr 2020 23:18:41 +0000 (23:18 +0000)]
[gn build] Port
10df1563d60
Matt Arsenault [Sun, 29 Mar 2020 16:34:35 +0000 (12:34 -0400)]
AMDGPU/GlobalISel: Combines for V_CVT_F32_UBYTE[0-3]
Ports the existing DAG combines, minus the simplify demanded bits
which seems to have no equivalent now. Without these, this isn't
particularly helpful in most of the IR sample cases.
Mehdi Amini [Mon, 13 Apr 2020 04:21:40 +0000 (04:21 +0000)]
Move ModuleSummaryAnalysis from libAnalysis to libObject to break the dependency from Analysis to Object
ModuleSummaryAnalysis is the only file in libAnalysis that brings a
dependency on the CodeGen layer from libAnalysis, moving it breaks this
dependency.
Differential Revision: https://reviews.llvm.org/D77994
Austin Kerbow [Mon, 13 Apr 2020 06:25:18 +0000 (23:25 -0700)]
[AMDGPU][GlobalISel] Fix div_scale in FDIV lowering
Differential Revision: https://reviews.llvm.org/D78004
Artem Belevich [Mon, 13 Apr 2020 21:55:26 +0000 (14:55 -0700)]
[CUDA] Fix missed CUDA version mappings.
Heejin Ahn [Fri, 10 Apr 2020 23:46:39 +0000 (16:46 -0700)]
[WebAssembly] Fix try placement in fixing unwind mismatches
Summary:
In CFGStackify, `fixUnwindMismatches` function fixes unwind destination
mismatches created by `try` marker placement. For example,
```
try
...
call @qux ;; This should throw to the caller!
catch
...
end
```
When `call @qux` is supposed to throw to the caller, it is possible that
it is wrapped inside a `catch` so in case it throws it ends up unwinding
there incorrectly. (Also it is possible `call @qux` is supposed to
unwind to another `catch` within the same function.)
To fix this, we wrap this inner `call @qux` with a nested
`try`-`catch`-`end` sequence, and within the nested `catch` body, branch
to the right destination:
```
block $l0
try
...
try ;; new nested try
call @qux
catch ;; new nested catch
local.set n ;; store exnref to a local
br $l0
end
catch
...
end
end
local.get n ;; retrieve exnref back
rethrow ;; rethrow to the caller
```
The previous algorithm placed the nested `try` right before the `call`.
But it is possible that there are stackified instructions before the
call from which the call takes arguments.
```
try
...
i32.const 5
call @qux ;; This should throw to the caller!
catch
...
end
```
In this case we have to place `try` before those stackified
instructions.
```
block $l0
try
...
try ;; this should go *before* 'i32.const 5'
i32.const 5
call @qux
catch
local.set n
br $l0
end
catch
...
end
end
local.get n
rethrow
```
We correctly handle this in the first normal `try` placement phase
(`placeTryMarker` function), but failed to handle this in this
`fixUnwindMismatches`.
Reviewers: dschuff
Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D77950
Jean-Luc Brouillet [Mon, 13 Apr 2020 22:40:56 +0000 (15:40 -0700)]
Fix a typo in the error message for an incorrect prototype.
Summary: Cut & paste error had the error message mentionning "}" rather than ")".
Differential Revision: https://reviews.llvm.org/D77625
Ayke van Laethem [Sat, 14 Mar 2020 17:52:01 +0000 (18:52 +0100)]
[AVR] Support aliases in non-zero address space
This fixes code like the following on AVR:
void foo(void) {
}
void bar(void) __attribute__((alias("foo")));
Code like this is present in compiler-rt, which I'm trying to build.
Differential Revision: https://reviews.llvm.org/D76182
Louis Dionne [Wed, 8 Apr 2020 14:42:56 +0000 (10:42 -0400)]
[libunwind] Enable the new libc++ testing format by default
The new format should be equivalent to the old format, and it is now the
default format when running the libc++ and libc++abi tests. This commit
changes the libunwind tests to use the new format by default too. If
unexpected failures are discovered, it should be fine to revert this
commit until they are addressed.
Also note that it is still possible to use the old format by passing
`--param=use_old_format=True` when running Lit for the time being.
Differential Revision: https://reviews.llvm.org/D77733
jasonliu [Mon, 13 Apr 2020 21:39:10 +0000 (21:39 +0000)]
Remove '<' from test for better yam2obj input consumption
Address post-commit comment:
https://reviews.llvm.org/D77580#inline-713676
yaml2obj does not record the source filename in the output,
which may make FileCheck tests brittle sometimes.
Louis Dionne [Mon, 13 Apr 2020 21:38:40 +0000 (17:38 -0400)]
[libc++] Mark test failing with macos < 10.13 as unsupported
River Riddle [Mon, 13 Apr 2020 21:07:38 +0000 (14:07 -0700)]
[mlir][NFC] Replace mlir/Support/Functional.h with llvm equivalents.
Summary: Functional.h contains many different methods that have a direct, and more efficient, equivalent in LLVM. This revision replaces all usages with the LLVM equivalent, and removes the header. This is part of larger cleanup, pr45513, merging MLIR support facilities into LLVM.
Differential Revision: https://reviews.llvm.org/D78053
Louis Dionne [Mon, 13 Apr 2020 20:52:34 +0000 (16:52 -0400)]
[libc++] NFC: Remove unused Lit features in the test suite
The libc++ test suite currently defines several features that are not
used anywhere in the tests, or that are redundant with other features.
For the purpose of simplifying config.py and to ease the bring up of a
new configuration, this commit removes some of these features:
- rename dylib-has-no-filesystem to c++filesystem-disabled, which exists
- rename apple-darwin to just darwin, which is already set
- remove useless setting of libstdc++, which is already set correctly
- remove libcpp-abi-unstable, which is not used anywhere
- remove the glibc-XXX features, which are not used anywhere
Benjamin Kramer [Mon, 13 Apr 2020 21:03:03 +0000 (23:03 +0200)]
[CHR] Clean up some code and reduce copying. NFCI.
Nico Weber [Mon, 13 Apr 2020 20:53:06 +0000 (16:53 -0400)]
Revert a few unsuccessful attempts at fixing bots.
I broke bots last week and tried a few things to fix them.
These were attempts that didn't help, so back them back out.
This reverts commit
c7aff9a109b611e4954a3055061a8076b4baa385.
This reverts commit
8838d6d3566d940859fd26b20aed4cb57d490988.
This reverts commit
e875ba1509955dc4b3512d820edecc0da26fa38d.
Sterling Augustine [Mon, 13 Apr 2020 20:09:22 +0000 (13:09 -0700)]
Use a temporary file, to allow running on read-only file systems
Louis Dionne [Mon, 13 Apr 2020 20:50:11 +0000 (16:50 -0400)]
[libc++] NFC: Remove unused method call
Craig Topper [Mon, 13 Apr 2020 17:44:59 +0000 (10:44 -0700)]
[CallSite removal][TargetLowering] Replace ImmutableCallSite with CallBase
Differential Revision: https://reviews.llvm.org/D77995
Eli Friedman [Sun, 12 Apr 2020 23:58:30 +0000 (16:58 -0700)]
Make IRBuilder automatically set alignment on load/store/alloca.
This is equivalent in terms of LLVM IR semantics, but we want to
transition away from using MaybeAlign to represent the alignment of
these instructions.
Differential Revision: https://reviews.llvm.org/D77984
Dan Liew [Tue, 7 Apr 2020 01:57:54 +0000 (18:57 -0700)]
[Darwin] Fix a bug where the symbolizer would examine the wrong process.
Summary:
Previously `AtosSymbolizer` would set the PID to examine in the
constructor which is called early on during sanitizer init. This can
lead to incorrect behaviour in the case of a fork() because if the
symbolizer is launched in the child it will be told examine the parent
process rather than the child.
To fix this the PID is determined just before the symbolizer is
launched.
A test case is included that triggers the buggy behaviour that existed
prior to this patch. The test observes the PID that `atos` was called
on. It also examines the symbolized stacktrace. Prior to this patch
`atos` failed to symbolize the stacktrace giving output that looked
like...
```
#0 0x100fc3bb5 in __sanitizer_print_stack_trace asan_stack.cpp:86
#1 0x10490dd36 in PrintStack+0x56 (/path/to/print-stack-trace-in-code-loaded-after-fork.cpp.tmp_shared_lib.dylib:x86_64+0xd36)
#2 0x100f6f986 in main+0x4a6 (/path/to/print-stack-trace-in-code-loaded-after-fork.cpp.tmp_loader:x86_64+0x100001986)
#3 0x7fff714f1cc8 in start+0x0 (/usr/lib/system/libdyld.dylib:x86_64+0x1acc8)
```
After this patch stackframes `#1` and `#2` are fully symbolized.
This patch is also a pre-requisite refactor for rdar://problem/
58789439.
Reviewers: kubamracek, yln
Subscribers: #sanitizers, llvm-commits
Tags: #sanitizers
Differential Revision: https://reviews.llvm.org/D77623
Dan Liew [Tue, 7 Apr 2020 00:25:47 +0000 (17:25 -0700)]
[Sanitizer Common] Show command used to launch symbolizer process at high verbosity level.
Summary:
In preparation for writing a test for a bug fix we need to be able to
see the command used to launch the symbolizer process. This feature
will likely be useful for debugging how the Sanitizers use the
symbolizer in general.
This patch causes the command line used to launch the process to be
shown at verbosity level 3 and higher.
A small test case is included.
Reviewers: kubamracek, yln, vitalybuka, eugenis, kcc
Subscribers: #sanitizers, llvm-commits
Tags: #sanitizers
Differential Revision: https://reviews.llvm.org/D77622
LLVM GN Syncbot [Mon, 13 Apr 2020 20:31:14 +0000 (20:31 +0000)]
[gn build] Port
e823068306e
LLVM GN Syncbot [Mon, 13 Apr 2020 20:31:14 +0000 (20:31 +0000)]
[gn build] Port
255cc202ea6
Lang Hames [Mon, 13 Apr 2020 20:29:59 +0000 (13:29 -0700)]
[Support] Add missing files from
e823068306e.
Martin Storsjö [Wed, 8 Apr 2020 21:42:50 +0000 (00:42 +0300)]
[LLD] [COFF] Fix alignment of thunks for ARM/ARM64
The alignment of ARM64 range extension thunks was fixed in
7c816492197a, but ARM range extension thunks, and import
and delay import thunks also need aligning (like all code on ARM
platforms).
I'm adding a test for alignment of ARM64 import thunks - not
specifically adding tests for misalignment of all of them though.
Differential Revision: https://reviews.llvm.org/D77796
MaheshRavishankar [Sun, 12 Apr 2020 06:02:09 +0000 (23:02 -0700)]
[mlir][Linalg] NFC: Add utility function to tile, fuse and set marker to use loop.parallel.
This change is NFC since the facility to tile and generate
loop.parallel loops already exists in Linalg.
Differential Revision: https://reviews.llvm.org/D77965
MaheshRavishankar [Sun, 12 Apr 2020 06:01:40 +0000 (23:01 -0700)]
[mlir][Linalg] NFC : Fix check for scalar case handling in LinalgToLoops
The invertPermutation method does not return a nullptr anymore, but
rather returns an empty map for the scalar case. Update the check in
LinalgToLoops to reflect this.
Also add test case for generating scalar code.
MaheshRavishankar [Mon, 13 Apr 2020 16:33:34 +0000 (09:33 -0700)]
[mlir][Linalg] Add loop.parallel lowering for all Linalg Ops.
The outer parallel loops of a linalg operation is lowered to
loop.parallel, with the other loops lowered to loop.for. This gets the
lowering to loop.parallel on par with the loop.for lowering. In future
the reduction loop could also be lowered to loop.parallel.
Also add a utility function that returns the loops that are
created.
Differential Revision: https://reviews.llvm.org/D77678
Sam McCall [Mon, 13 Apr 2020 20:14:27 +0000 (22:14 +0200)]
[Support] Fix CMakeLists after
e823068306e98e9
Reid Kleckner [Mon, 13 Apr 2020 20:12:42 +0000 (13:12 -0700)]
Fix target_info.test on Windows with a hack
Add a quote character to the sed command to cause it to be quoted.
Hopefully, which will help both gnuwin and MSys versions of sed tokenize
the command line the same way.
Sam McCall [Fri, 10 Apr 2020 01:27:37 +0000 (03:27 +0200)]
[clangd] Rebuild dependent files when a header is saved.
Summary:
Caveats:
- only works when the header is changed in the editor and the editor provides
the notification
- we revalidate preambles for all open files (stat all their headers) rather
than taking advantage of the fact that we know which file changed.
This is much simpler!
Fixes https://github.com/clangd/clangd/issues/107
Reviewers: kadircet
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D77847
Christopher Tetreault [Mon, 13 Apr 2020 19:30:53 +0000 (12:30 -0700)]
Clean up usages of asserting vector getters in Type
Summary:
Remove usages of asserting vector getters in Type in preparation for the
VectorType refactor. The existence of these functions complicates the
refactor while adding little value.
Reviewers: sdesmalen, efriedma, krememek
Reviewed By: sdesmalen, efriedma
Subscribers: dexonsmith, Charusso, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D77257
Lang Hames [Mon, 13 Apr 2020 19:51:46 +0000 (12:51 -0700)]
[ORC] Update ORCv2 docs to reflect removal of ExecutionSession::getMainJITDylib.
Thanks to Dibyendu Majumdar for spotting the issue.
Lang Hames [Sat, 11 Apr 2020 00:23:20 +0000 (17:23 -0700)]
[Support] Add support RTTI support for open class hierarchies.
This patch extracts the RTTI part of llvm::ErrorInfo into its own class
(RTTIExtends) so that it can be used in other non-error hierarchies, and makes
it compatible with the existing LLVM RTTI function templates (isa, cast,
dyn_cast, dyn_cast_or_null) by adding the classof method.
Differential Revision: https://reviews.llvm.org/D39111
Denis Khalikov [Mon, 13 Apr 2020 18:11:08 +0000 (21:11 +0300)]
[mlir][spirv] Add a `spirv::InterfaceVarABIAttr`.
Summary:
Add a proper dialect-specific attribute for interface variable ABI.
Differential Revision: https://reviews.llvm.org/D77941
Lei Zhang [Mon, 13 Apr 2020 19:33:35 +0000 (15:33 -0400)]
[mlir][spirv] NFC: use Optional to replace SPV_Optional
Differential Revision: https://reviews.llvm.org/D78046
Chris Lattner [Mon, 13 Apr 2020 18:51:59 +0000 (11:51 -0700)]
Remove the Identifier::is() method, it is now equivalent to operator==. NFC.
Summary: Depends on D78042.
Reviewers: rriddle!
Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, grosul1, frgossen, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78043
Christopher Tetreault [Mon, 13 Apr 2020 17:51:25 +0000 (10:51 -0700)]
Clean up usages of asserting vector getters in Type
Summary:
Remove usages of asserting vector getters in Type in preparation for the
VectorType refactor. The existence of these functions complicates the
refactor while adding little value.
Reviewers: rriddle, sdesmalen, efriedma
Reviewed By: efriedma
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D77259
Rahman Lavaee [Mon, 13 Apr 2020 19:14:42 +0000 (12:14 -0700)]
Extend BasicBlock sections to allow specifying clusters of basic blocks in the same section.
Differential Revision: https://reviews.llvm.org/D76954
Rahman Lavaee [Mon, 13 Apr 2020 19:12:34 +0000 (12:12 -0700)]
Revert "Extend BasicBlock sections to allow specifying clusters of basic blocks"
This reverts commit
0d4ec16d3db3a92514e14101f635e8536c208c4f Because
tests were not added to the commit.
Lama [Mon, 13 Apr 2020 18:51:03 +0000 (18:51 +0000)]
[MachinePipeliner] Refine the RecMII calculation
In the case of more than one SDep between two successor SUnits in the Nodeset, the current implementation sums the latencies of the dependencies, which could create a larger RecMII than necessary.
for example, in case there is both a data dependency and an output dependency (with latency > 0) between successor nodes:
SU(1) inst1:
successors:
SU(2): out latency = 1
SU(2): data latency = 1
SU(2) inst2:
successors:
SU(3): out latency = 1
SU(3): data latency = 1
SU(3) inst3:
successors:
SU(1): out latency = 1
SU(1): data latency = 1
the NodeSet latency returned would be 6, whereas it could be 3 if we take the max for each successor SUnit.
In general this can be extended to finding the shortest path in the recurrence..
thoughts?
Unfortunately I had a hard time creating a test for this in Hexagon/PowerPC, so help would be appreciated.
Reviewed By: bcahoon
Differential Revision: https://reviews.llvm.org/D75918
Austin Kerbow [Mon, 13 Apr 2020 18:58:15 +0000 (11:58 -0700)]
[AMDGPU] Fix comment for llvm.amdgcn.div.scale. NFC.
Update comment to reflect actual lowering.