platform/upstream/llvm.git
4 years agoMove BinaryOperators.FPOptions to trailing storage
Melanie Blower [Fri, 10 Apr 2020 20:34:46 +0000 (13:34 -0700)]
Move BinaryOperators.FPOptions to trailing storage

Reviewers: rjmccall

Differential Revision: https://reviews.llvm.org/D76384

4 years ago[ASTMatchers] Fix isDerivedFrom for recursive templates
Jan Korous [Wed, 15 Apr 2020 19:47:24 +0000 (12:47 -0700)]
[ASTMatchers] Fix isDerivedFrom for recursive templates

Differential Revision: https://reviews.llvm.org/D77612

4 years ago[CallSite removal][SampleProfile] Use CallBase instead of CallSite. NFC
Craig Topper [Wed, 15 Apr 2020 19:10:10 +0000 (12:10 -0700)]
[CallSite removal][SampleProfile] Use CallBase instead of CallSite. NFC

Differential Revision: https://reviews.llvm.org/D78219

4 years ago[clangd] Fix a crash for accessing a null field decl returned by findExplicitReferences.
Haojian Wu [Tue, 14 Apr 2020 22:16:10 +0000 (00:16 +0200)]
[clangd] Fix a crash for accessing a null field decl returned by findExplicitReferences.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D78181

4 years ago[libc++] Remove the ability to run using the internal Lit shell
Louis Dionne [Mon, 13 Apr 2020 21:27:04 +0000 (17:27 -0400)]
[libc++] Remove the ability to run using the internal Lit shell

The new format requires using an external shell, and as we transition
and we can simplify config.py as we transition to the new format. Also,
frankly, I'd be quite surprised if that setting was still working anyway
because we have several .sh.cpp tests that likely don't work in Lit's
internal shell.

4 years agoEnable finding bitcode in wasm objects
Sam Clegg [Wed, 15 Apr 2020 18:35:35 +0000 (11:35 -0700)]
Enable finding bitcode in wasm objects

This commit fixes using functions in `IRObjectFile` to load bitcode from
wasm objects by recognizing the file magic for wasm and also inheriting
the default implementation of classifying sections as bitcode.

Patch By: alexcrichton

Differential Revision: https://reviews.llvm.org/D78199

4 years ago[LICM] Try to merge debug locations when sinking.
Davide Italiano [Wed, 15 Apr 2020 19:28:34 +0000 (12:28 -0700)]
[LICM] Try to merge debug locations when sinking.

The current strategy LICM uses when sinking for debuginfo is
that of picking the debug location of one of the uses.
This causes stepping to be wrong sometimes, see, e.g. PR45523.

This patch introduces a generalization of getMergedLocation(),
that operates on a vector of locations instead of two, and try
to merge all them together, and use the new API in LICM.

<rdar://problem/61750950>

4 years ago[AArch64][NFC]Autogenerated checks.
Pavel Iliin [Wed, 15 Apr 2020 18:01:24 +0000 (19:01 +0100)]
[AArch64][NFC]Autogenerated checks.

4 years agoRework how UuidAttr, CXXUuidofExpr, and GUID template arguments and constants are...
Richard Smith [Sun, 12 Apr 2020 05:15:29 +0000 (22:15 -0700)]
Rework how UuidAttr, CXXUuidofExpr, and GUID template arguments and constants are represented.

Summary:
Previously, we treated CXXUuidofExpr as quite a special case: it was the
only kind of expression that could be a canonical template argument, it
could be a constant lvalue base object, and so on. In addition, we
represented the UUID value as a string, whose source form we did not
preserve faithfully, and that we partially parsed in multiple different
places.

With this patch, we create an MSGuidDecl object to represent the
implicit object of type 'struct _GUID' created by a UuidAttr. Each
UuidAttr holds a pointer to its 'struct _GUID' and its original
(as-written) UUID string. A non-value-dependent CXXUuidofExpr behaves
like a DeclRefExpr denoting that MSGuidDecl object. We cache an APValue
representation of the GUID on the MSGuidDecl and use it from constant
evaluation where needed.

This allows removing a lot of the special-case logic to handle these
expressions. Unfortunately, many parts of Clang assume there are only
a couple of interesting kinds of ValueDecl, so the total amount of
special-case logic is not really reduced very much.

This fixes a few bugs and issues:
 * PR38490: we now support reading from GUID objects returned from
   __uuidof during constant evaluation.
 * Our Itanium mangling for a non-instantiation-dependent template
   argument involving __uuidof no longer depends on which CXXUuidofExpr
   template argument we happened to see first.
 * We now predeclare ::_GUID, and permit use of __uuidof without
   any header inclusion, better matching MSVC's behavior. We do not
   predefine ::__s_GUID, though; that seems like a step too far.
 * Our IR representation for GUID constants now uses the correct IR type
   wherever possible. We will still fall back to using the
      {i32, i16, i16, [8 x i8]}
   layout if a definition of struct _GUID is not available. This is not
   ideal: in principle the two layouts could have different padding.

Reviewers: rnk, jdoerfert

Subscribers: arphaman, cfe-commits, aeubanks

Tags: #clang

Differential Revision: https://reviews.llvm.org/D78171

4 years ago[X86] Make v32i16/v64i8 legal types without avx512bw. Use custom splitting instead.
Craig Topper [Wed, 15 Apr 2020 19:03:39 +0000 (12:03 -0700)]
[X86] Make v32i16/v64i8 legal types without avx512bw. Use custom splitting instead.

This moves v32i16/v64i8 to a model consistent with how we
treat integer types with avx1.

This does change the ABI for types vXi16/vXi8 vectors larger than
512 bits to pass in multiple zmms instead of multiple ymms. We'd
already hacked some code to make v64i8/v32i16 pass in zmm.

Cost model is still a bit of a mess. In some place I tried to
match existing behavior. But really we need to account for
splitting and concating costs. Cost model for shuffles is
especially pessimistic.

Differential Revision: https://reviews.llvm.org/D76212

4 years ago[libc++] Add a new target check-cxx-deps to build dependencies of the test suite
Louis Dionne [Wed, 15 Apr 2020 19:05:14 +0000 (15:05 -0400)]
[libc++] Add a new target check-cxx-deps to build dependencies of the test suite

When running the tests through `lit` directly instead of through `check-cxx`,
it is required to manually build the `cxx` (and often `cxx_experimental`)
targets. Instead of having to do that manually, this commit adds a new
target `check-cxx-deps` that does that for you.

4 years ago[MLIR] Introduce utility to hoist affine if/else conditions
Uday Bondhugula [Fri, 10 Apr 2020 11:42:49 +0000 (17:12 +0530)]
[MLIR] Introduce utility to hoist affine if/else conditions

This revision introduces a utility to unswitch affine.for/parallel loops
by hoisting affine.if operations past surrounding affine.for/parallel.
The hoisting works for both perfect/imperfect nests and in the presence
of else blocks. The hoisting is currently to as outermost a level as
possible.  Uses a test pass to test the utility.
Add convenience method Operation::getParentWithTrait<Trait>.

Depends on D77487.

Differential Revision: https://reviews.llvm.org/D77870

4 years ago[ELF][test] Add --match-full-lines to map-file.s to check leading and trailing spaces
Fangrui Song [Wed, 15 Apr 2020 18:42:50 +0000 (11:42 -0700)]
[ELF][test] Add --match-full-lines to map-file.s to check leading and trailing spaces

Since we are going to touch so many lines, do some other cleanups.
Delete Inputs/map-file3.s and Inputs/map-file4.s which are tiny.

4 years agoRemove false positive in AvoidNonConstGlobalVariables.
Kim Viggedal [Wed, 15 Apr 2020 18:47:11 +0000 (14:47 -0400)]
Remove false positive in AvoidNonConstGlobalVariables.

Addresses post-commit review feedback from https://reviews.llvm.org/D70265

4 years ago[NFC] Silence compiler warning [-Wmissing-braces].
Huihui Zhang [Wed, 15 Apr 2020 18:43:17 +0000 (11:43 -0700)]
[NFC] Silence compiler warning [-Wmissing-braces].

clang/unittests/AST/ASTImporterFixtures.h:70:5: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    ArgVector(), ArgVector{"-fdelayed-template-parsing"},
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    {

4 years agoAMDGPU/GlobalISel: Work around a selector crash
Matt Arsenault [Wed, 15 Apr 2020 18:37:31 +0000 (14:37 -0400)]
AMDGPU/GlobalISel: Work around a selector crash

Ideally types without a corresponding register class wouldn't reach
here, but we're currently missing some (in particular a 192-bit class
is missing).

4 years ago[X86] Add generic cpu target for the slow division tests
Simon Pilgrim [Wed, 15 Apr 2020 18:05:42 +0000 (19:05 +0100)]
[X86] Add generic cpu target for the slow division tests

Baseline for any change due to D75567

4 years agoUse maximum compression when packaging release tarballs.
Dimitry Andric [Wed, 15 Apr 2020 18:30:15 +0000 (20:30 +0200)]
Use maximum compression when packaging release tarballs.

Summary:
Since a full run of test-release.sh takes many hours (at least on my
poor systems), we might as well spend some extra time compressing the
tarball, in return for a quite a bit of gains for uploading and
downloading it.

As an example, the 10.0.0-rc4 .tar.xz tarball shrinks from 465MiB to
306MiB, about 52% smaller.

Reviewers: hans, tstellar, rovka

Reviewed By: hans

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D76192

4 years agoTurn off core dumps before starting the main body of test-release.sh.
Dimitry Andric [Wed, 15 Apr 2020 18:29:20 +0000 (20:29 +0200)]
Turn off core dumps before starting the main body of test-release.sh.

Summary:
Some of the regression tests, such as those for the various sanitizers,
use huge shadow memory maps (showing up in top as 20 TiB).  If any of
those ever crashes, your test system's disk will be filled up until
everything falls over.  Set the ulimit for core dumps to 0 to prevent
this problem.

Reviewers: hans, tstellar, rovka

Reviewed By: hans

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D76191

4 years ago[libc++] Adjust XFAIL markup for modules tests on single-threaded systems
Louis Dionne [Wed, 15 Apr 2020 18:17:40 +0000 (14:17 -0400)]
[libc++] Adjust XFAIL markup for modules tests on single-threaded systems

When building these tests without modules in the whole test suite,
the __config_site macro definitions are not included anymore in the
%{compile_flags}. This causes the _LIBCPP_HAS_NO_THREADS define not
to be picked up, and the test to XPASS on single-threaded systems.

This is a stop-gap measure to fix the build bots, however the proper
solution would be to always pass the __config_site defines as compiler
macros, whether we build with modules or not.

4 years agoAdd FileCheck colons missed in D76210
Jon Roelofs [Mon, 13 Apr 2020 16:36:45 +0000 (10:36 -0600)]
Add FileCheck colons missed in D76210

https://reviews.llvm.org/D76210#inline-715185

4 years ago[lit] Keep original cfg file case around.
Nico Weber [Tue, 14 Apr 2020 00:12:51 +0000 (20:12 -0400)]
[lit] Keep original cfg file case around.

There's been some back and forth if the cfg paths in the
config_map should be normcase()d. The argument for is that
it allows using all-lower spelling in cmd on Windows, the
argument against that doing so is lossy.

Before the relative-paths-in-generated-lit.site.cfg.py work,
there was no downside to calling normcase(), but with it
we need a hack to recover the original case.

This time, normcase() the hashtable key, but store the original
cased key in addition to the value. This fixes both cons, at the
cost of a few bytes more memory.

Differential Revision: https://reviews.llvm.org/D78169

4 years ago[Format] Work around current vim bugs in clang-format.py
Sam McCall [Wed, 15 Apr 2020 13:12:30 +0000 (15:12 +0200)]
[Format] Work around current vim bugs in clang-format.py

Summary:
Do line/col to byte conversions on the python side rather than relying on vim.
Its calculations are off when text annotations are present:
- https://github.com/vim/vim/issues/5930
- https://github.com/vim/vim/issues/3718 (fixed, but vim 8.1 is still common)

Reviewers: hokein

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D78198

4 years ago[CodeGen] only add nobuiltin to inline builtins if we'll emit them
George Burgess IV [Wed, 15 Apr 2020 18:05:22 +0000 (11:05 -0700)]
[CodeGen] only add nobuiltin to inline builtins if we'll emit them

There are some inline builtin definitions that we can't emit
(isTriviallyRecursive & callers go into why). Marking these
nobuiltin is only useful if we actually emit the body, so don't mark
these as such unless we _do_ plan on emitting that.

This suboptimality was encountered in Linux (see some discussion on
D71082, and https://github.com/ClangBuiltLinux/linux/issues/979).

Differential Revision: https://reviews.llvm.org/D78162

4 years agoRemove an apparently unneeded normcase() call.
Nico Weber [Wed, 15 Apr 2020 18:02:01 +0000 (14:02 -0400)]
Remove an apparently unneeded normcase() call.

I believe this call is unneeded after https://reviews.llvm.org/D34855.

Reviewed as part of https://reviews.llvm.org/D78169

4 years ago[MC] Use subclass data for MCExpr to reduce memory usage
Nikita Popov [Fri, 10 Apr 2020 20:06:12 +0000 (22:06 +0200)]
[MC] Use subclass data for MCExpr to reduce memory usage

MCExpr has a bunch of free space that is currently going to waste.
Repurpose it as 24 bits of subclass data, which is enough to reduce
the size of all subclasses by 8 bytes. This gives us some respectable
savings for debuginfo builds. Here are the max-rss reductions for the
fat LTO link step:

    kc.link               238MiB   231MiB   (-2.82%)
    sqlite3.link          258MiB   250MiB   (-3.27%)
    consumer-typeset.link 152MiB   148MiB   (-2.51%)
    bullet.link           197MiB   192MiB   (-2.30%)
    tramp3d-v4.link       578MiB   567MiB   (-1.92%)
    pairlocalalign.link    92MiB    90MiB   (-1.98%)
    clamscan.link         230MiB   223MiB   (-2.81%)
    lencod.link           242MiB   235MiB   (-2.67%)
    SPASS.link            235MiB   230MiB   (-2.23%)
    7zip-benchmark.link   450MiB   435MiB   (-3.25%)

Differential Revision: https://reviews.llvm.org/D77939

4 years ago[X86] Various improvements to our vector splitting helpers for lowering. NFC
Craig Topper [Wed, 15 Apr 2020 17:04:18 +0000 (10:04 -0700)]
[X86] Various improvements to our vector splitting helpers for lowering. NFC

-Consistently name the functions as split*
-Add a helper for doing the two extractSubvector calls and determining the size of the split
-Use getSplitDestVTs to get the result type for the split node.
-Move the binary and unary helper to one place in the file near the extractSubvector functions. Left the VSETCC one near LowerVSETCC since that's its only caller.
-Remove the 256/512 wrappers that just had asserts. I don't think they provided a lot of value and now with the routines called split* the call sites are more obvious what they do.
-Make the unary routine support different source and dest types to support D76212.
-Add some weaker asserts into the helpers to make up for losing the very specific asserts from the 256/512 wrappers.

Differential Revision: https://reviews.llvm.org/D78176

4 years ago[lldb/Scripts] Add script to replay multiple reproducers
Jonas Devlieghere [Wed, 15 Apr 2020 17:24:34 +0000 (10:24 -0700)]
[lldb/Scripts] Add script to replay multiple reproducers

Script to replay reproducers in parallel using the command line driver.
This is used for active replay (stage 1 as described in the RFC on
lldb-dev [1]).

[1] http://lists.llvm.org/pipermail/lldb-dev/2020-April/016100.html

Differential revision: https://reviews.llvm.org/D77608

4 years agoWrite ignored output to stdout, so this test runs on read-only filesystems.
Sterling Augustine [Wed, 15 Apr 2020 17:42:52 +0000 (10:42 -0700)]
Write ignored output to stdout, so this test runs on read-only filesystems.

4 years agoTry to fix clang-tidy/infrastructure/config-files.cpp on Win after cb1ee34e9d32fc.
Nico Weber [Wed, 15 Apr 2020 17:37:22 +0000 (13:37 -0400)]
Try to fix clang-tidy/infrastructure/config-files.cpp on Win after cb1ee34e9d32fc.

See also r267736.

4 years ago[GlobalISel] Enable artifact combiner to combine starting from a G_MERGE_VALUES.
Amara Emerson [Sat, 11 Apr 2020 05:39:49 +0000 (22:39 -0700)]
[GlobalISel] Enable artifact combiner to combine starting from a G_MERGE_VALUES.

We generally only combine starting from users to defs in the artifact combiner,
but this doesn't catch cases where at the point of combining a G_UNMERGE we don't
yet have the opposite G_MERGE on input yet since we haven't legalized that far.

This change adds the users of a G_MERGE to the artifact combiner worklist if one
of the uses is a G_UNMERGE or G_TRUNC.

Differential Revision: https://reviews.llvm.org/D77931

4 years ago[CallSite removal][PruneEH] Use CallBase instead of CallSite. NFC
Craig Topper [Wed, 15 Apr 2020 05:04:35 +0000 (22:04 -0700)]
[CallSite removal][PruneEH] Use CallBase instead of CallSite. NFC

Reviewers: mtrofin, dblaikie

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D78182

4 years ago[libc++] Remove the need for the %{build_module} substitution
Louis Dionne [Wed, 15 Apr 2020 16:58:00 +0000 (12:58 -0400)]
[libc++] Remove the need for the %{build_module} substitution

Instead of using .sh.cpp tests for the modules tests, use .compile.pass.cpp
and add the -fmodules additional flag.

4 years agoRevert "[GlobalISel] Fix invalid combine of unmerge(merge) with intermediate cast"
Dominik Montada [Wed, 15 Apr 2020 16:47:39 +0000 (18:47 +0200)]
Revert "[GlobalISel] Fix invalid combine of unmerge(merge) with intermediate cast"

This reverts commit bddac41b9f1ae80b56dace7d55cd81a07147ff3d.

4 years ago[libc++] NFC: Remove the %{compile} substitution, which is not used anymore
Louis Dionne [Wed, 15 Apr 2020 16:26:55 +0000 (12:26 -0400)]
[libc++] NFC: Remove the %{compile} substitution, which is not used anymore

4 years ago[libc++] Split up tests for <stdint.h> on AIX and make them AIX-independent
Louis Dionne [Wed, 15 Apr 2020 16:23:11 +0000 (12:23 -0400)]
[libc++] Split up tests for <stdint.h> on AIX and make them AIX-independent

Avoid using <sys/types.h> in those tests so that we can run them on
non-AIX systems (otherwise this test is basically dead-code on all
the build bots I'm aware of). Also, split up the test to allow using
.compile.pass.cpp tests instead of .sh.cpp tests, since that is the
last test referencing the %{compile} substitution explicitly.

4 years ago[mlir] [EDSC] Add interface for yield-for loops.
Pierre Oechsel [Wed, 15 Apr 2020 16:31:22 +0000 (18:31 +0200)]
[mlir] [EDSC] Add interface for yield-for loops.

Summary:
ModelBuilder was missing an api to easily generate yield-for-loops.
This diffs implements an interface allowing to write:
```
%2:2 = loop.for %i = %start to %end step %step iter_args(%arg0 = %init0, %arg1 = %init1) -> (f32, f32) {
  %sum = addf %arg0, %arg1 : f32
  loop.yield %arg1, %sum : f32, f32
}
%3 = addf %2#0, %2#1 : f32
```

as

```
auto results =
    LoopNestBuilder(&i, start, end, step, {&arg0, &arg1},  {init0, init1})([&] {
      auto sum = arg0 + arg1;
      loop_yield(ArrayRef<ValueHandle>{arg1, sum});
    });

// Add the two values accumulated by the yield-for-loop:
ValueHandle(results[0]) + ValueHandle(results[1]);
```

Differential Revision: https://reviews.llvm.org/D78093

4 years ago[libc++] Move some .sh.cpp tests to .compile.pass.cpp
Louis Dionne [Wed, 15 Apr 2020 16:08:05 +0000 (12:08 -0400)]
[libc++] Move some .sh.cpp tests to .compile.pass.cpp

As a fly-by fix, improve/fix the comments explaining the tests. This is
a step towards removing references to the %{compile} substitution.

4 years ago[libc++] Move aligned allocation tests to .verify.cpp
Louis Dionne [Wed, 15 Apr 2020 16:00:52 +0000 (12:00 -0400)]
[libc++] Move aligned allocation tests to .verify.cpp

Instead of being ShTests that use clang-verify (and without the proper
REQUIRES annotation), create .verify.cpp tests instead with the right
REQUIRES annotation.

4 years agoRemove a function that has been dead since r313889.
Nico Weber [Wed, 15 Apr 2020 16:01:58 +0000 (12:01 -0400)]
Remove a function that has been dead since r313889.

4 years ago[ASTImporter] Add support for importing fixed point literals
Vince Bridgers [Mon, 6 Apr 2020 13:22:35 +0000 (08:22 -0500)]
[ASTImporter] Add support for importing fixed point literals

Summary:
This patch adds support for importing fixed point literals, following
up to https://reviews.llvm.org/D46915 specifically for importing AST.

Reviewers: martong, leonardchan, ebevhan, a.sidorin, shafik

Reviewed By: martong

Subscribers: balazske, rnkovacs, teemperor, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D77721

4 years ago[GlobalISel] Fix invalid combine of unmerge(merge) with intermediate cast
Dominik Montada [Wed, 15 Apr 2020 08:06:13 +0000 (10:06 +0200)]
[GlobalISel] Fix invalid combine of unmerge(merge) with intermediate cast

Summary:
The combine for unmerge(cast(merge)) is only valid for vectors, but was
missing a corresponding check. Add a check that the operands are vectors
to avoid an invalid combine.

Without this check, the combiner would emit incorrect code for scalars
and pointers because the artifact cast (trunc/ext) only affects bits at
the end of the type, while this combine assumes that the casted bits
appear between meaningful bits.

This also uncovered a segmentation fault in the AMDGPU
InstructionSelector. The tests triggering this bug have been moved to
their own file and a check for the segmentation fault has been added.

Reviewers: arsenm, dsanders, aemerson, paquette, aditya_nandakumar

Reviewed By: arsenm

Subscribers: tpr, jvesely, wdng, nhaehnle, rovka, kerbowa, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D78191

4 years ago[TimeProfiler] Fix some style issues. NFC
Fangrui Song [Tue, 14 Apr 2020 20:42:00 +0000 (13:42 -0700)]
[TimeProfiler] Fix some style issues. NFC

Reviewed By: broadwaylamb, russell.gallop

Differential Revision: https://reviews.llvm.org/D78153

4 years ago[ELF] Refactor the way we handle -plugin-opt= (GCC collect2 or clang LTO related...
Fangrui Song [Tue, 14 Apr 2020 21:17:29 +0000 (14:17 -0700)]
[ELF] Refactor the way we handle -plugin-opt= (GCC collect2 or clang LTO related options)

GCC collect2 passes several options to the linker even if LTO is not used
(note, lld does not support GCC LTO). The lto-wrapper may be a relative
path (especially during development, when gcc is in a build directory), e.g.

  -plugin-opt=relative/path/to/lto-wrapper

We need to ignore such options, which are currently interpreted by
cl::ParseCommandLineOptions() and will fail with `error: --plugin-opt: ld.lld: Unknown command line argument 'relative/path/to/lto-wrapper'`
because the path is apparently not an option registered by an `llvm::cl::opt`.

See lto-plugin-ignore.s for how we interpret various -plugin-opt= options now.

Reviewed By: grimar, tejohnson

Differential Revision: https://reviews.llvm.org/D78158

4 years ago[libc++] Remove workaround for .fail.cpp tests that don't have clang-verify markup
Louis Dionne [Tue, 14 Apr 2020 17:00:53 +0000 (13:00 -0400)]
[libc++] Remove workaround for .fail.cpp tests that don't have clang-verify markup

By renaming .fail.cpp tests that don't need clang-verify to .compile.fail.cpp,
the new test format will not try to compile these tests with clang-verify,
and the old test format will work just the same. However, this allows
removing a workaround that requires parsing each test looking for
clang-verify markup.

After this change, a .fail.cpp test should always have clang-verify markup.
When clang-verify is not supported by the compiler, we will just check that
these tests fail to compile. When clang-verify is supported, these tests
will be compiled with clang-verify whether they have markup or not (so
they should have markup, or they will fail).

This simplifies the test suite and also ensures that all of our .fail.cpp
tests provide clang-verify markup. If it's impossible for a test to have
clang-verify markup, it can be moved to a .compile.fail.cpp test, which
are unconditionally just checked for compilation failure.

4 years ago[GlobalISel] translate freeze to new generic G_FREEZE
Dominik Montada [Thu, 9 Apr 2020 12:33:59 +0000 (14:33 +0200)]
[GlobalISel] translate freeze to new generic G_FREEZE

Summary:
As a follow up to https://reviews.llvm.org/D29014, add translation
support for freeze.

Introduce a new generic instruction G_FREEZE and translate freeze to it.

Reviewers: dsanders, aqjune, arsenm, aditya_nandakumar, t.p.northover, lebedev.ri, paquette, aemerson

Reviewed By: aqjune, arsenm

Subscribers: fhahn, lebedev.ri, wdng, rovka, hiraditya, jfb, volkan, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77795

4 years ago[www] Update make_cxx_dr_status for v10; regenerate cxx_dr_status.html
Hubert Tong [Wed, 15 Apr 2020 14:33:35 +0000 (10:33 -0400)]
[www] Update make_cxx_dr_status for v10; regenerate cxx_dr_status.html

Summary: Update `latest_release` to reflect the release of Clang 10.

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D78172

4 years ago[DSE,MSSA] Add use of alloca, to guard against removal in the future.
Florian Hahn [Wed, 15 Apr 2020 14:21:30 +0000 (15:21 +0100)]
[DSE,MSSA] Add use of alloca, to guard against removal in the future.

Currently the alloca does not escape and all stores and the memset can
be removed. Adding a use of the alloca ensures not all stores are
eliminated.

4 years ago[AST] Fix recovery-expr crash on invalid aligned attr.
Haojian Wu [Sun, 12 Apr 2020 21:06:00 +0000 (23:06 +0200)]
[AST] Fix recovery-expr crash on invalid aligned attr.

Summary:
crash stack:

```
lang: tools/clang/include/clang/AST/AttrImpl.inc:1490: unsigned int clang::AlignedAttr::getAlignment(clang::ASTContext &) const: Assertion `!isAlignmentDependent()' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: ./bin/clang -cc1 -std=c++1y -ast-dump -frecovery-ast -fcxx-exceptions /tmp/t4.cpp
1.      /tmp/t4.cpp:3:31: current parser token ';'
 #0 0x0000000002530cff llvm::sys::PrintStackTrace(llvm::raw_ostream&) llvm-project/llvm/lib/Support/Unix/Signals.inc:564:13
 #1 0x000000000252ee30 llvm::sys::RunSignalHandlers() llvm-project/llvm/lib/Support/Signals.cpp:69:18
 #2 0x000000000253126c SignalHandler(int) llvm-project/llvm/lib/Support/Unix/Signals.inc:396:3
 #3 0x00007f86964d0520 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x13520)
 #4 0x00007f8695f9ff61 raise /build/glibc-oCLvUT/glibc-2.29/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #5 0x00007f8695f8b535 abort /build/glibc-oCLvUT/glibc-2.29/stdlib/abort.c:81:7
 #6 0x00007f8695f8b40f _nl_load_domain /build/glibc-oCLvUT/glibc-2.29/intl/loadmsgcat.c:1177:9
 #7 0x00007f8695f98b92 (/lib/x86_64-linux-gnu/libc.so.6+0x32b92)
 #8 0x0000000004503d9f llvm::APInt::getZExtValue() const llvm-project/llvm/include/llvm/ADT/APInt.h:1623:5
 #9 0x0000000004503d9f clang::AlignedAttr::getAlignment(clang::ASTContext&) const llvm-project/build/tools/clang/include/clang/AST/AttrImpl.inc:1492:0
```

Reviewers: sammccall

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D78085

4 years ago[XCOFF][AIX] Relocation support for SymB
jasonliu [Wed, 15 Apr 2020 14:00:34 +0000 (14:00 +0000)]
[XCOFF][AIX] Relocation support for SymB

This patch intends to provide relocation support for the expression
 contains two unpaired relocatable terms with opposite signs.

Differential Revision: https://reviews.llvm.org/D77424

4 years ago[demangler] PPC and S390: Fix parsing of e-prefixed long double literals
Xing Xue [Wed, 15 Apr 2020 13:59:06 +0000 (09:59 -0400)]
[demangler] PPC and S390: Fix parsing of e-prefixed long double literals

Summary:
This patch is to fix the parsing of long double literals encoded with the e prefix on PowerPC and S390. For both PowerPC and S390, type code e is used for 64-bit long double literals and g is used for 128-bit long double literals. libcxxabi test case test_demangle.pass.cpp fails without the fix.

Authored by: xingxue-ibm

Reviewers: hubert.reinterpretcast, jasonliu, erik.pilkington, uweigand, mclow.li
sts, libc++abi

Reviewed by: hubert.reinterpretcast, erik.pilkington

Differential Revision: https://reviews.llvm.org/D74163

4 years ago[FileCheck] - Refine the comment. NFC.
Georgii Rymar [Wed, 15 Apr 2020 13:55:48 +0000 (16:55 +0300)]
[FileCheck] - Refine the comment. NFC.

It did not mention the `--implicit-check-not` before,
though it should (https://reviews.llvm.org/D78024#inline-715166).

4 years agoUnbreak the build
Benjamin Kramer [Wed, 15 Apr 2020 13:54:47 +0000 (15:54 +0200)]
Unbreak the build

4 years agoPass shufflevector indices as int instead of unsigned.
Benjamin Kramer [Wed, 15 Apr 2020 13:52:26 +0000 (15:52 +0200)]
Pass shufflevector indices as int instead of unsigned.

No functionality change intended.

4 years ago[clang-tidy] Optional inheritance of file configs from parent directories 
Dmitry Polukhin [Wed, 1 Apr 2020 09:08:53 +0000 (02:08 -0700)]
[clang-tidy] Optional inheritance of file configs from parent directories 

Summary:
Without this patch clang-tidy stops finding file configs on the nearest
.clang-tidy file. In some cases it is not very convenient because it
results in common parts duplication into every child .clang-tidy file.
This diff adds optional config inheritance from the parent directories
config files.

Test Plan:

Added test cases in existing config test.

Reviewers: alexfh, gribozavr2, klimek, hokein

Subscribers: njames93, arphaman, xazax.hun, aheejin, cfe-commits

Tags: #clang, #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D75184

4 years ago[CodeGen][ARM] Error when writing to specific reserved registers in inline asm
Victor Campos [Wed, 25 Mar 2020 10:52:43 +0000 (10:52 +0000)]
[CodeGen][ARM] Error when writing to specific reserved registers in inline asm

Summary:
No error or warning is emitted when specific reserved registers are
written to in inline assembly. Therefore, writes to the program counter
or to the frame pointer, for instance, were permitted, which could have
led to undesirable behaviour.

Example:
  int foo() {
    register int a __asm__("r7"); // r7 = frame-pointer in M-class ARM
    __asm__ __volatile__("mov %0, r1" : "=r"(a) : : );
    return a;
  }

In contrast, GCC issues an error in the same scenario.

This patch detects writes to specific reserved registers in inline
assembly for ARM and emits an error in such case. The detection works
for output and input operands. Clobber operands are not handled here:
they are already covered at a later point in
AsmPrinter::emitInlineAsm(const MachineInstr *MI). The registers
covered are: program counter, frame pointer and base pointer.

This is ARM only. Therefore the implementation of other targets'
counterparts remain open to do.

Reviewers: efriedma

Reviewed By: efriedma

Subscribers: kristof.beyls, hiraditya, danielkiss, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D76848

4 years ago[InstCombine] prevent infinite loop with sub/abs of constant expression
Sanjay Patel [Wed, 15 Apr 2020 13:11:44 +0000 (09:11 -0400)]
[InstCombine] prevent infinite loop with sub/abs of constant expression

PR45539:
https://bugs.llvm.org/show_bug.cgi?id=45539

4 years agoclang/AMDGPU: Assume denormals are enabled for the default target.
Matt Arsenault [Mon, 13 Apr 2020 13:15:48 +0000 (09:15 -0400)]
clang/AMDGPU: Assume denormals are enabled for the default target.

Since the default logic was based on having fast denormal/fma
features, and the default target has no features, we assumed flushing
by default. This fixes incorrectly assuming flushing in builds for
"generic" IR libraries.

The handling for no specified --cuda-gpu-arch in HIP is kind of
broken. Somewhere else forces a default target of gfx803, which does
not enable denormal handling by default. We don't see this default
switching here, so you'll end up with a different denormal mode
depending on whether you explicitly requested gfx803, or used it by
default.

4 years agoRevert "[nfc] [lldb] Introduce DWARF callbacks"
Jan Kratochvil [Wed, 15 Apr 2020 13:12:59 +0000 (15:12 +0200)]
Revert "[nfc] [lldb] Introduce DWARF callbacks"

This reverts commit bd47c470d13b1c57ecf37c1faf0324833d3a4542.

It broke Green Dragon, reason is unknown to me so far:
  http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/15323/consoleFull

Differential Revision: https://reviews.llvm.org/D77327

4 years agoAMDGPU/GlobalISel: Add some artifact combiner tests
Matt Arsenault [Wed, 15 Apr 2020 13:02:07 +0000 (09:02 -0400)]
AMDGPU/GlobalISel: Add some artifact combiner tests

4 years ago[FileCheck] Better diagnostic for format conflict
Thomas Preud'homme [Sat, 4 Apr 2020 00:02:45 +0000 (01:02 +0100)]
[FileCheck] Better diagnostic for format conflict

Summary:
Improve error message in case of conflict between several implicit
format to mention the operand that conflict.

Reviewers: jhenderson, jdenny, probinson, grimar, arichardson, rnk

Reviewed By: jdenny

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77741

4 years ago[nfc] clang-format TargetTransformInfo.cpp
Simon Moll [Wed, 15 Apr 2020 12:43:26 +0000 (14:43 +0200)]
[nfc] clang-format TargetTransformInfo.cpp

4 years agoUpgrade users of 'new ShuffleVectorInst' to pass indices as an int array
Benjamin Kramer [Wed, 15 Apr 2020 12:29:09 +0000 (14:29 +0200)]
Upgrade users of 'new ShuffleVectorInst' to pass indices as an int array

No functionality change intended.

4 years ago[flang] Add return statement to Logical opeator=.
David Truby [Wed, 15 Apr 2020 11:55:42 +0000 (12:55 +0100)]
[flang] Add return statement to Logical opeator=.

This removes the current undefined behavior where the function has a return type
but no return statement.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=45530

4 years ago[nfc] clang-format TargetTransformInfoImpl.h
Simon Moll [Wed, 15 Apr 2020 12:01:31 +0000 (14:01 +0200)]
[nfc] clang-format TargetTransformInfoImpl.h

4 years ago[nfc] clang-format TargetTransformInfo.h
Simon Moll [Wed, 15 Apr 2020 12:00:07 +0000 (14:00 +0200)]
[nfc] clang-format TargetTransformInfo.h

4 years ago[Statepoint] Add getters to StatepointOpers.
Denis Antrushin [Tue, 14 Apr 2020 15:30:51 +0000 (18:30 +0300)]
[Statepoint] Add getters to StatepointOpers.

To simplify future work on statepoint representation, hide
direct access to statepoint field indices and provide getters
for them. Add getters for couple more statepoint fields.

This also fixes two bugs in MachineVerifier for statepoint:
First, the `break` statement was falling out of `if` statement
scope, thus disabling following checks.
Second, it was incorrectly accessing some fields like CallingConv -
StatepointOpers gives index to their value directly, not to
preceeding field type encoding.

Reviewed By: skatkov
Differential Revision: https://reviews.llvm.org/D78119

4 years ago[dexp] NFC: Change positional argument format
Kirill Bobyrev [Wed, 15 Apr 2020 11:27:30 +0000 (13:27 +0200)]
[dexp] NFC: Change positional argument format

Summary:
Before:

  USAGE: dexp [options] --index-path Path to the index

After:

  USAGE: dexp [options] <INDEX FILE>

Reviewers: sammccall

Reviewed By: sammccall

Subscribers: jkorous, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D78089

4 years ago[VPlan] Branches are not widened by VPWidenRecipe, assert (NFC).
Florian Hahn [Tue, 14 Apr 2020 08:36:16 +0000 (09:36 +0100)]
[VPlan] Branches are not widened by VPWidenRecipe, assert (NFC).

4 years ago[SystemZ] Bugfix in adjustSubwordCmp()
Jonas Paulsson [Wed, 15 Apr 2020 09:29:55 +0000 (11:29 +0200)]
[SystemZ] Bugfix in adjustSubwordCmp()

adjustSubwordCmp() should not optimize a load of an i1 value. This is
achieved by checking that the size and store-size of the MemoryVT are the
same.

Fixes https://bugs.llvm.org/show_bug.cgi?id=45511.

Review: Ulrich Weigand

Differential Revision: https://reviews.llvm.org/D78187

4 years ago[CostModel][X86] Regenerate load_store.ll costs tests
Simon Pilgrim [Wed, 15 Apr 2020 10:54:22 +0000 (11:54 +0100)]
[CostModel][X86] Regenerate load_store.ll costs tests
Add SSE + AVX512 targets
Add some illegal type store tests

4 years agoUpgrade calls to CreateShuffleVector to use the preferred form of passing an array...
Benjamin Kramer [Wed, 15 Apr 2020 10:41:54 +0000 (12:41 +0200)]
Upgrade calls to CreateShuffleVector to use the preferred form of passing an array of ints

No functionality change intended.

4 years ago[VPlan] Move widening check for non-memory/non-calls to function (NFC).
Florian Hahn [Wed, 15 Apr 2020 10:41:13 +0000 (11:41 +0100)]
[VPlan] Move widening check for non-memory/non-calls to function (NFC).

After introducing VPWidenSelectRecipe, the duplicated logic can be
shared.

Reviewers: gilr, rengolin, Ayal, hsaito

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D77973

4 years ago[lldb] Fix -Wparentheses in ThreadPlanStack.cpp
Pavel Labath [Wed, 15 Apr 2020 10:40:12 +0000 (12:40 +0200)]
[lldb] Fix -Wparentheses in ThreadPlanStack.cpp

4 years agoFix DWARFDataExtractor::getRelocatedValue near EOF
Pavel Labath [Tue, 14 Apr 2020 15:06:04 +0000 (17:06 +0200)]
Fix DWARFDataExtractor::getRelocatedValue near EOF

Summary:
If we have an (invalid) relocation which relocates bytes which partially
lie outside the range of the relocated section, the getRelocatedValue
would return confusing results. It would first read zero (because that's
what the underlying DataExtractor api does for out-of-bounds reads), and
then relocate that zero anyway.

A more appropriate behavior is to return zero straight away. This is
what this patch does.

Reviewers: dblaikie, jhenderson

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D78113

4 years ago[DSE] Lift post-dominance for objs not accessible in caller.
Florian Hahn [Wed, 15 Apr 2020 09:42:58 +0000 (10:42 +0100)]
[DSE] Lift post-dominance for objs not accessible in caller.

We can eliminate MemoryDefs of objects not accessible after the function
returns (e.g. alloca), if there are no reads between the MemoryDef and
any function exits. We can stop traversing paths that completely
overwrite the memory location of the MemoryDef.

This patch was split off D73763.

Reviewers: dmgreen, bryant, asbirlea, Tyker, efriedma, george.burgess.iv

Reviewed By: asbirlea, george.burgess.iv

Differential Revision: https://reviews.llvm.org/D77736

4 years ago[ARM][MVE] Tail predicate VML[A|S]LDAV
Sam Parker [Thu, 9 Apr 2020 06:51:33 +0000 (07:51 +0100)]
[ARM][MVE] Tail predicate VML[A|S]LDAV

Make the non-exchanging versions of the multiply add/sub instructions
validForTailPredication.

Differential Revision: https://reviews.llvm.org/D77648

4 years agofix warning: specialization of template in different namespace
Sameer Sahasrabuddhe [Wed, 15 Apr 2020 10:25:04 +0000 (15:55 +0530)]
fix warning: specialization of template in different namespace

This is related to commit 8c11bc0cd06ffc18786a1a51ee5ce5b1cc4923f6
which introduces the FixIrreducible pass. The warning seems hard to
reproduce locally. The latest attempt ought to work.

4 years ago[ConstExprPreter] Updated constant interpreter documentation
Nandor Licker [Thu, 9 Apr 2020 18:13:38 +0000 (19:13 +0100)]
[ConstExprPreter] Updated constant interpreter documentation

Summary:
Updated the documentation to better reflect features implemented on the
constexpr branch at https://github.com/nandor/llvm-project and extended
the TODO list with known missing features

Reviewers: rsmith, Bigcheese, dexonsmith, jfb

Subscribers: lebedev.ri, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D75726

4 years ago[LLVM/tools][test] - Remove/fix dead check prefixes.
Georgii Rymar [Tue, 14 Apr 2020 15:04:48 +0000 (18:04 +0300)]
[LLVM/tools][test] - Remove/fix dead check prefixes.

We have a few unused/broken FileCheck prefixes in `llvm/test/tools`.
This patch fixes it.

Differential revision: https://reviews.llvm.org/D78110

4 years ago[NFC] clang-format IntrinsicInst.h|cpp
Simon Moll [Wed, 15 Apr 2020 10:05:07 +0000 (12:05 +0200)]
[NFC] clang-format IntrinsicInst.h|cpp

Differential Revision: https://reviews.llvm.org/D78188

4 years ago[gn build] Port 8c11bc0cd06
LLVM GN Syncbot [Wed, 15 Apr 2020 09:38:24 +0000 (09:38 +0000)]
[gn build] Port 8c11bc0cd06

4 years agoIntroduce fix-irreducible pass
Sameer Sahasrabuddhe [Wed, 15 Apr 2020 09:35:51 +0000 (15:05 +0530)]
Introduce fix-irreducible pass

An irreducible SCC is one which has multiple "header" blocks, i.e., blocks
with control-flow edges incident from outside the SCC. This pass converts an
irreducible SCC into a natural loop by introducing a single new header
block and redirecting all the edges on the original headers to this
new block.

This is a useful workaround for a limitation in the structurizer
which, which produces incorrect control flow in the presence of
irreducible regions. The AMDGPU backend provides an option to
enable this pass before the structurizer, which may eventually be
enabled by default.

Reviewed By: nhaehnle

Differential Revision: https://reviews.llvm.org/D77198

This restores commit 2ada8e2525dd2653f30c8696a27162a3b1647d66.

Originally reverted with commit 44e09b59b869a91bf47d76e8bc569d9ee91ad145.

4 years ago[VPlan] Move Load/Store checks out of tryToWiden (NFC).
Florian Hahn [Wed, 15 Apr 2020 09:18:31 +0000 (10:18 +0100)]
[VPlan] Move Load/Store checks out of tryToWiden (NFC).

Handling LoadInst and StoreInst in tryToWiden seems a bit
counter-intuitive, as there is only an assertion for them and in no
case VPWidenRefipes are created for them.

I think it makes sense to move the assertion to handleReplication, where
the non-widened loads and store are handled.

Reviewers: gilr, rengolin, Ayal, hsaito

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D77972

4 years ago[mlir] LLVM dialect: support globals without linkage keyword, assuming 'external'
Alex Zinenko [Tue, 14 Apr 2020 11:01:53 +0000 (13:01 +0200)]
[mlir] LLVM dialect: support globals without linkage keyword, assuming 'external'

Similarly to actual LLVM IR, and to `llvm.mlir.func`, allow the custom syntax
of `llvm.mlir.global` to omit the linkage keyword. If omitted, the linkage is
assumed to be external. This makes the modeling of globals in the LLVM dialect
more consistent, both within the dialect and with LLVM IR.

Differential Revision: https://reviews.llvm.org/D78096

4 years ago[MLIR] Introduce applyOpPatternsAndFold for op local rewrites
Uday Bondhugula [Sun, 5 Apr 2020 02:40:33 +0000 (08:10 +0530)]
[MLIR] Introduce applyOpPatternsAndFold for op local rewrites

Introduce mlir::applyOpPatternsAndFold which applies patterns as well as
any folding only on a specified op (in contrast to
applyPatternsAndFoldGreedily which applies patterns only on the regions
of an op isolated from above).  The caller is made aware of the op being
folded away or erased.

Depends on D77485.

Differential Revision: https://reviews.llvm.org/D77487

4 years ago[nfc] [lldb] Introduce DWARF callbacks
Jan Kratochvil [Wed, 15 Apr 2020 08:36:31 +0000 (10:36 +0200)]
[nfc] [lldb] Introduce DWARF callbacks

As requested by @labath in https://reviews.llvm.org/D73206#1949516
providing DWARF index callbacks refactorization.

Differential Revision: https://reviews.llvm.org/D77327

4 years ago[NFC][test] Mark the section which contains instructions executable
Shengchen Kan [Wed, 15 Apr 2020 08:18:11 +0000 (16:18 +0800)]
[NFC][test] Mark the section which contains instructions executable

As we disscussed in D77971, we haven't confirmed that if putting instructions
in a non-executable section is an undefined behaviour. To make things
easier to go on, we mark these sections executable in test file
align-branch-section-size.s.

4 years ago[VE] Update integer arithmetic instructions
Kazushi (Jam) Marukawa [Wed, 15 Apr 2020 07:47:14 +0000 (09:47 +0200)]
[VE] Update integer arithmetic instructions

Summary:
Changing all mnemonic to match assembly instructions to simplify mnemonic
naming rules.  This time update all fixed-point arithmetic instructions.
This also corrects smax/smin code generations.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D77856

4 years ago[lldb][NFC] Remove FormatterChoiceCriterion
Raphael Isemann [Wed, 15 Apr 2020 05:34:14 +0000 (07:34 +0200)]
[lldb][NFC] Remove FormatterChoiceCriterion

Summary:
The formatters code has a lot of 'reason' or 'why' values that we keep or-ing FormatterChoiceCriterion
enum values into. These values are only read by a single log statement and don't have any functional
purpose. It also seems the implementation is not finished (for example, display names and type
names don't have any dedicated enum values). Also everything is of course not tested or documented.

Let's just remove all of this.

Reviewers: labath, JDevlieghere, jingham, davide, vsk

Reviewed By: labath, vsk

Subscribers: JDevlieghere

Differential Revision: https://reviews.llvm.org/D77968

4 years ago[LV] Fix PR45525: Incorrect assert in blend recipe
Gil Rapaport [Tue, 14 Apr 2020 14:20:41 +0000 (17:20 +0300)]
[LV] Fix PR45525: Incorrect assert in blend recipe

Fix an assert introduced in 41ed5d856c1: a phi with a single predecessor and a
mask is a valid case which is already supported by the code.

Differential Revision: https://reviews.llvm.org/D78115

4 years ago[clangd] Fix MSVC compile error, attempt 2
Kadir Cetinkaya [Wed, 15 Apr 2020 07:33:12 +0000 (09:33 +0200)]
[clangd] Fix MSVC compile error, attempt 2

4 years ago[clangd] Fix MSVC builds
Kadir Cetinkaya [Wed, 15 Apr 2020 07:24:58 +0000 (09:24 +0200)]
[clangd] Fix MSVC builds

4 years ago[clangd] Shard preamble symbols in dynamic index
Kadir Cetinkaya [Wed, 8 Apr 2020 14:14:53 +0000 (16:14 +0200)]
[clangd] Shard preamble symbols in dynamic index

Summary:
This reduces memory usage by dynamic index from more than 400MB to 32MB
when all files in clang-tools-extra/clangd/*.cpp are active in clangd.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D77732

4 years agoDon't print `&` as part of reference template arguments.
Richard Smith [Wed, 15 Apr 2020 06:35:35 +0000 (23:35 -0700)]
Don't print `&` as part of reference template arguments.

In passing, also generalize the mechanism used to allow Decl's printName
functions to override qualified name printing.

4 years agoGeneralize our two different kinds of declaration argument for
Richard Smith [Wed, 15 Apr 2020 06:28:33 +0000 (23:28 -0700)]
Generalize our two different kinds of declaration argument for
attributes to support any kind of declaration.

In preparation for adding a third kind.

4 years ago[gn build] Port 44e09b59b86
LLVM GN Syncbot [Wed, 15 Apr 2020 06:53:11 +0000 (06:53 +0000)]
[gn build] Port 44e09b59b86

4 years agoRevert "Introduce fix-irreducible pass"
Sameer Sahasrabuddhe [Wed, 15 Apr 2020 06:47:11 +0000 (12:17 +0530)]
Revert "Introduce fix-irreducible pass"

This reverts commit 2ada8e2525dd2653f30c8696a27162a3b1647d66.

Buildbots produced compilation errors which I was not able to quickly
reproduce locally. Need more time to investigate.

4 years agoRemove setters from CXXTypeidExpr and CXXUuidofExpr.
Richard Smith [Wed, 15 Apr 2020 02:26:31 +0000 (19:26 -0700)]
Remove setters from CXXTypeidExpr and CXXUuidofExpr.

We generally prefer to have the ASTReader directly set fields rather
than including public setter functions.

4 years ago[gn build] Port 2ada8e2525d
LLVM GN Syncbot [Wed, 15 Apr 2020 06:01:21 +0000 (06:01 +0000)]
[gn build] Port 2ada8e2525d