Louis Dionne [Fri, 9 Oct 2020 19:31:05 +0000 (15:31 -0400)]
[libc++] Add a libc++ configuration that does not support localization
When porting libc++ to embedded systems, it can be useful to drop support
for localization, which these systems don't implement or care about.
Differential Revision: https://reviews.llvm.org/D90072
Duncan P. N. Exon Smith [Thu, 15 Oct 2020 15:39:07 +0000 (11:39 -0400)]
FileManager: Shrink FileEntryRef to the size of a pointer
Shrink `FileEntryRef` to the size of a pointer, by having it directly
reference the `StringMapEntry` the same way that `DirectoryEntryRef`
does. This makes `FileEntryRef::FileEntryRef` private as a side effect
(`FileManager` is a friend!).
There are two helper types added within `FileEntryRef`:
- `FileEntryRef::MapValue` is the type stored in
`FileManager::SeenFileEntries`. It's a replacement for
`SeenFileEntryOrRedirect`, where the second pointer type has been
changed from `StringRef*` to `MapEntry*` (see next bullet).
- `FileEntryRef::MapEntry` is the instantiation of `StringMapEntry<>`
where `MapValue` is stored. This is what `FileEntryRef` has a pointer
to, in order to grab the name in addition to the value.
Differential Revision: https://reviews.llvm.org/D89488
Sean Silva [Tue, 27 Oct 2020 00:29:18 +0000 (17:29 -0700)]
[mlir] Add bufferization for std.select op.
Differential Revision: https://reviews.llvm.org/D90204
Jay Foad [Tue, 27 Oct 2020 15:14:12 +0000 (15:14 +0000)]
[AMDGPU] Fix check prefix for VOP3 VI disassembler tests
Also, following D81841, don't try to encode f16 literals in i16/u16
instructions.
Differential Revision: https://reviews.llvm.org/D90242
Christian Sigg [Tue, 27 Oct 2020 08:45:55 +0000 (09:45 +0100)]
[mlir] Catch async.yield operands not matching the number of async.execute results.
Reviewed By: ezhulenev
Differential Revision: https://reviews.llvm.org/D90211
Martin Storsjö [Tue, 27 Oct 2020 09:46:06 +0000 (11:46 +0200)]
[libcxx] Fix typo in spelling of 'sentinel'. NFC.
Differential Revision: https://reviews.llvm.org/D90220
Simon Pilgrim [Tue, 27 Oct 2020 18:35:42 +0000 (18:35 +0000)]
[llvm-readobj] Remove duplicate inner if() condition. NFCI.
This should have been removed when rG445c3fdd2ae8 simplified the conditions.
Reported as "Snippet 5" in https://www.viva64.com/en/b/0771/
Amy Huang [Tue, 27 Oct 2020 18:29:27 +0000 (11:29 -0700)]
Revert "[CodeView] Emit static data members as S_CONSTANTs."
Seems like there's an assert in here that we shouldn't be running into.
This reverts commit
515973222ed29abe49f241e89edb6854f44162d4.
LLVM GN Syncbot [Tue, 27 Oct 2020 18:08:19 +0000 (18:08 +0000)]
[gn build] Port
46c3d5cb05d
Michael Liao [Fri, 22 May 2020 19:52:26 +0000 (15:52 -0400)]
[amdgpu] Add the late codegen preparation pass.
Summary:
- Teach that pass to widen naturally aligned but not DWORD aligned
sub-DWORD loads.
Reviewers: rampitec, arsenm
Subscribers:
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80364
Simon Pilgrim [Tue, 27 Oct 2020 17:43:16 +0000 (17:43 +0000)]
[X86] Regenerate scalar fptosi/fptoui tests. NFCI.
Merge prefixes where possible, use 'X86' instead of 'X32' (which we try to only use for gnux32 triple tests).
Louis Dionne [Tue, 27 Oct 2020 17:31:21 +0000 (13:31 -0400)]
[libc++] Get rid of iostreams in the to_string tests
Kazushi (Jam) Marukawa [Tue, 27 Oct 2020 12:03:17 +0000 (21:03 +0900)]
[VE] Add vector reduction instructions
Add VSUMS/VSUMX/VFSUM/VMAXS/VMAXX/VFMAX/VRAND/VROR/VRXOR isntructions.
Add regression tests too.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D90227
Vedant Kumar [Tue, 6 Oct 2020 21:18:20 +0000 (14:18 -0700)]
[Utils] Skip RemoveRedundantDbgInstrs in MergeBlockIntoPredecessor (PR47746)
This patch changes MergeBlockIntoPredecessor to skip the call to
RemoveRedundantDbgInstrs, in effect partially reverting D71480 due to
some compile-time issues spotted in LoopUnroll and SimplifyCFG.
The call to RemoveRedundantDbgInstrs appears to have changed the
worst-case behavior of the merging utility. Loosely speaking, it seems
to have gone from O(#phis) to O(#insts).
It might not be possible to mitigate this by scanning a block to
determine whether there are any debug intrinsics to remove, since such a
scan costs O(#insts).
So: skip the call to RemoveRedundantDbgInstrs. There's surprisingly
little fallout from this, and most of it can be addressed by doing
RemoveRedundantDbgInstrs later. The exception is (the block-local
version of) SimplifyCFG, where it might just be too expensive to call
RemoveRedundantDbgInstrs.
Differential Revision: https://reviews.llvm.org/D88928
Sam McCall [Tue, 27 Oct 2020 17:11:45 +0000 (18:11 +0100)]
[ADT] Fix accidental pointer comparison in test
Simon Pilgrim [Tue, 27 Oct 2020 16:06:19 +0000 (16:06 +0000)]
[X86] Regenerate xor tests. NFCI.
Merge prefixes where possible, use 'X86' instead of 'X32' (which we try to only use for gnux32 triple tests).
Simon Pilgrim [Tue, 27 Oct 2020 15:25:50 +0000 (15:25 +0000)]
[X86] Regenerate tbm intrinsics tests. NFCI.
Merge prefixes where possible, use 'X86' instead of 'X32' (which we try to only use for gnux32 triple tests).
Simon Pilgrim [Tue, 27 Oct 2020 14:40:52 +0000 (14:40 +0000)]
[X86] Regenerate popcnt tests. NFCI.
Merge prefixes where possible, use 'X86' instead of 'X32' (which we try to only use for gnux32 triple tests).
Simon Pilgrim [Tue, 27 Oct 2020 14:37:42 +0000 (14:37 +0000)]
[X86] Regenerate xop tests with common prefixes.
Yashaswini Hegde [Tue, 27 Oct 2020 16:23:52 +0000 (12:23 -0400)]
[Flang][OpenMP 4.5] Add semantic check for OpenMP default clause
Louis Dionne [Tue, 27 Oct 2020 16:24:57 +0000 (12:24 -0400)]
[libc++] Remove references to CONDUIT_TOKEN
It's not required anymore, since we rely on another job to report
the results back to Phabricator.
Jonas Devlieghere [Tue, 27 Oct 2020 16:14:40 +0000 (09:14 -0700)]
[lldb] Support Python imports relative the to the current file being sourced
Make it possible to use a relative path in command script import to the
location of the file being sourced. This allows the user to put Python
scripts next to LLDB command files and importing them without having to
specify an absolute path.
To enable this behavior pass `-c` to `command script import`. The
argument can only be used when sourcing the command from a file.
rdar://
68310384
Differential revision: https://reviews.llvm.org/D89334
Jay Foad [Tue, 27 Oct 2020 13:15:21 +0000 (13:15 +0000)]
[AMDGPU] Add llvm.amdgcn.div.scale with fneg tests
Kirill Bobyrev [Tue, 27 Oct 2020 15:44:52 +0000 (16:44 +0100)]
[clangd] Start using SyntaxTrees for folding ranges feature
This is an initial attempt to start using Syntax Trees in clangd while improving state of folding ranges feature and experimenting with Syntax Tree capabilities.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D88553
Tony [Mon, 26 Oct 2020 01:16:59 +0000 (01:16 +0000)]
[AMDGPU] Add missing support for targets
- Add missing tests.
Differential Revision: https://reviews.llvm.org/D90212
Arthur Eubanks [Tue, 27 Oct 2020 15:35:18 +0000 (08:35 -0700)]
Revert "Updating llvm.mlir test to match recent IR change"
This reverts commit
0fc1aa22ee6ac337a5d51fa5666c9cd61da61b07.
Raphael Isemann [Tue, 27 Oct 2020 11:39:44 +0000 (12:39 +0100)]
[lldb][NFC] Make GetResumeCountForLaunchInfo return an unsigned.
The number of resumes should always be positive to let's make this an
unsigned everywhere. Also remove the unused 'localhost' parameter from
ConvertArgumentsForLaunchingInShell.
Louis Dionne [Tue, 27 Oct 2020 15:21:33 +0000 (11:21 -0400)]
[libc++] Fix filesystem test in C++11/14
Before C++17, std::string::data() was marked as const, so we can't use
it to write to the contents of the string.
Florian Hahn [Tue, 27 Oct 2020 12:54:21 +0000 (12:54 +0000)]
[AArch64] Add additional tests for vector inserts with common element.
Raphael Isemann [Tue, 27 Oct 2020 14:44:24 +0000 (15:44 +0100)]
[lldb] Add llvm-pdbutil to lldb test dependencies
Since D89812 we use llvm-pdbutil in the LLDB tests but we didn't add it to
the test dependencies.
Michał Górny [Tue, 27 Oct 2020 13:15:01 +0000 (14:15 +0100)]
[lldb] [Process/FreeBSD] Fix missing namespace qualifier
Fixes
e4cc6e9bcdff5fe979ab72025cb803d723cd9c31
Michał Górny [Fri, 23 Oct 2020 16:08:56 +0000 (18:08 +0200)]
[lldb] [Process/FreeBSDRemote] Enable watchpoint support
Replace the inline x86 watchpoint handling code with the reusable
NativeRegisterContextWatchpoint_x86. Implement watchpoint support
in NativeThreadFreeBSD and SIGTRAP handling for watchpoints.
Un-skip all concurrent_events tests as they pass with the new plugin.
Differential Revision: https://reviews.llvm.org/D90102
Raphael Isemann [Tue, 27 Oct 2020 12:37:23 +0000 (13:37 +0100)]
Revert "[IndVars] Remove monotonic checks with unknown exit count"
This reverts commit
c6ca26c0bfedb8f80d6f8cb9adde25b1d6aac1c5.
This breaks stage2 builds due to hitting this assert:
```
Assertion failed: (WeightSum <= UINT32_MAX && "Expected weights to scale down to 32 bits"), function calcMetadataWeights
```
when compiling AArch64RegisterBankInfo.cpp in LLVM.
Raphael Isemann [Tue, 27 Oct 2020 12:37:16 +0000 (13:37 +0100)]
Revert "[NFC] Factor away lambda's redundant parameter"
This reverts commit
fdc845b36130d162e5a66e427bf69b2c37b6c6bb.
It seems to be a follow-up to
c6372b3fb495 which will be reverted.
Alex Richardson [Tue, 27 Oct 2020 14:26:23 +0000 (14:26 +0000)]
Michael Liao [Mon, 12 Oct 2020 03:51:53 +0000 (23:51 -0400)]
[amdgpu] Enable use of AA during codegen.
- Add an internal option `-amdgpu-use-aa-in-codegen` to enable or
disable this feature. By Default, it's enabled.
Differential Revision: https://reviews.llvm.org/D89320
Simon Pilgrim [Tue, 27 Oct 2020 13:43:29 +0000 (13:43 +0000)]
Revert rG0905bd5c2fa42bd4c "[InstCombine] collectBitParts - add trunc support."
This reverts commit
0905bd5c2fa42bd4c0e6e0aaa08b966f165b9dfa.
Causing failures in multistage buildbots that I need to investigate
Benjamin Kramer [Tue, 27 Oct 2020 13:34:26 +0000 (14:34 +0100)]
[X86] Don't crash on CVTPS2PH with wide vector inputs.
Simon Pilgrim [Tue, 27 Oct 2020 13:35:00 +0000 (13:35 +0000)]
[X86] Regenerate all-ones vector tests with common prefixes.
Nico Weber [Tue, 27 Oct 2020 13:18:42 +0000 (09:18 -0400)]
Revert "Use uint64_t for branch weights instead of uint32_t"
This reverts commit
e5766f25c62c185632e3a75bf45b313eadab774b.
Makes clang assert when building Chromium, see https://crbug.com/1142813
for a repro.
Simon Pilgrim [Tue, 27 Oct 2020 13:14:40 +0000 (13:14 +0000)]
[clang] RewriteObjCClassMetaData - remove superfluous null pointer check. NFCI.
We've already dereferenced the pointer and no other getClassInterface() calls appear to bother with such a check.
Reported as "Snippet 6" in https://www.viva64.com/en/b/0771/
Simon Pilgrim [Tue, 27 Oct 2020 12:21:33 +0000 (12:21 +0000)]
[MallocChecker] Remove duplicate QCoreApplication::postEvent check. NFCI.
This appears to have been in the original patch in D14170.
Reported as "Snippet 11" in https://www.viva64.com/en/b/0771/
Simon Pilgrim [Tue, 27 Oct 2020 12:13:53 +0000 (12:13 +0000)]
[X86] Regenerate vector shift tests. NFCI.
Merge prefixes where possible, use 'X86' instead of 'X32' (which we try to only use for gnux32 triple tests).
Simon Pilgrim [Mon, 26 Oct 2020 16:22:46 +0000 (16:22 +0000)]
[InstCombine] collectBitParts - add trunc support.
This should allow us to remove the rather limited matchOrConcat fold and just use recognizeBSwapOrBitReverseIdiom.
Zahira Ammarguellat [Tue, 27 Oct 2020 12:51:02 +0000 (05:51 -0700)]
Fix for PR47544. Clang is crashing after generating the right
diagnostic for a re-declaration of a friend method.d
https://reviews.llvm.org/D88112
Djordje Todorovic [Mon, 26 Oct 2020 14:04:14 +0000 (07:04 -0700)]
[NFC][IntrRefLDV] Some code clean up
As reading the source code, I've found some minor nits:
-Use using instead of typedef
-Fix a comment
-Refactor
Differential Revision: https://reviews.llvm.org/D90155
Sven van Haastregt [Tue, 27 Oct 2020 12:21:40 +0000 (12:21 +0000)]
[TargetLowering] Add i1 condition for bit comparison fold
For i1 types, boolean false is represented identically regardless of
the boolean content, so we can allow optimizations that otherwise
would not be correct for booleans with false represented as a negative
one.
Patch by Erik Hogeman.
Differential Revision: https://reviews.llvm.org/D90145
LLVM GN Syncbot [Tue, 27 Oct 2020 12:17:41 +0000 (12:17 +0000)]
[gn build] Port
850325348ae
Alex Richardson [Tue, 27 Oct 2020 10:07:27 +0000 (10:07 +0000)]
Fix sancov.py when objdump is llvm-objdump
The sanitizer-coverage.cpp test case was always failing for me. It turns
out the reason for this is that I was building with
-DLLVM_INSTALL_BINUTILS_SYMLINKS=ON and sancov.py's grep regex does not
handle llvm-objdump's disassembly format (hex immediates have a leading "0x").
While touching those lines also change them to use raw string literals since
invalid escape sequnces will become an error in future python versions.
Also simplify the code by using subprocess.check_output() instead of Popen().
This also works with python2.
Fixes https://bugs.llvm.org/show_bug.cgi?id=44504
Reviewed By: #sanitizers, vitalybuka
Differential Revision: https://reviews.llvm.org/D89648
Alex Richardson [Tue, 27 Oct 2020 10:05:55 +0000 (10:05 +0000)]
[clang-format] Fix misformatted macro definitions after D86959
After D86959 the code `#define lambda [](const decltype(x) &ptr) {}`
was formatted as `#define lambda [](const decltype(x) & ptr) {}` due to
now parsing the '&' token as a BinaryOperator. The problem was caused by
the condition `Line.InPPDirective && (!Left->Previous || !Left->Previous->is(tok::identifier))) {`
being matched and therefore not performing the checks for "previous token
is one of decltype/_Atomic/etc.". This patch moves those checks after the
existing if/else chain to ensure the left-parent token classification is
always run after checking whether the contents of the parens is an
expression or not.
This change also introduces a new TokenAnnotatorTest that checks the
token kind and Role of Tokens after analyzing them. This is used to check
for TT_PointerOrReference, in addition to indirectly testing this based
on the resulting formatting.
Reviewed By: MyDeveloperDay
Differential Revision: https://reviews.llvm.org/D88956
Alex Richardson [Tue, 27 Oct 2020 09:56:19 +0000 (09:56 +0000)]
[ValueTracking][NFC] Use Log2(Align) instead of countTrailingZeroes
The latter can probably be optimized to the same final code, but this might
help -O0 builds.
Alex Richardson [Tue, 20 Oct 2020 10:41:54 +0000 (11:41 +0100)]
[ValueTracking] Add more tests for alignment assume bundles
I noticed that alignment was no longer inferred as well after I last merged
our CHERI fork from upstream. I opened this review before seeing that D88669
already fixes the same problem, so this commit simply adds the new test that
I added as part of this change.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D89830
Shimin Cui [Tue, 27 Oct 2020 09:49:41 +0000 (09:49 +0000)]
[ValueTracking] Add tracking of the alignment assume bundle
This patch is to add the support of the value tracking of the alignment assume bundle.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D88669
Sebastian Neubauer [Tue, 27 Oct 2020 10:30:01 +0000 (11:30 +0100)]
msgpack: Improve error for empty node
David Spickett [Wed, 14 Oct 2020 11:18:05 +0000 (12:18 +0100)]
[lldb] Correct vFile:pread/pwrite packet docs
The statement that lldb-server can handle
decimal and hex numbers is misleading.
(it can only handle hex with 0x prefix)
Mentioning non decimal numbers at all
is just creating more confusion for anyone
who tries to use them with lldb-server.
Differential Revision: https://reviews.llvm.org/D89383
Roman Lebedev [Tue, 27 Oct 2020 09:17:53 +0000 (12:17 +0300)]
[InstCombine] Fold `(X >>? C1) << C2` patterns to shift+bitmask (PR37872)
This is essentially finalizes a revert of rL155136,
because nowadays the situation has improved, SCEV can model
all these patterns well, and we canonicalize rotate-like patterns
into a funnel shift intrinsics in InstCombine.
So this should not cause any pessimization.
I've verified the canonicalize-{a,l}shr-shl-to-masking.ll transforms
with alive, which confirms that we can freely preserve exact-ness,
and no-wrap flags.
Profs:
* base: https://rise4fun.com/Alive/gPQ
* exact-ness preservation: https://rise4fun.com/Alive/izi
* nuw preservation: https://rise4fun.com/Alive/DmD
* nsw preservation: https://rise4fun.com/Alive/SLN6N
* nuw nsw preservation: https://rise4fun.com/Alive/Qp7
Refs. https://reviews.llvm.org/D46760
Roman Lebedev [Tue, 27 Oct 2020 10:47:08 +0000 (13:47 +0300)]
[NFC][PhaseOrdering] Autogenerate basic.ll test
Roman Lebedev [Tue, 27 Oct 2020 10:46:28 +0000 (13:46 +0300)]
[NFC][InstCombine] Autogenerate cast.ll test
Roman Lebedev [Tue, 27 Oct 2020 09:13:11 +0000 (12:13 +0300)]
[NFC][InstCombine] Add more exhaustive test coverage for `(x >>? X1) << C2` pattern (PR37872)
Kazushi (Jam) Marukawa [Mon, 26 Oct 2020 15:47:02 +0000 (00:47 +0900)]
[VE] Add vector float instructions
Add VFAD/VFSB/VFMP/VFDV/VFSQRT/VFCP/VFCM/VFMAD/VFMSB/VFNMAD/VFNMSB/
VRCP/VRSQRT/VRSQRTNEX/VFIX/VFIXX/VFLT/VFLTX/VCVS/VCVD instructions.
Add regression tests too. Also add additional AsmParser for VFIX
and VFIXX instructions to parse their mnemonic.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D90166
Kazushi (Jam) Marukawa [Mon, 26 Oct 2020 16:00:21 +0000 (01:00 +0900)]
[VE] Add missing regression test
In the previous "Add vector shift instructions", I forgot to add
regression tests for VSRL and VSRD instructions. This patch is
adding them.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D90167
Kirill Bobyrev [Tue, 27 Oct 2020 10:45:48 +0000 (11:45 +0100)]
[clangd] Separate final_result into a different message
This is a breaking change in remote index protocol.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D89851
Mikhail Maltsev [Tue, 27 Oct 2020 10:43:39 +0000 (10:43 +0000)]
[clang][Basic] Integrate SourceLocation with FoldingSet, NFCI
This patch removes the necessity to access the SourceLocation internal
representation in several places that use FoldingSet objects.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D69844
Georgii Rymar [Tue, 13 Oct 2020 07:46:04 +0000 (10:46 +0300)]
[llvm-readelf] - Implement --section-details option.
--section-details/-t is a GNU readelf option that produce
an output that is an alternative to --sections.
Differential revision: https://reviews.llvm.org/D89304
Med Ismail Bennani [Tue, 27 Oct 2020 10:24:16 +0000 (11:24 +0100)]
[llvm/DebugInfo] Simplify DW_OP_implicit_value condition (NFC)
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Jay Foad [Tue, 27 Oct 2020 09:52:17 +0000 (09:52 +0000)]
[AMDGPU] Use DPP instead of Ext in a couple of class names. NFC.
Raphael Isemann [Tue, 27 Oct 2020 09:37:26 +0000 (10:37 +0100)]
[lldb][NFC] Rewrite TestQuoting
TestQuoting's different test methods all build their own test binaries but
we can just reuse the same test binary by merging all asserts into one method.
This reduces the test runtime from 8 seconds to 4 seconds on my machine.
This also removes the ability to have partial failures in this test, but given
how rarely this code is touched this seems like a fair tradeoff (and we will be
able to re-add this feature once we updated our test framework).
Some other small changes:
* Fixed that we cleanup "stdout.txt" instead of "output.txt" in the cleanup.
* Fixed some formatting issues.
* Call `build` instead of directly calling `buildDefault`.
Georgii Rymar [Fri, 23 Oct 2020 09:50:48 +0000 (12:50 +0300)]
[yaml2obj] - Add a way to override the sh_addralign field of a section.
Imagine the following declaration of a section:
```
Sections:
- Name: .dynsym
Type: SHT_DYNSYM
AddressAlign: 0x1111111111111111
```
The aligment is large and yaml2obj reports an error currently:
"the desired output size is greater than permitted. Use the --max-size option to change the limit"
This patch implements the "ShAddrAlign" key, which is similar to other "Sh*" keys we have.
With it it is possible to override the `sh_addralign` field, ignoring the writing of alignment bytes.
Differential revision: https://reviews.llvm.org/D90019
Florian Hahn [Tue, 27 Oct 2020 08:59:18 +0000 (08:59 +0000)]
[LoopRotation] Allow loop header duplication if vectorization is forced.
-Oz normally does not allow loop header duplication so this loop wouldn't be
vectorized. However the vectorization pragma should override this and allow
for loop rotation.
rdar://problem/
49281061
Original patch by Adam Nemet.
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D59832
David Green [Tue, 27 Oct 2020 09:27:32 +0000 (09:27 +0000)]
[ARM][AArch64] Add VLDN shuffled interleaving tests. NFC
Alex Zinenko [Fri, 23 Oct 2020 13:30:21 +0000 (15:30 +0200)]
[mlir] use OpBuilderDAG instead of OpBuilder
A recent commit introduced a new syntax for specifying builder arguments in
ODS, which is better amenable to automated processing, and deprecated the old
form. Transition all dialects as well as Linalg ODS generator to use the new
syntax.
Add a deprecation notice to ODS generator.
Reviewed By: rriddle, jpienaar
Differential Revision: https://reviews.llvm.org/D90038
Tyker [Tue, 27 Oct 2020 08:46:06 +0000 (09:46 +0100)]
Haojian Wu [Tue, 27 Oct 2020 08:42:19 +0000 (09:42 +0100)]
[clang][RecoveryExpr] Add tests for ObjectiveC.
to demonstrate it works for some cases.
Differential Revision: https://reviews.llvm.org/D90140
Kiran Chandramohan [Tue, 27 Oct 2020 08:15:28 +0000 (08:15 +0000)]
Updating llvm.mlir test to match recent IR change
Recent change updated branch weights to use i64 instead of i32.
Updating llvm.mlir test to match this change.
https://reviews.llvm.org/D88609
Sam McCall [Tue, 27 Oct 2020 08:15:12 +0000 (09:15 +0100)]
[clangd] Fix proto deps, for real this time.
This is ugly (layering violation) but we can clean it up once we know it
works in CI.
Max Kazantsev [Tue, 27 Oct 2020 07:50:00 +0000 (14:50 +0700)]
[Test] One more range check test
Sam McCall [Mon, 26 Oct 2020 15:44:36 +0000 (16:44 +0100)]
[Syntax] Disallow invalid Node operations
Copy/move break invariants (move could be fixed).
Node/Tree should have no public constructors, they're abstract.
Destructor is private to enforce arena allocation.
(Making the constructor of all subclasses private doesn't seem worthwhile)
Differential Revision: https://reviews.llvm.org/D90163
Craig Topper [Tue, 27 Oct 2020 07:20:03 +0000 (00:20 -0700)]
[X86] Alternate implementation of D88194.
This uses PreprocessISelDAG to replace the constant before
instruction selection instead of matching opcodes after.
Reviewed By: pengfei
Differential Revision: https://reviews.llvm.org/D89178
Wei Wang [Fri, 23 Oct 2020 05:54:16 +0000 (22:54 -0700)]
[X86] Encode global address in small code model
In small code model, program and its symbols are linked in the lower 2 GB of
the address space. Try encoding global address even when the range is unknown
in such case.
Differential Revision: https://reviews.llvm.org/D89341
Christian Sigg [Mon, 26 Oct 2020 21:13:59 +0000 (22:13 +0100)]
[mlir] Fix TypeID lookup in GDB pretty printers.
The TypeID instance was moved in D89153.
It wasn't caught that it broke MLIR pretty printers because pre-merge checks don't run check-debuginfo.
Avoid disabling all MLIR printers in case this happens again by catching the exception.
Reviewed By: stellaraccident
Differential Revision: https://reviews.llvm.org/D90191
Max Kazantsev [Tue, 27 Oct 2020 05:55:17 +0000 (12:55 +0700)]
[NFC] Factor away lambda's redundant parameter
Nathan Ridge [Sun, 26 Apr 2020 04:45:51 +0000 (00:45 -0400)]
[clangd] Increase the TooMany limit for index-based textual navigation to 5
Differential Revision: https://reviews.llvm.org/D90134
Nathan Ridge [Sun, 4 Oct 2020 05:07:20 +0000 (01:07 -0400)]
[libTooling] Recognize sccache as a compiler wrapper in compilation database commands
sccache is a compiler caching tool similar to ccache.
Differential Revision: https://reviews.llvm.org/D88790
Serguei Katkov [Tue, 20 Oct 2020 10:32:08 +0000 (17:32 +0700)]
[GVN LoadPRE] Add an option to disable splitting backedge
GVN Load PRE can split the backedge causing breaking the loop structure where the latch
contains the conditional branch with for example induction variable.
Different optimizations expect this form of the loop, so it is better to preserve it for some time.
This CL adds an option to control an ability to split backedge.
Default value is true so technically it is NFC and current behavior is not changed.
Reviewers: fedor.sergeev, mkazantsev, nikic, reames, fhahn
Reviewed By: mkazasntsev
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D89854
Max Kazantsev [Tue, 27 Oct 2020 04:35:16 +0000 (11:35 +0700)]
[IndVars] Remove monotonic checks with unknown exit count
Even if the exact exit count is unknown, we can still prove that this
exit will not be taken. If we can prove that the predicate is monotonic,
fulfilled on first & last iteration, and no overflow happened in between,
then the check can be removed.
Differential Revision: https://reviews.llvm.org/D87832
Reviewed By: apilipenko
Shilei Tian [Tue, 27 Oct 2020 04:02:23 +0000 (00:02 -0400)]
[Clang][OpenMP] Avoid unnecessary privatization of mapper array when there is no user defined mapper
In current implementation, if it requires an outer task, the mapper array will be privatized no matter whether it has mapper. In fact, when there is no mapper, the mapper array only contains number of nullptr. In the libomptarget, the use of mapper array is `if (mappers_array && mappers_array[i])`, which means we can directly set mapper array to nullptr if there is no mapper. This can avoid unnecessary data copy.
In this patch, the data privatization will not be emitted if the mapper array is nullptr. When it comes to the emit of task body, the nullptr will be used directly.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D90101
Jonas Devlieghere [Tue, 27 Oct 2020 03:31:33 +0000 (20:31 -0700)]
Fix calls to (p)read on macOS when size > INT32_MAX
On macOS, the read and pread syscalls return EINVAL when the number of
bytes to read exceeds INT32_MAX:
https://github.com/apple/darwin-xnu/blob/
a449c6a3b8014d9406c2ddbdc81795da24aa7443/bsd/kern/sys_generic.c#L355
rdar://
68751407
Differential revision: https://reviews.llvm.org/D90201
Arthur Eubanks [Sat, 17 Oct 2020 00:21:12 +0000 (17:21 -0700)]
Reland [AlwaysInliner] Pass callee AAResults to InlineFunction()
Test copied from noalias-calls.ll with small changes.
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D89609
Arthur Eubanks [Wed, 30 Sep 2020 19:11:46 +0000 (12:11 -0700)]
Use uint64_t for branch weights instead of uint32_t
CallInst::updateProfWeight() creates branch_weights with i64 instead of i32.
To be more consistent everywhere and remove lots of casts from uint64_t
to uint32_t, use i64 for branch_weights.
Reviewed By: davidxl
Differential Revision: https://reviews.llvm.org/D88609
Arthur Eubanks [Tue, 27 Oct 2020 03:23:18 +0000 (20:23 -0700)]
Revert "[AlwaysInliner] Pass callee AAResults to InlineFunction()"
This reverts commit
504fbec7a61cdfbb5f6e1b25cf14afe5195ccaf6.
Test failure.
Bing1 Yu [Tue, 27 Oct 2020 02:34:07 +0000 (10:34 +0800)]
[CostModel][X86] teach TTI calculate cost of chain of vector inserts/extracts more precisely and correctly:In each 128-lane, if there is at least one index is demanded and not all indices are demanded...
In each 128-lane, if there is at least one index is demanded and not all
indices are demanded and this 128-lane is not the first 128-lane of the
legalized-vector, then this 128-lane needs a extracti128;
If in each 128-lane, there is at least one index is demanded, this 128-lane
needs a inserti128.
The following cases will help you build a better understanding:
Assume we insert several elements into a v8i32 vector in avx2,
Case#1: inserting into 1th index needs vpinsrd + inserti128
Case#2: inserting into 5th index needs extracti128 + vpinsrd +
inserti128
Case#3: inserting into 4,5,6,7 index needs 4*vpinsrd + inserti128.
Reviewed By: pengfei, RKSimon
Differential Revision: https://reviews.llvm.org/D89767
Arthur Eubanks [Sat, 17 Oct 2020 00:21:12 +0000 (17:21 -0700)]
[AlwaysInliner] Pass callee AAResults to InlineFunction()
Test copied from noalias-calls.ll with small changes.
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D89609
Arthur Eubanks [Mon, 26 Oct 2020 20:21:39 +0000 (13:21 -0700)]
[PlaceSafepoints] Pin tests to legacy PM
This pass isn't used in tree and can be ported to the NPM later on if desired.
Differential Revision: https://reviews.llvm.org/D90189
Arthur Eubanks [Mon, 26 Oct 2020 18:59:23 +0000 (11:59 -0700)]
Port -objc-arc-expand to NPM
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D90182
Arthur Eubanks [Mon, 26 Oct 2020 18:46:30 +0000 (11:46 -0700)]
Port -objc-arc-apelim to NPM
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D90181
River Riddle [Tue, 27 Oct 2020 02:31:10 +0000 (19:31 -0700)]
[mlir][SymbolTable] Use Identifier instead of StringRef when looking up symbol name attributes
Using an Identifier is much more efficient for attribute lookups because it uses pointer comparison as opposed to string comparison.
Differential Revision: https://reviews.llvm.org/D89660
River Riddle [Tue, 27 Oct 2020 02:31:04 +0000 (19:31 -0700)]
[mlir][StorageUniquer] Refactor parametric storage to use sharded dense sets
This revisions implements sharding in the storage of parametric instances to decrease lock contention by sharding out the allocator/mutex/etc. to use for a specific storage instance based on the hash key. This is a somewhat common approach to reducing lock contention on data structures, and is used by the concurrent hashmaps provided by folly/java/etc. For several compilations tested, this removed all/most lock contention from profiles and reduced compile time by several seconds.
Differential Revision: https://reviews.llvm.org/D89659
Shilei Tian [Tue, 27 Oct 2020 02:32:18 +0000 (22:32 -0400)]
[Clang][OpenMP] Fixed an issue of segment fault when using target nowait
The implementation of target nowait just wraps the target region into a task. The essential four parameters (base ptr, ptr, size, mapper) are taken as firstprivate such that they will be copied to the private location. When there is no user-defined mapper, the mapper variable will be nullptr. However, it will be still copied to the corresponding place. Therefore, a memcpy will be generated and the source pointer will be nullptr, causing a segmentation fault. The root cause is when calling `emitOffloadingArraysArgument`, the last argument `Options` has a field about whether it requires a task. It only takes depend clause into account. In this patch, the nowait clause is also included.
There're two things that will be done in another patches:
1. target data nowait has not been supported yet. D90099 added the support.
2. When there is no mapper, the mapper array can be nullptr no matter whether it requires outer task or not. It can avoid an unnecessary data copy. This is an optimization that is covered in D90101.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D89844
Chen Zheng [Tue, 27 Oct 2020 02:29:22 +0000 (22:29 -0400)]
[LSR] fix typo in comments and rename for a new added hook.
Duncan P. N. Exon Smith [Tue, 27 Oct 2020 01:26:36 +0000 (21:26 -0400)]
SourceManager: clang-format the SrcMgr namespace, NFC