OSDN Git Service
Erich Keane [Tue, 19 May 2020 19:54:35 +0000 (12:54 -0700)]
Fix X86_64 complex-returns for regcall.
D35259 introduced a case where complex types of non-long-double would
result in FI.getReturnInfo() to not be initialized properly. This
resulted in a crash under some very specific circumstances when
dereferencing the LLVMContext.
This patch makes sure that these types have the intended getReturnInfo
initialization.
Benjamin Kramer [Tue, 19 May 2020 20:16:15 +0000 (22:16 +0200)]
Give helpers internal linkage. NFC.
Nico Weber [Tue, 19 May 2020 20:13:57 +0000 (16:13 -0400)]
[gn build] Try to unbreak Windows build after
f8e833a501.
Jonas Devlieghere [Tue, 19 May 2020 20:07:05 +0000 (13:07 -0700)]
[lldb/Reproducers] Update GDB remote client tests for passive replay
Tests that check the state of the server don't work when replayed
because the replay server replies to requests.
Artem Dergachev [Tue, 19 May 2020 19:43:10 +0000 (22:43 +0300)]
[analyzer] Move apiModeling.StdCLibraryFunctionArgs to alpha.
It was enabled by default accidentally; still missing some important
features. Also it needs a better package because it doesn't boil down to
API modeling.
Differential Revision: https://reviews.llvm.org/D80213
Sébastien Marchand [Tue, 19 May 2020 19:58:52 +0000 (15:58 -0400)]
[gn build] Add a flag zlib_path to provide the path to zlib on Windows.
Also, automatically set llvm_enable_zlib to true when zlib_path is set.
Differential Revision: https://reviews.llvm.org/D80042
Lei Huang [Mon, 11 May 2020 18:49:50 +0000 (13:49 -0500)]
[PowerPC][NFC] Cleanup load/store spilling code
Summary: Cleanup and commonize code used for spilling to the stack.
Reviewers: stefanp, nemanjai, #powerpc, kamaub
Reviewed By: nemanjai, #powerpc, kamaub
Subscribers: kamaub, hiraditya, wuzish, shchenz, llvm-commits, kbarton
Tags: #llvm, #powerpc
Differential Revision: https://reviews.llvm.org/D79736
Sanjay Patel [Tue, 19 May 2020 19:54:29 +0000 (15:54 -0400)]
[PGOProfile] make test less brittle; NFC
This test may fail just from cosmetic diffs because the values change names.
This is a minimal diff to work-around that, but more may be needed.
Thomas Lively [Tue, 19 May 2020 19:54:15 +0000 (12:54 -0700)]
[WebAssembly] Fix bug in custom shuffle combine
Summary:
The code previously assumed the source of the bitcast in the combined
pattern was a vector type, but this is not always true. This patch
adds a check to avoid an assertion failure in that case.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80164
Thomas Lively [Tue, 19 May 2020 19:50:44 +0000 (12:50 -0700)]
[WebAssembly] Implement i64x2.mul and remove i8x16.mul
Summary:
This reflects changes in the spec proposal made since basic arithmetic
was first implemented.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D80174
Jez Ng [Tue, 19 May 2020 15:53:53 +0000 (08:53 -0700)]
[lld-macho][re-land] Support X86_64_RELOC_UNSIGNED
This reverts commit
db8559eee4a07c44babcc4618eef3d185cf79cc6.
Jez Ng [Tue, 19 May 2020 15:46:07 +0000 (08:46 -0700)]
[lld-macho][re-land] Support .subsections_via_symbols
Summary:
This diff restores and builds upon @pcc and @ruiu's initial work on
subsections.
The .subsections_via_symbols directive indicates we can split each
section along symbol boundaries, unless those symbols have been marked
with `.alt_entry`.
We exercise this functionality in our tests by using order files that
rearrange those symbols.
Depends on D79668.
Reviewers: ruiu, pcc, MaskRay, smeenai, alexshap, gkm, Ktwu, christylee
Reviewed By: smeenai
Subscribers: thakis, llvm-commits, pcc, ruiu
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79926
Zola Bridges [Sun, 17 May 2020 17:11:26 +0000 (10:11 -0700)]
[llvm][docs] Add step by step git to GettingStarted
Summary:
Due to deleting the git llvm script, folks were asking for better documentation
about how to use git in order to commit to the Github repo. I added some step
by step git commands to make the usage clearer.
link: http://lists.llvm.org/pipermail/llvm-dev/2020-May/141640.html
Reviewed By: spatel, mehdi_amini
Differential Revision: https://reviews.llvm.org/D80088
Sanjay Patel [Tue, 19 May 2020 18:54:19 +0000 (14:54 -0400)]
[PhaseOrdering] add tests for x86 horizontal math ops (PR41813); NFC
Sanjay Patel [Tue, 19 May 2020 18:51:21 +0000 (14:51 -0400)]
[PhaseOrdering] make different pass manager runs equivalent; NFC
I don't see any difference from the 'avx' setting, so leaving that
off until there's a need for it.
Jay Foad [Mon, 18 May 2020 15:24:18 +0000 (16:24 +0100)]
[IR] Simplify BasicBlock::removePredecessor. NFCI.
Differential Revision: https://reviews.llvm.org/D80141
Christopher Tetreault [Tue, 19 May 2020 17:47:16 +0000 (10:47 -0700)]
[SVE] Add specialized getters to derived vector types
Summary:
Add versions of the specialized getters in base VectorType to the
derived vector types that return derived pointers. This reduces the
amount of casting you need to do when working with derived vectors
Reviewers: efriedma, david-arm, fpetrogalli, craig.topper
Reviewed By: david-arm
Subscribers: tschuett, rkruppe, psnobl, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80026
Jonas Devlieghere [Tue, 19 May 2020 18:16:57 +0000 (11:16 -0700)]
[lldb/Properties] Move OSPluginReportsAllThreads from Target to Process
This is what Jim wanted originally.
rdar://problem/
61236293
Differential revision: https://reviews.llvm.org/D80159
Nikita Popov [Wed, 25 Mar 2020 19:02:07 +0000 (20:02 +0100)]
[LVI] Don't require DominatorTree in LVI (NFC)
After D76797 the dominator tree is no longer used in LVI, so we
can remove it as a pass dependency, and also get rid of the
dominator tree enabling/disabling logic in JumpThreading.
Apart from cleaning up the code, this also clarifies LVI
cache consistency, in that the LVI cache can no longer
depend on whether the DT was or wasn't enabled due to
pending DT updates at any given time.
Differential Revision: https://reviews.llvm.org/D76985
Hanhan Wang [Tue, 19 May 2020 17:55:17 +0000 (10:55 -0700)]
[mlir][StandardToSPIRV] Fix signedness issue in bitwidth emulation.
Summary:
Previously, after applying the mask, a negative number would convert to a
positive number because the sign flag was forgotten. This patch adds two more
shift operations to do the sign extension. This assumes that we're using two's
complement.
This patch applies sign extension unconditionally when loading a unspported integer width, and it relies the pattern to do the casting because the signedness semantic is carried by operator itself.
Differential Revision: https://reviews.llvm.org/D79753
Eric Christopher [Tue, 19 May 2020 17:55:30 +0000 (10:55 -0700)]
Silence warnings around int/float conversions.
Jonas Devlieghere [Tue, 19 May 2020 16:55:07 +0000 (09:55 -0700)]
[lldb/Reproducers] Move connection logic into replay server (NFC)
Move the logic for connecting to the replay server into the replay
server itself, so it can be reused outside of ProcessGDBRemote.
Erich Keane [Tue, 19 May 2020 17:15:34 +0000 (10:15 -0700)]
Fix aux-target diagnostics for certain builtins
When I fixed the targets specific builtins to make sure that aux-targets
are checked, it seems I didn't consider cases where the builtins check
the target info for further info. This patch bubbles the target-info
down to the individual checker functions to ensure that they validate
against the aux-target as well.
For non-aux-target invocations, this is an NFC.
Craig Topper [Tue, 19 May 2020 16:59:24 +0000 (09:59 -0700)]
[StackColoring] When remapping alloca's move the To alloca if the From alloca is before it.
If To is after From its possible that there's a use of From
between them.
Fixes issue reported here http://lists.llvm.org/pipermail/llvm-dev/2020-May/141421.html
Differential Revision: https://reviews.llvm.org/D80101
Matt Morehouse [Tue, 19 May 2020 17:28:18 +0000 (10:28 -0700)]
Entropic: Boosting LibFuzzer Performance
Summary:
This is collaboration between Marcel Boehme @ Monash, Australia and Valentin Manès plus Sang Kil Cha @ KAIST, South Korea.
We have made a few modifications to boost LibFuzzer performance by changing how weights are assigned to the seeds in the corpus. Essentially, seeds that reveal more "information" about globally rare features are assigned a higher weight. Our results on the Fuzzer Test Suite seem quite promising. In terms of bug finding, our Entropic patch usually finds the same errors much faster and in more runs. In terms of coverage, our version Entropic achieves the same coverage in less than half the time for the majority of subjects. For the lack of space, we shared more detailed performance results directly with @kcc. We'll publish the preprint with all the technical details as soon as it is accepted. Happy to share if you drop us an email.
There should be plenty of opportunities to optimise further. For instance, while Entropic achieves the same coverage in less than half the time, Entropic has a much lower #execs per second. We ran the perf-tool and found a few performance bottlenecks.
Thanks for open-sourcing LibFuzzer (and the entire LLVM Compiler Infrastructure)! This has been such a tremendous help to my research.
Patch By: Marcel Boehme
Reviewers: kcc, metzman, morehouse, Dor1s, vitalybuka
Reviewed By: kcc
Subscribers: dgg5503, Valentin, llvm-commits, kcc
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73776
Andrea Di Biagio [Tue, 19 May 2020 10:20:33 +0000 (11:20 +0100)]
[X86] Split masked integer vector stores into vXi32/vXi64 variants (PR45975). NFC
This effectively splits the scheduling WriteVecMaskedStore(Y) classes
into four different classes (one per each variant).
The new VecMaskedStore scheduling classes are now correctly marked as
'unsupported' by the bdver2 and btver2 models.
No functional change intended.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D80201
Florian Hahn [Tue, 19 May 2020 14:35:59 +0000 (15:35 +0100)]
[LV] Remove duplicated return stmt (NFC).
Jay Foad [Tue, 5 May 2020 12:00:48 +0000 (13:00 +0100)]
[InstCombine] Remove hasNoInfs check for pow(C,y) -> exp2(log2(C)*y)
We already check hasNoNaNs and that x is finite and strictly positive.
That only leaves the following special cases (taken from the Linux man
page for pow):
If x is +1, the result is 1.0 (even if y is a NaN).
If the absolute value of x is less than 1, and y is negative infinity, the result is positive infinity.
If the absolute value of x is greater than 1, and y is negative infinity, the result is +0.
If the absolute value of x is less than 1, and y is positive infinity, the result is +0.
If the absolute value of x is greater than 1, and y is positive infinity, the result is positive infinity.
The first case is handled elsewhere, and this transformation preserves
all the others, so there is no need to limit it to hasNoInfs.
Differential Revision: https://reviews.llvm.org/D79409
Fangrui Song [Mon, 18 May 2020 17:15:59 +0000 (10:15 -0700)]
[ELF] Make --trace-symbol track preempted shared definitions
Note, we still name a preempted SharedSymbol "shared definition",
instead of "reference" as printed by GNU ld. This difference should not matter.
```
// GNU ld
ld.bfd: t: definition of f@v1
ld.bfd: t.so: reference to f@v1
```
Reviewed By: psmith
Differential Revision: https://reviews.llvm.org/D80143
mydeveloperday [Tue, 19 May 2020 15:50:24 +0000 (16:50 +0100)]
[clang-format] @lefticus just taught the world how to use [[unlikely]] but we forgot to teach clang-format
Summary:
https://twitter.com/lefticus/status/
1262392152950288384?s=20
Jason Turner's (@lefticus) most recent C++ weekly explains the usage of [[likely]] and [[unlikely]] in an 'if/else' context in C++ 20
clang-format leaves the code a little messy afterwards..
```
if (argc > 5)
[[unlikely]] {
// ...
}
else if (argc < 0)
[[likely]] {
// ...
}
else
[[likely]] {
// ...
}
```
try to improve the situation
```
if (argc > 5) [[unlikely]] {
// ...
} else if (argc < 0) [[likely]] {
// ...
} else [[likely]] {
// ...
}
```
Reviewed By: JakeMerdichAMD
Subscribers: cfe-commits, lefticus
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D80144
mydeveloperday [Tue, 19 May 2020 15:47:38 +0000 (16:47 +0100)]
[clang-format] [PR45614] Incorrectly indents [[nodiscard]] attribute funtions after a macro without semicolon
Summary:
https://bugs.llvm.org/show_bug.cgi?id=45614
`[[nodiscard]]` after a macro doesn't behave the same as an __attribute__ resulting in incorrect indentation
This revision corrects that behavior
See original Mozilla bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=
1629756
Before:
```
class FooWidget : public nsBaseWidget {
public:
FooWidget();
NS_DECL_ISUPPORTS_INHERITED
[[nodiscard]] nsresult
FunctionOne();
[[nodiscard]] nsresult FunctionTwo();
};
```
After:
```
class FooWidget : public nsBaseWidget {
public:
FooWidget();
NS_DECL_ISUPPORTS_INHERITED
[[nodiscard]] nsresult FunctionOne();
[[nodiscard]] nsresult FunctionTwo();
};
```
Reviewed By: Abpostelnicu
Subscribers: cfe-commits
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D79990
mydeveloperday [Tue, 19 May 2020 15:43:50 +0000 (16:43 +0100)]
[clang-format] [PR44476] Add space between template and attribute
Summary:
https://bugs.llvm.org/show_bug.cgi?id=44476
```template <typename T> [[nodiscard]] int a() { return 1; }```
gets incorrectly formatted to be
```template <typename T>[[nodiscard]] int a() { return 1; }```
This revision ensure there is a space between the template and the attribute
Reviewed By: JakeMerdichAMD
Subscribers: cfe-commits
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D79905
mydeveloperday [Tue, 19 May 2020 15:41:50 +0000 (16:41 +0100)]
[clang-format] [PR45942] [[nodiscard]] causes && to be miss interpreted as BinaryOperators
Summary:
https://bugs.llvm.org/show_bug.cgi?id=45942
With Chromium style (although that is not important) its just it defines PointerAligmment: Left
The following arguments `S&&` are formatted differently depending on if the class has an attribute between it and the class identifier
```
class S {
S(S&&) = default;
};
class [[nodiscard]] S {
S(S &&) = default;
};
```
The prescense of [[nodiscard]] between the `class/struct` and the `{` causes the `{` to be incorrectly seen as a `TT_FunctionLBrace` which in turn transforms all the && to be `TT_BinaryOperators` rather than `TT_PointerOrReference`, as binary operators other spacing rules come into play causing a miss format
This revision resolves this by allowing the parseRecord to consider the [[nodisscard]]
Reviewed By: Abpostelnicu
Subscribers: cfe-commits
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D80008
Jez Ng [Tue, 19 May 2020 15:29:17 +0000 (08:29 -0700)]
Revert "[lld-macho] Support .subsections_via_symbols"
Due to build breakage mentioned in https://reviews.llvm.org/D79926.
This reverts commit
e270b2f1727c0fbde2676e8d0340c0d934726d3c.
Jez Ng [Tue, 19 May 2020 15:29:11 +0000 (08:29 -0700)]
Revert "[lld-macho] Support X86_64_RELOC_UNSIGNED"
This reverts commit
1f820e35596bac036a7f759c4de41fcc2e642719.
Kirill Bobyrev [Tue, 19 May 2020 14:59:04 +0000 (16:59 +0200)]
[clangd-remote] Replace YAML serialization with proper Protobuf messages
Summary:
YAML serialization was used in the Proof of Concept for simplicity.
This patch replaces implements Protobuf (de) serialization of almost all
types that need to be transferred over the protocol.
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79862
Ehsan Toosi [Mon, 4 May 2020 14:06:59 +0000 (16:06 +0200)]
[MLIR] Update the FunctionAndBlockSignatureConverter and NonVoidToVoidReturnOpConverter of Buffer Assignment
Making these two converters more generic. FunctionAndBlockSignatureConverter now
moves only memref results (after type conversion) to the function argument and
keeps other legal function results unchanged. NonVoidToVoidReturnOpConverter is
renamed to NoBufferOperandsReturnOpConverter. It removes only the buffer
operands from the operands of the converted ReturnOp and inserts CopyOps to copy
each buffer to the target function argument.
Differential Revision: https://reviews.llvm.org/D79329
Kirstóf Umann [Tue, 14 Apr 2020 15:13:41 +0000 (17:13 +0200)]
[analyzer][Nullability] Don't emit under the checker name NullabilityBase
Differential Revision: https://reviews.llvm.org/D78122
jasonliu [Tue, 19 May 2020 14:56:56 +0000 (14:56 +0000)]
[clang][AIX] Implement ABIInfo and TargetCodeGenInfo for AIX
Summary:
Created AIXABIInfo and AIXTargetCodeGenInfo for AIX ABI.
Reviewed By: Xiangling_L, ZarkoCA
Differential Revision: https://reviews.llvm.org/D79035
Kirstóf Umann [Tue, 19 May 2020 14:46:16 +0000 (16:46 +0200)]
[analyzer] Don't print the config count in debug.ConfigDumper
I think anyone who added a checker config wondered why is there a need
to test this. Its just a chore when adding a new config, so I removed
it.
To give some historic insight though, we used to not list **all**
options, but only those explicitly added to AnalyzerOptions, such as the
ones specified on the command line. However, past this change (and
arguably even before that) this line makes little sense.
There is an argument to be made against the entirety of
analyzer-config.c test file, but since this commit fixes some builtbots
and is landing without review, I wouldn't like to be too invasive.
Sam McCall [Tue, 19 May 2020 14:50:30 +0000 (16:50 +0200)]
[clangd] Avoid StringRef entirely with gmock
Sam McCall [Mon, 18 May 2020 22:45:27 +0000 (00:45 +0200)]
[clangd] findExplicitReferences supports goto labels
Summary:
This means they're renamable and textDocument/highlight works
This fell out of D78454
Reviewers: adamcz
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80170
Jez Ng [Fri, 15 May 2020 19:02:40 +0000 (12:02 -0700)]
[lld-macho] Support X86_64_RELOC_UNSIGNED
Note that it's only used for non-pc-relative contexts.
Reviewed By: MaskRay, smeenai
Differential Revision: https://reviews.llvm.org/D80048
Jez Ng [Mon, 11 May 2020 22:48:47 +0000 (15:48 -0700)]
[lld-macho] Support .subsections_via_symbols
This diff restores and builds upon @pcc and @ruiu's initial work on
subsections.
The .subsections_via_symbols directive indicates we can split each
section along symbol boundaries, unless those symbols have been marked
with `.alt_entry`.
We exercise this functionality in our tests by using order files that
rearrange those symbols.
Reviewed By: smeenai
Differential Revision: https://reviews.llvm.org/D79926
Jez Ng [Tue, 5 May 2020 23:37:34 +0000 (16:37 -0700)]
[lld-macho] Support -order_file
The order file indicates how input sections should be sorted within each
output section, based on the symbols contained within those sections.
This diff sets the stage for implementing and testing
`.subsections_via_symbols`, where we will break up InputSections by each
symbol and sort them more granularly.
Reviewed By: smeenai
Differential Revision: https://reviews.llvm.org/D79668
Florian Hahn [Tue, 19 May 2020 14:29:40 +0000 (15:29 +0100)]
[VPlan] Fix comment for User in VPWidenSelectRecipe (NFC).
The comment was referring the arguments of the call, but the recipe
widens a select.
Alex Zinenko [Tue, 19 May 2020 14:22:00 +0000 (16:22 +0200)]
[mlir] scf::ForOp: provide builders with callbacks for loop body
Thanks to a recent change that made `::build` functions take an instance of
`OpBuilder`, it is now possible to build operations within a region attached to
the operation about to be created. Exercise this on `scf::ForOp` by taking a
callback that populates the loop body while the loop is being created.
Additionally, provide helper functions to build perfect nests of `ForOp`s,
with support for iteration arguments. These functions provide the same
functionality as EDSC LoopNestBuilder with simpler implementation, without
relying on edsc::ScopedContext, and using `OpBuilder` in an unambiguous way.
Compatibility functions for EDSC are provided, but may be removed in the
future.
Differential Revision: https://reviews.llvm.org/D79688
Greg McGary [Tue, 19 May 2020 14:17:44 +0000 (07:17 -0700)]
[lld] Remove unused lld/test/Driver/Inputs/**/libtest.a
Under `lld/test/Driver/Inputs/`, all instances of `libtest.a` are
unreferenced. FYI, all of these are empty archives, and the files
contain only a magic number.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D80182
Simon Pilgrim [Tue, 19 May 2020 14:04:05 +0000 (15:04 +0100)]
MCTargetOptionsCommandFlags.h - remove unnecessary includes. NFC.
Replace with MCTargetOptions forward declaration and move includes down to MCTargetOptionsCommandFlags.cpp
Simon Pilgrim [Tue, 19 May 2020 13:22:11 +0000 (14:22 +0100)]
CommandLine.h - remove unnecessary raw_ostream forward declaration. NFC.
We already have to include raw_ostream.h.
Simon Pilgrim [Tue, 19 May 2020 13:00:37 +0000 (14:00 +0100)]
MachineBasicBlock.h - remove unnecessary includes. NFC.
Don't explicitly include ilist_node.h + simple_ilist.h - we already include ilist.h that include these for us and all references are in terms of that.
The rest can be covered by forward declarations.
Valeriy Savchenko [Tue, 19 May 2020 14:05:51 +0000 (17:05 +0300)]
[analyzer] SATestBuild.py: Optionally override compiler
Differential Revision: https://reviews.llvm.org/D80211
Florian Hahn [Tue, 19 May 2020 14:04:48 +0000 (15:04 +0100)]
[VPlan] Add & use VPValue operands for VPReplicateRecipe (NFC).
This patch adds VPValue version of the instruction operands to
VPReplicateRecipe and uses them during code-generation.
Reviewers: Ayal, gilr, rengolin
Reviewed By: gilr
Differential Revision: https://reviews.llvm.org/D80114
Sam McCall [Tue, 19 May 2020 14:06:08 +0000 (16:06 +0200)]
[clangd] Delete regex assertion, breaking on windows too...
Florian Hahn [Tue, 19 May 2020 13:03:18 +0000 (14:03 +0100)]
[VPlan] Remove unique_ptr from VPBranchOnRecipeMask (NFC).
We can remove a dynamic memory allocation, by checking the number of
operands: no operands = all true, 1 operand = mask.
Reviewers: Ayal, gilr, rengolin
Reviewed By: Ayal
Differential Revision: https://reviews.llvm.org/D80110
Matt Arsenault [Tue, 19 May 2020 12:59:16 +0000 (08:59 -0400)]
GlobalISel: Fix IRTranslator for constantexpr selects
This was assuming a select is always an instruction, which is not
true.
Kirstóf Umann [Tue, 14 Apr 2020 15:13:41 +0000 (17:13 +0200)]
[analyzer][DirectIvarAssignment] Turn DirectIvarAssignmentForAnnotatedFunctions into a checker option
Since this is an alpha checker, I don't worry about backward compatibility :)
Differential Revision: https://reviews.llvm.org/D78121
Haojian Wu [Tue, 19 May 2020 13:26:42 +0000 (15:26 +0200)]
[AST] Fix an assertion violation in FieldDecl::getParent.
Summary:
FieldDecl::getParent assumes that the FiledDecl::getDeclContext returns a
RecordDecl, this is true for C/C++, but not for ObjCIvarDecl:
The Decls hierarchy is like following
FieldDecl <-- ObjCIvarDecl
DeclContext <-- ObjCContainerDecl <-- ObjCInterfaceDecl
^
|----- TagDecl <-- RecordDecl
calling getParent() on ObjCIvarDecl will:
1. invoke getDeclContext(), which returns a DeclContext*, which points to an ObjCInterfaceDecl;
2. then downcast the "DeclContext" pointer to a RecordDecl*, and we will hit
the "is_a<RecordDecl>" assertion in llvm::cast (undefined behavior
in release build without assertion enabled);
Fixes https://github.com/clangd/clangd/issues/369
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: rsmith, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79627
Haojian Wu [Tue, 19 May 2020 13:21:50 +0000 (15:21 +0200)]
[clangd] Add a flag to preserve type for recovery expression.
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79938
Haojian Wu [Tue, 19 May 2020 13:10:10 +0000 (15:10 +0200)]
[AST] Fix the PrintQualifiedName for ObjC instance variable in class extension.
Summary:
Similar to property, we print the containing interface decl as the
nested name specifier for ivar; otherwise we will get "::ivar_name".
this would fix an assertion crash in clangd: https://github.com/clangd/clangd/issues/365
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: ilya-biryukov, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79576
George [Tue, 19 May 2020 13:07:49 +0000 (09:07 -0400)]
Added a TanOp to SPIR-V dialect GLSL ops
Implemented tangent op from SPIR-V's GLSL extended instruction set.
Added a round-trip and serialization/deserialization tests for the op.
Differential Revision: https://reviews.llvm.org/D80152
Haojian Wu [Tue, 19 May 2020 10:02:52 +0000 (12:02 +0200)]
[AST][RecoveryExpr] Fix an assertion crash on openMP.
Summary:
With recovery expr, it is possible that we have a value-dependent expr
within non-dependent context.
Reviewers: sammccall, jdoerfert
Subscribers: yaxunl, guansong, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80200
Sam Parker [Tue, 19 May 2020 12:56:51 +0000 (13:56 +0100)]
[NFC][ARM] Add more tail predication tests
Alexey Bataev [Mon, 18 May 2020 17:37:53 +0000 (13:37 -0400)]
[OPENMP50]Add initial support for 'affinity' clause.
Summary:
Added parsing/sema/serialization support for affinity clause in task
directives.
Reviewers: jdoerfert
Subscribers: yaxunl, guansong, arphaman, llvm-commits, cfe-commits, caomhin
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D80148
Jay Foad [Tue, 19 May 2020 11:30:26 +0000 (12:30 +0100)]
[IR] Revert r119493
r119493 protected against PHINode::hasConstantValue returning the PHI
node itself, but a later fix in r159687 means that can never happen, so
the workarounds are no longer required.
Simon Pilgrim [Tue, 19 May 2020 12:16:24 +0000 (13:16 +0100)]
Fix "not all control paths return a value" warning on MSVC builds.
Use llvm_unreachable as typeName(Metric::MetricType T) should handle all enum values.
Simon Pilgrim [Tue, 19 May 2020 11:33:28 +0000 (12:33 +0100)]
ObjectCache.h - replace unnecessary MemoryBuffer.h include with forward declarations. NFC.
Simon Pilgrim [Tue, 19 May 2020 11:08:29 +0000 (12:08 +0100)]
GlobalVariable.h - remove unused PointerUnion.h include. NFC
Kirstóf Umann [Tue, 5 May 2020 12:55:37 +0000 (14:55 +0200)]
[analyzer][MallocChecker] When modeling realloc-like functions, don't early return if the argument is symbolic
The very essence of MallocChecker lies in 2 overload sets: the FreeMemAux
functions and the MallocMemAux functions. The former houses most of the error
checking as well (aside from leaks), such as incorrect deallocation. There, we
check whether the argument's MemSpaceRegion is the heap or unknown, and if it
isn't, we know we encountered a bug (aside from a corner case patched by
@balazske in D76830), as specified by MEM34-C.
In ReallocMemAux, which really is the combination of FreeMemAux and
MallocMemAux, we incorrectly early returned if the memory argument of realloc is
non-symbolic. The problem is, one of the cases where this happens when we know
precisely what the region is, like an array, as demonstrated in the test file.
So, lets get rid of this false negative :^)
Side note, I dislike the warning message and the associated checker name, but
I'll address it in a later patch.
Differential Revision: https://reviews.llvm.org/D79415
Christian Sigg [Mon, 18 May 2020 12:13:14 +0000 (14:13 +0200)]
Unrank mcuMemHostRegister tensor argument.
Reviewers: herhut
Reviewed By: herhut
Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, stephenneuendorffer, Joonsoo, grosul1, frgossen, Kayjukh, jurahul, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80118
Sam McCall [Tue, 19 May 2020 11:58:12 +0000 (13:58 +0200)]
[clangd] Squash GCC error with StringRef + gtest MatchesRegex()
Frederik Gossen [Mon, 18 May 2020 08:56:22 +0000 (08:56 +0000)]
[MLIR] Add helper functions for common integer types
Add helper functions for 32-bit and 64-bit integer types.
Differential Revision: https://reviews.llvm.org/D80111
Sam McCall [Sat, 9 May 2020 20:43:35 +0000 (22:43 +0200)]
[clangd] Add CSV export for trace metrics
Summary: Example: https://docs.google.com/spreadsheets/d/1VZKGetSUTTDe9p4ooIETmdcwUod1_aE3vgD0E9x7HhI/edit
Reviewers: kadircet
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, jfb, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79678
Sam McCall [Tue, 5 May 2020 23:39:59 +0000 (01:39 +0200)]
[clangd] Complete filenames after < / ".
Summary:
Extract prefix filters to CodeComplete so it can be easily tested.
Fixes https://github.com/clangd/clangd/issues/366
Reviewers: adamcz
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79456
Kiran Kumar T P [Tue, 19 May 2020 11:30:15 +0000 (17:00 +0530)]
[MLIR, OpenMP] Support for flush operation, and translating the same to LLVM IR
Summary:
This patch adds support for flush operation in OpenMP dialect and translation of this construct to LLVM IR.
The OpenMP IRBuilder is used for this translation.
The patch includes code changes and testcase modifications.
Reviewed By: ftynse, kiranchandramohan
Differential Revision: https://reviews.llvm.org/D79937
Carl Ritson [Tue, 19 May 2020 10:27:16 +0000 (19:27 +0900)]
[AMDGPU] Add more VMEM to SALU WAR hazard tests. NFC
Simon Pilgrim [Tue, 19 May 2020 09:49:08 +0000 (10:49 +0100)]
GlobPattern.h - remove unnecessary StringRef.h include. NFC
Use forward declaration instead.
Remove unnecessary BitVector forward declaration while we're here - we need to include BitVector.h.
Balázs Kéri [Tue, 19 May 2020 10:12:28 +0000 (12:12 +0200)]
[Analyzer][VLASizeChecker] Try to fix vla.c test problems.
Georgii Rymar [Mon, 18 May 2020 13:43:13 +0000 (16:43 +0300)]
[yaml2obj] - Stop using square brackets for unique suffixes.
For describing section/symbol names we can use unique suffixes,
e.g:
```
- Name: '.foo [1]`
- Name: '.foo [2]`
```
It can be a problem (see https://reviews.llvm.org/D79984#inline-734829),
because `[]` are sometimes used to describe a macros:
```
- Name: "[[a0]]"
```
Seems the better approach is to use something else, like "()".
This patch does it and refactors the code related.
Differential revision: https://reviews.llvm.org/D80123
Mikael Holmen [Tue, 19 May 2020 09:57:15 +0000 (11:57 +0200)]
[clangd] Fix gcc compiler warning by removing extra ";" [NFC]
gcc complained with:
/data/repo/master/clang-tools-extra/clangd/index/Ref.h:189:2: warning: extra ';' [-Wpedantic]
}; // namespace llvm
^
Sam McCall [Mon, 18 May 2020 21:01:46 +0000 (23:01 +0200)]
[Tooling] Drop leading/trailing whitespace from compile_flags.txt lines
Summary:
These files tend to be hand-authored, and people get very confused.
I can't think of any reason that such whitespace would be intended.
Reviewers: kadircet
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80160
Sam McCall [Mon, 18 May 2020 15:22:59 +0000 (17:22 +0200)]
[AST] Fix recovery-AST crash: dependent overloaded call exprs are now possible.
Reviewers: hokein
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80154
Simon Pilgrim [Mon, 18 May 2020 16:49:59 +0000 (17:49 +0100)]
TargetIntrinsicInfo.h - remove unnecessary Compiler.h include. NFC.
We don't need use compiler specific attributes so don't need Compiler.h
Simon Pilgrim [Mon, 18 May 2020 15:56:53 +0000 (16:56 +0100)]
TargetLoweringObjectFile.h - remove unnecessary includes. NFCI.
Replace with forward declarations and move includes down to source files where required.
I also needed to move the TargetLoweringObjectFile::SectionForGlobal wrapper implementation down into TargetLoweringObjectFile.cpp
Heejin Ahn [Fri, 8 May 2020 23:19:46 +0000 (16:19 -0700)]
[WebAssembly] Handle exception specifications
Summary:
Wasm currently does not fully handle exception specifications. Rather
than crashing,
- This treats `throw()` in the same way as `noexcept`.
- This ignores and prints a warning for `throw(type, ..)`, for a
temporary measure. This warning is controlled by
`-Wwasm-exception-spec`, which is on by default. You can suppress the
warning by using `-Wno-wasm-exception-spec`.
Reviewers: dschuff
Subscribers: sbc100, jgravelle-google, sunfish, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80061
Balázs Kéri [Tue, 19 May 2020 06:21:47 +0000 (08:21 +0200)]
[Analyzer][VLASizeChecker] Check for VLA size overflow.
Summary:
Variable-length array (VLA) should have a size that fits into
a size_t value. According to the standard: "std::size_t can
store the maximum size of a theoretically possible object of
any type (including array)" (this is applied to C too).
The size expression is evaluated at the definition of the
VLA type even if this is a typedef.
The evaluation of the size expression in itself might cause
problems if it overflows.
Reviewers: Szelethus, baloghadamsoftware, martong, gamesh411
Reviewed By: Szelethus, martong, gamesh411
Subscribers: whisperity, 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/D79330
Jonas Paulsson [Wed, 13 May 2020 12:19:08 +0000 (14:19 +0200)]
[SystemZ] Eliminate the need to create a zero vector by reusing the VPERM mask.
Try to avoid creating VGBMs by reusing the permutation mask if it contains a
zero. If the first byte was into (any byte of) a zero vector, then the first
byte of the mask can become zero and reused by putting the mask also as the
first operand. If there instead was a first-byte use of the other source
operand, then that zero index can be reused if the mask is placed as the
second operand.
Review: Ulrich Weigand
Differential Revision: https://reviews.llvm.org/D79925
Martin Böhme [Tue, 19 May 2020 06:43:46 +0000 (08:43 +0200)]
[clang] Add an API to retrieve implicit constructor arguments.
Summary:
This is needed in Swift for C++ interop -- see here for the corresponding Swift change:
https://github.com/apple/swift/pull/30630
As part of this change, I've had to make some changes to the interface of CGCXXABI to return the additional parameters separately rather than adding them directly to a `CallArgList`.
Reviewers: rjmccall
Reviewed By: rjmccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79942
Igor Kudrin [Tue, 19 May 2020 06:36:07 +0000 (13:36 +0700)]
[DebugInfo] Add a test for dumping DWARF64 CIEs and FDEs (8/8).
This adds a test to check that Length and CIE_id/CIE_pointer fields in
.debug_frame section are printed as 16-digit hex values if the records
are in the DWARF64 format.
Differential Revision: https://reviews.llvm.org/D79997
Igor Kudrin [Tue, 19 May 2020 06:35:58 +0000 (13:35 +0700)]
[DebugInfo] Dump offsets in .debug_str_offsets according to the DWARF format (7/8).
The patch changes dumping of offsets in .debug_str_offsets sections so
that they are printed as 16-digit hex values if the contribution is in
the DWARF64 format.
Differential Revision: https://reviews.llvm.org/D79997
Igor Kudrin [Tue, 19 May 2020 06:35:48 +0000 (13:35 +0700)]
[DebugInfo] Dump values in .debug_pubnames and .debug_pubtypes according to the DWARF format (6/8).
The patch changes dumping of unit_length, debug_info_offset, and
debug_info_length fields in headers in .debug_pubname and
.debug_pubtypes sections so that they are printed as 16-digit hex values
if the contribution is in the DWARF64 format. Dumping of offsets in the
tables is changed in the same way.
Differential Revision: https://reviews.llvm.org/D79997
Igor Kudrin [Tue, 19 May 2020 06:35:41 +0000 (13:35 +0700)]
[DebugInfo] Dump values in .debug_loclists and .debug_rnglists according to the DWARF format (5/8).
The patch changes dumping of a unit_length field and offsets in headers
in .debug_loclists and .debug_rnglists sections so that they are printed
as 16-digit hex values if the contribution is in the DWARF64 format.
Differential Revision: https://reviews.llvm.org/D79997
Igor Kudrin [Tue, 19 May 2020 06:35:31 +0000 (13:35 +0700)]
[DebugInfo] Dump length in .debug_line according to the DWARF format (4/8).
The patch changes dumping of unit_length and header_length fields in
headers in .debug_line sections so that they are printed as 16-digit hex
values if the contribution is in the DWARF64 format.
Differential Revision: https://reviews.llvm.org/D79997
Igor Kudrin [Tue, 19 May 2020 06:35:20 +0000 (13:35 +0700)]
[DebugInfo] Dump length of CUs and TUs according to the DWARF format (3/8).
The patch changes dumping of the unit_length field in a unit header so
that it is printed as a 16-digit hex value if the unit is in the DWARF64
format.
Differential Revision: https://reviews.llvm.org/D79997
Igor Kudrin [Tue, 19 May 2020 06:35:07 +0000 (13:35 +0700)]
[DebugInfo] Dump form values according to the DWARF format (2/8).
The patch changes dumping of DWARF form values which sizes depend on
the DWARF format so that they are printed as 16-digit hex values for
DWARF64.
Differential Revision: https://reviews.llvm.org/D79997
Igor Kudrin [Tue, 19 May 2020 06:34:54 +0000 (13:34 +0700)]
[DebugInfo] Dump fields in .debug_aranges according to the DWARF format (1/8).
The patch changes dumping of unit_length and debug_info_offset fields in
an address range header so that they are printed as 16-digit hex values
if the contribution is in the DWARF64 format.
Differential Revision: https://reviews.llvm.org/D79997
Igor Kudrin [Tue, 19 May 2020 06:20:50 +0000 (13:20 +0700)]
[DebugInfo] Remove an outdated test.
64-bit DWARF is supported for most of the sections now, and there are
separate tests for each of them. This test uses a binary input, while
the preferable way is to have a text-based source. Thus, it looks like
this test may be safely removed.
Differential Revision: https://reviews.llvm.org/D80122
Sylvestre Ledru [Tue, 19 May 2020 06:30:25 +0000 (08:30 +0200)]
Add support of the next Ubuntu (Ubuntu 20.10 - Groovy Gorilla)
LLVM GN Syncbot [Tue, 19 May 2020 06:07:14 +0000 (06:07 +0000)]
[gn build] Port
bcc0c894f38
Xiang1 Zhang [Tue, 19 May 2020 05:29:30 +0000 (13:29 +0800)]
Add cet.h for writing CET-enabled assembly code
Summary:
Add x86 feature with IBT and/or SHSTK bits to ELF program property if they are enabled. Otherwise, contents in this header file are unused.
This file is mainly design for assembly source code which want to enable CET
Reviewers: hjl.tools, annita.zhang, LuoYuanke, craig.topper, tstellar, pengfei, rsmith
Reviewed By: LuoYuanke
Subscribers: cfe-commits, mgorny
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79617