Matt Arsenault [Tue, 18 Jun 2019 14:10:01 +0000 (14:10 +0000)]
AMDGPU: Add GWS instruction builtins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363684
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 18 Jun 2019 13:59:32 +0000 (13:59 +0000)]
AMDGPU: Disable errno by default
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363682
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 18 Jun 2019 12:57:05 +0000 (12:57 +0000)]
Require commas to separate multiple GNU-style attributes in the same attribute list.
Fixes PR38352.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363676
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikael Holmen [Tue, 18 Jun 2019 06:41:56 +0000 (06:41 +0000)]
Fix compiler warning by removing unused variable
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363651
91177308-0d34-0410-b5e6-
96231b3b80d8
Fangrui Song [Tue, 18 Jun 2019 05:52:39 +0000 (05:52 +0000)]
Revert D60974 "[clang-ifs] Clang Interface Stubs, first version."
This reverts commit rC363626.
clangIndex depends on clangFrontend. r363626 adds a dependency from
clangFrontend to clangIndex, which creates a circular dependency.
This is disallowed by -DBUILD_SHARED_LIBS=on builds:
CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle):
"clangFrontend" of type SHARED_LIBRARY
depends on "clangIndex" (weak)
"clangIndex" of type SHARED_LIBRARY
depends on "clangFrontend" (weak)
At least one of these targets is not a STATIC_LIBRARY. Cyclic dependencies are allowed only among static libraries.
Note, the dependency on clangIndex cannot be removed because
libclangFrontend.so is linked with -Wl,-z,defs: a shared object must
have its full direct dependencies specified on the linker command line.
In -DBUILD_SHARED_LIBS=off builds, this appears to work when linking
`bin/clang-9`. However, it can cause trouble to downstream clang library
users. The llvm build system links libraries this way:
clang main_program_object_file ... lib/libclangIndex.a ... lib/libclangFrontend.a -o exe
libclangIndex.a etc are not wrapped in --start-group.
If the downstream application depends on libclangFrontend.a but not any
other clang libraries that depend on libclangIndex.a, this can cause undefined
reference errors when the linker is ld.bfd or gold.
The proper fix is to not include clangIndex files in clangFrontend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363649
91177308-0d34-0410-b5e6-
96231b3b80d8
Puyan Lotfi [Tue, 18 Jun 2019 05:15:59 +0000 (05:15 +0000)]
[NFC] Undoing r363646 to fix bots.
-DBUILD_SHARED_LIBS=ON is still having problem caused by layering issues with
D60974. Locally there weren't problems building with shared libs on or off but
the bots appear to be acting up.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363648
91177308-0d34-0410-b5e6-
96231b3b80d8
Puyan Lotfi [Tue, 18 Jun 2019 04:40:03 +0000 (04:40 +0000)]
[NFC] Fixing -DBUILD_SHARED_LIBS=ON problem caused by layering issue in D60974
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363646
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Mon, 17 Jun 2019 22:49:38 +0000 (22:49 +0000)]
[Remarks][Driver] Use the specified format in the remarks file extension
By default, use `.opt.yaml`, but when a format is specified with
`-fsave-optimization-record=<format>`, use `.opt.<format>`.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363627
91177308-0d34-0410-b5e6-
96231b3b80d8
Puyan Lotfi [Mon, 17 Jun 2019 22:46:54 +0000 (22:46 +0000)]
[clang-ifs] Clang Interface Stubs, first version.
Clang interface stubs (previously referred to as clang-ifsos) is a new frontend
action in clang that allows the generation of stub files that contain mangled
name info that can be used to produce a stub library. These stub libraries can
be useful for breaking up build dependencies and controlling access to a
library's internal symbols. Generation of these stubs can be invoked by:
clang -fvisibility=<visibility> -emit-interface-stubs \
-interface-stub-version=<interface format>
Notice that -fvisibility (along with use of visibility attributes) can be used
to control what symbols get generated. Currently the interface format is
experimental but there are a wide range of possibilities here.
Differential Revision: https://reviews.llvm.org/D60974
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363626
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 17 Jun 2019 21:46:17 +0000 (21:46 +0000)]
Fix crash when checking a dependently-typed reference that is
initialized from a non-value-dependent initializer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363622
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 17 Jun 2019 21:08:30 +0000 (21:08 +0000)]
Rewrite ConstStructBuilder with a mechanism that can cope with splitting and updating constants.
Summary:
This adds a ConstantBuilder class that deals with incrementally building
an aggregate constant, including support for overwriting
previously-emitted parts of the aggregate with new values.
This fixes a bunch of cases where we used to be unable to reduce a
DesignatedInitUpdateExpr down to an IR constant, and also lays some
groundwork for emission of class constants with [[no_unique_address]]
members.
Reviewers: rjmccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D63371
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363620
91177308-0d34-0410-b5e6-
96231b3b80d8
Rainer Orth [Mon, 17 Jun 2019 20:21:25 +0000 (20:21 +0000)]
Clang :: Sema/wchar.c has long been failing on Solaris:
error: 'error' diagnostics expected but not seen:
File /vol/llvm/src/clang/local/test/Sema/wchar.c Line 22: initializing wide char array with non-wide string literal
error: 'error' diagnostics seen but not expected:
File /vol/llvm/src/clang/local/test/Sema/wchar.c Line 20: array initializer must be an initializer list
File /vol/llvm/src/clang/local/test/Sema/wchar.c Line 22: array initializer must be an initializer list
It turns out the definition is wrong, as can be seen in GCC's gcc/config/sol2.h:
/* wchar_t is called differently in <wchar.h> for 32 and 64-bit
compilations. This is called for by SCD 2.4.1, p. 6-83, Figure 6-65
(32-bit) and p. 6P-10, Figure 6.38 (64-bit). */
#undef WCHAR_TYPE
#define WCHAR_TYPE (TARGET_64BIT ? "int" : "long int")
The following patch implements this, and at the same time corrects the wint_t
definition which is the same:
/* Same for wint_t. See SCD 2.4.1, p. 6-83, Figure 6-66 (32-bit). There's
no corresponding 64-bit definition, but this is what Solaris 8
<iso/wchar_iso.h> uses. */
#undef WINT_TYPE
#define WINT_TYPE (TARGET_64BIT ? "int" : "long int")
Clang :: Preprocessor/wchar_t.c and Clang :: Sema/format-strings.c need to
be adjusted to account for that.
Tested on i386-pc-solaris2.11, x86_64-pc-solaris2.11, and x86_64-pc-linux-gnu.
Differential Revision: https://reviews.llvm.org/D62944
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363612
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 17 Jun 2019 19:40:52 +0000 (19:40 +0000)]
PR42205: DebugInfio: Do not attempt to emit debug info metadata for static member variable template partial specializations
Would cause a crash in an attempt to create the type for the still
unresolved 'auto' in the partial specialization (& even without the use
of 'auto', the expression would be value dependent &
crash/assertion-fail there).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363606
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Liao [Mon, 17 Jun 2019 17:47:03 +0000 (17:47 +0000)]
[clang][AST] Remove unnecessary 'const'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363585
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Spertus [Mon, 17 Jun 2019 16:12:45 +0000 (16:12 +0000)]
Various improvements to Clang MSVC Visualizer
This change adds/improves MSVC visualizers for many Clang types, including array types, trailing return types in function, deduction guides, a fix for OpaquePtr, etc. It also replaces all of the view(deref) with the "na" formatter, which is a better built-in natvis technique for doing the same thing.
Differential Revision: https://reviews.llvm.org/D63039
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363574
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Mon, 17 Jun 2019 16:06:00 +0000 (16:06 +0000)]
[Remarks] Extend -fsave-optimization-record to specify the format
Use -fsave-optimization-record=<format> to specify a different format
than the default, which is YAML.
For now, only YAML is supported.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363573
91177308-0d34-0410-b5e6-
96231b3b80d8
Kadir Cetinkaya [Mon, 17 Jun 2019 14:23:06 +0000 (14:23 +0000)]
[clang][CodeGen] Remove std::move on temporary
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363563
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Liao [Mon, 17 Jun 2019 12:51:36 +0000 (12:51 +0000)]
[HIP] Add the interface deriving the stub name of device kernels.
Summary:
- Revise the interface to derive the stub name and simplify the
assertion of it.
Reviewers: yaxunl, tra
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D63335
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363553
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Mon, 17 Jun 2019 12:10:40 +0000 (12:10 +0000)]
Promote -fdebug-compilation-dir from a cc1 flag to clang and clang-cl driver flags
The flag is useful when wanting to create .o files that are independent
from the absolute path to the build directory. -fdebug-prefix-map= can
be used to the same effect, but it requires putting the absolute path
to the build directory on the build command line, so it still requires
the build command line to be dependent on the absolute path of the build
directory. With this flag, "-fdebug-compilation-dir ." makes it so that
both debug info and the compile command itself are independent of the
absolute path of the build directory, which is good for build
determinism (in the sense that the build is independent of which
directory it happens in) and for caching compile results.
(The tradeoff is that the debugger needs explicit configuration to know
the build directory. See also http://dwarfstd.org/ShowIssue.php?issue=171130.2)
Differential Revision: https://reviews.llvm.org/D63387
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363548
91177308-0d34-0410-b5e6-
96231b3b80d8
Sven van Haastregt [Mon, 17 Jun 2019 10:06:34 +0000 (10:06 +0000)]
Recommit [OpenCL] Move OpenCLBuiltins.td and remove unused include
Reland r363242 after fixing an issue with the tablegen dependence.
Patch by Pierre Gondois and Sven van Haastregt.
Differential revision: https://reviews.llvm.org/D62849
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363541
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 17 Jun 2019 07:47:28 +0000 (07:47 +0000)]
Re-commit r357452 (take 3): "SimplifyCFG SinkCommonCodeFromPredecessors: Also sink function calls without used results (PR41259)"
Third time's the charm.
This was reverted in r363220 due to being suspected of an internal benchmark
regression and a test failure, none of which turned out to be caused by this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363529
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Sun, 16 Jun 2019 19:15:04 +0000 (19:15 +0000)]
[docs] Fix another bot error by setting highlight language of objc code-block to objc instead of c++.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363521
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Sun, 16 Jun 2019 17:29:37 +0000 (17:29 +0000)]
[analyzer] ReturnVisitor: more portable test case
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363515
91177308-0d34-0410-b5e6-
96231b3b80d8
Kristof Umann [Sun, 16 Jun 2019 15:41:25 +0000 (15:41 +0000)]
[analyzer] Push correct version of 'Track indices of arrays'
Messed up the commit, oops.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363512
91177308-0d34-0410-b5e6-
96231b3b80d8
Kristof Umann [Sun, 16 Jun 2019 14:52:56 +0000 (14:52 +0000)]
[analyzer] Track indices of arrays
Often times, when an ArraySubscriptExpr was reported as null or
undefined, the bug report was difficult to understand, because the
analyzer explained why arr[i] has that value, but didn't realize that in
fact i's value is very important as well. This patch fixes this by
tracking the indices of arrays.
Differential Revision: https://reviews.llvm.org/D63080
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363510
91177308-0d34-0410-b5e6-
96231b3b80d8
Kristof Umann [Sun, 16 Jun 2019 14:09:11 +0000 (14:09 +0000)]
[analyzer][NFC] Tease apart and clang-format NoStoreFuncVisitor
Make several methods static functions
Move non-trivial methods out-of-line
Add a divider
Turn non-obvious autos into Optional<RegionVector>
clang-format affected lines
Differential Revision: https://reviews.llvm.org/D63086
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363509
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Sat, 15 Jun 2019 20:09:54 +0000 (20:09 +0000)]
Recommit r363298 "[lit] Disable test on darwin when building shared libs."
Was reverted in r363379 due to build breakage.
Thanks to Nico Weber for reverting the original and suggesting the
fix.
Please see https://reviews.llvm.org/D61697
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363502
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Puchert [Sat, 15 Jun 2019 15:38:51 +0000 (15:38 +0000)]
[Clang] Harmonize Split DWARF options with llc
Summary:
With Split DWARF the resulting object file (then called skeleton CU)
contains the file name of another ("DWO") file with the debug info.
This can be a problem for remote compilation, as it will contain the
name of the file on the compilation server, not on the client.
To use Split DWARF with remote compilation, one needs to either
* make sure only relative paths are used, and mirror the build directory
structure of the client on the server,
* inject the desired file name on the client directly.
Since llc already supports the latter solution, we're just copying that
over. We allow setting the actual output filename separately from the
value of the DW_AT_[GNU_]dwo_name attribute in the skeleton CU.
Fixes PR40276.
Reviewers: dblaikie, echristo, tejohnson
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D59673
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363496
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Puchert [Sat, 15 Jun 2019 14:07:43 +0000 (14:07 +0000)]
[Clang] Rename -split-dwarf-file to -split-dwarf-output
Summary:
This is the first in a series of changes trying to align clang -cc1
flags for Split DWARF with those of llc. The unfortunate side effect of
having -split-dwarf-output for single file Split DWARF will disappear
again in a subsequent change.
The change is the result of a discussion in D59673.
Reviewers: dblaikie, echristo
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D63130
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363494
91177308-0d34-0410-b5e6-
96231b3b80d8
Gauthier Harnisch [Sat, 15 Jun 2019 10:24:47 +0000 (10:24 +0000)]
[clang] Add storage for APValue in ConstantExpr
Summary:
When using ConstantExpr we often need the result of the expression to be kept in the AST. Currently this is done on a by the node that needs the result and has been done multiple times for enumerator, for constexpr variables... . This patch adds to ConstantExpr the ability to store the result of evaluating the expression. no functional changes expected.
Changes:
- Add trailling object to ConstantExpr that can hold an APValue or an uint64_t. the uint64_t is here because most ConstantExpr yield integral values so there is an optimized layout for integral values.
- Add basic* serialization support for the trailing result.
- Move conversion functions from an enum to a fltSemantics from clang::FloatingLiteral to llvm::APFloatBase. this change is to make it usable for serializing APValues.
- Add basic* Import support for the trailing result.
- ConstantExpr created in CheckConvertedConstantExpression now stores the result in the ConstantExpr Node.
- Adapt AST dump to print the result when present.
basic* : None, Indeterminate, Int, Float, FixedPoint, ComplexInt, ComplexFloat,
the result is not yet used anywhere but for -ast-dump.
Reviewers: rsmith, martong, shafik
Reviewed By: rsmith
Subscribers: rnkovacs, hiraditya, dexonsmith, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D62399
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363493
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Sat, 15 Jun 2019 10:05:49 +0000 (10:05 +0000)]
[analyzer] ReturnVisitor: Bypass everything to see inlined calls
Summary:
When we traversed backwards on ExplodedNodes to see where processed the
given statement we `break` too early. With the current approach we do not
miss the CallExitEnd ProgramPoint which stands for an inlined call.
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
dkrupp, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62926
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363491
91177308-0d34-0410-b5e6-
96231b3b80d8
Gauthier Harnisch [Sat, 15 Jun 2019 08:32:56 +0000 (08:32 +0000)]
[clang] perform semantic checking in constant context
Summary:
Since the addition of __builtin_is_constant_evaluated the result of an expression can change based on whether it is evaluated in constant context. a lot of semantic checking performs evaluations with out specifying context. which can lead to wrong diagnostics.
for example:
```
constexpr int i0 = (long long)__builtin_is_constant_evaluated() * (1ll << 33); //#1
constexpr int i1 = (long long)!__builtin_is_constant_evaluated() * (1ll << 33); //#2
```
before the patch, #2 was diagnosed incorrectly and #1 wasn't diagnosed.
after the patch #1 is diagnosed as it should and #2 isn't.
Changes:
- add a flag to Sema to passe in constant context mode.
- in SemaChecking.cpp calls to Expr::Evaluate* are now done in constant context when they should.
- in SemaChecking.cpp diagnostics for UB are not checked for in constant context because an error will be emitted by the constant evaluator.
- in SemaChecking.cpp diagnostics for construct that cannot appear in constant context are not checked for in constant context.
- in SemaChecking.cpp diagnostics on constant expression are always emitted because constant expression are always evaluated.
- semantic checking for initialization of constexpr variables is now done in constant context.
- adapt test that were depending on warning changes.
- add test.
Reviewers: rsmith
Reviewed By: rsmith
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62009
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363488
91177308-0d34-0410-b5e6-
96231b3b80d8
Ziang Wan [Fri, 14 Jun 2019 23:34:40 +0000 (23:34 +0000)]
Fixed the --print-supported-cpus test
Add constraints for the test that require specific backend targets
to be registered.
Remove trailing whitespace in the doc.
Differential Revision: https://reviews.llvm.org/D63105
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363475
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 14 Jun 2019 23:23:19 +0000 (23:23 +0000)]
[X86] Add checks that immediate for reducesd/ss fits in 8-bits.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363472
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 14 Jun 2019 22:06:28 +0000 (22:06 +0000)]
[CodeGen][ObjC] Annotate retain-agnostic ObjC globals with attribute
'objc_arc_inert'
The attribute enables the ARC optimizer to delete ObjC ARC runtime calls
on the annotated globals (see https://reviews.llvm.org/D62433). We
currently only annotate global variables for string literals and global
blocks with the attribute.
rdar://problem/
49839633
Differential Revision: https://reviews.llvm.org/D62831
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363467
91177308-0d34-0410-b5e6-
96231b3b80d8
Ziang Wan [Fri, 14 Jun 2019 21:42:21 +0000 (21:42 +0000)]
Add --print-supported-cpus flag for clang.
This patch allows clang users to print out a list of supported CPU models using
clang [--target=<target triple>] --print-supported-cpus
Then, users can select the CPU model to compile to using
clang --target=<triple> -mcpu=<model> a.c
It is a handy feature to help cross compilation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363464
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Fri, 14 Jun 2019 21:38:57 +0000 (21:38 +0000)]
[Remarks][NFC] Improve testing and documentation of -foptimization-record-passes
This adds:
* documentation to the user manual
* nicer error message
* test for the error case
* test for the gold plugin
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363463
91177308-0d34-0410-b5e6-
96231b3b80d8
Gheorghe-Teodor Bercea [Fri, 14 Jun 2019 20:19:54 +0000 (20:19 +0000)]
[OpenMP] Add target task alloc function with device ID
Summary: Add a new call to Clang to perform task allocation for the target.
Reviewers: ABataev, AlexEichenberger, caomhin
Reviewed By: ABataev, AlexEichenberger
Subscribers: openmp-commits, Hahnfeld, guansong, jdoerfert, cfe-commits
Tags: #clang, #openmp
Differential Revision: https://reviews.llvm.org/D63009
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363451
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 14 Jun 2019 20:19:29 +0000 (20:19 +0000)]
Use unsigned for bitfields to avoid sign extension
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363450
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 14 Jun 2019 20:01:54 +0000 (20:01 +0000)]
PR42071: Reject weird names for non-type template parameters.
Also reject default arguments appearing in invalid locations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363447
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 14 Jun 2019 20:01:51 +0000 (20:01 +0000)]
Use getOperatorSpelling to get the spelling of an overloaded operator
rather than duplicating operator name tables in multiple places.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363446
91177308-0d34-0410-b5e6-
96231b3b80d8
Gheorghe-Teodor Bercea [Fri, 14 Jun 2019 17:58:26 +0000 (17:58 +0000)]
[OpenMP] Avoid emitting maps for target link variables when unified memory is used
Summary: This patch avoids the emission of maps for target link variables when unified memory is present.
Reviewers: ABataev, caomhin
Reviewed By: ABataev
Subscribers: guansong, jdoerfert, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D60883
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363435
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 14 Jun 2019 17:46:39 +0000 (17:46 +0000)]
Remove unused SK_LValueToRValue initialization step.
In addition to being unused and duplicating code, this was also wrong
(it didn't properly mark the operand as being potentially not odr-used).
This reinstates r363340, reverted in r363352.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363430
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 14 Jun 2019 17:46:38 +0000 (17:46 +0000)]
PR23833, DR2140: an lvalue-to-rvalue conversion on a glvalue of type
nullptr_t does not access memory.
We now reuse CK_NullToPointer to represent a conversion from a glvalue
of type nullptr_t to a prvalue of nullptr_t where necessary.
This reinstates r363337, reverted in r363352.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363429
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 14 Jun 2019 17:46:37 +0000 (17:46 +0000)]
C++ DR712 and others: handle non-odr-use resulting from an lvalue-to-rvalue conversion applied to a member access or similar not-quite-trivial lvalue expression.
Summary:
When a variable is named in a context where we can't directly emit a
reference to it (because we don't know for sure that it's going to be
defined, or it's from an enclosing function and not captured, or the
reference might not "work" for some reason), we emit a copy of the
variable as a global and use that for the known-to-be-read-only access.
This reinstates r363295, reverted in r363352, with a fix for PR42276:
we now produce a proper name for a non-odr-use reference to a static
constexpr data member. The name <mangled-name>.const is used in that
case; such names are reserved to the implementation for cases such as
this and should demangle nicely.
Reviewers: rjmccall
Subscribers: jdoerfert, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D63157
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363428
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Fri, 14 Jun 2019 16:20:51 +0000 (16:20 +0000)]
Reland: [Remarks] Refactor optimization remarks setup
* Add a common function to setup opt-remarks
* Rename common options to the same names
* Add error types to distinguish between file errors and regex errors
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363415
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Fri, 14 Jun 2019 15:54:47 +0000 (15:54 +0000)]
[AMDGPU] Enable the implicit arguments for HIP (CLANG)
Enable 48-bytes of implicit arguments for HIP as well. Earlier it was enabled for OpenCL. This code is specific to AMDGPU target.
Differential Revision: https://reviews.llvm.org/D62244
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363414
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 14 Jun 2019 13:39:57 +0000 (13:39 +0000)]
AMDGPU: Use AMDGPU toolchain for other OSes
This would need more work to actually support them, but this is less
wrong than the default.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363390
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Fri, 14 Jun 2019 12:58:17 +0000 (12:58 +0000)]
Revert r363298 "[lit] Disable test on darwin when building shared libs."
It broke running check-lld on mac, see https://reviews.llvm.org/D61697
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363379
91177308-0d34-0410-b5e6-
96231b3b80d8
Sven van Haastregt [Fri, 14 Jun 2019 12:14:58 +0000 (12:14 +0000)]
Revert "[OpenCL] Move OpenCLBuiltins.td and remove unused include"
This reverts commit r363242 as it broke some builds with
make[2]: *** No rule to make target 'ClangOpenCLBuiltinsImpl', needed by
'tools/clang/lib/Sema/CMakeFiles/obj.clangSema.dir/SemaLookup.cpp.o'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363376
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Fri, 14 Jun 2019 11:33:40 +0000 (11:33 +0000)]
add a missing parenthese in the clang doc
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363369
91177308-0d34-0410-b5e6-
96231b3b80d8
Gauthier Harnisch [Fri, 14 Jun 2019 08:56:20 +0000 (08:56 +0000)]
[C++20] add Basic consteval specifier
Summary:
this revision adds Lexing, Parsing and Basic Semantic for the consteval specifier as specified by http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1073r3.html
with this patch, the consteval specifier is treated as constexpr but can only be applied to function declaration.
Changes:
- add the consteval keyword.
- add parsing of consteval specifier for normal declarations and lambdas expressions.
- add the whether a declaration is constexpr is now represented by and enum everywhere except for variable because they can't be consteval.
- adapt diagnostic about constexpr to print constexpr or consteval depending on the case.
- add tests for basic semantic.
Reviewers: rsmith, martong, shafik
Reviewed By: rsmith
Subscribers: eraman, efriedma, rnkovacs, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D61790
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363362
91177308-0d34-0410-b5e6-
96231b3b80d8
Gauthier Harnisch [Fri, 14 Jun 2019 08:40:04 +0000 (08:40 +0000)]
[clang] Fixing incorrect implicit deduction guides (PR41549)
Summary:
[[ https://bugs.llvm.org/show_bug.cgi?id=41549 | bug report ]]
Before this patch, implicit deduction guides were generated from the first declaration found by lookup.
With this patch implicit deduction guides are generated from the definition of the class template.
Also added test that was previously failing.
Reviewers: rsmith
Reviewed By: rsmith
Subscribers: cfe-commits, Quuxplusone
Tags: #clang
Differential Revision: https://reviews.llvm.org/D63072
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363361
91177308-0d34-0410-b5e6-
96231b3b80d8
Gauthier Harnisch [Fri, 14 Jun 2019 08:25:52 +0000 (08:25 +0000)]
[clang] Don't segfault on incorrect using directive (PR41400)
Summary:
this is a bugfixe for [[ https://bugs.llvm.org/show_bug.cgi?id=41400 | PR41400 ]]
added nullptr check at the relevent place and test
Reviewers: rsmith, riccibruno
Reviewed By: rsmith
Subscribers: jkooker, jkorous, riccibruno, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D60523
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363360
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Fri, 14 Jun 2019 04:05:17 +0000 (04:05 +0000)]
Revert 363295, it caused PR42276. Also revert follow-ups 363337, 363340.
Revert 363340 "Remove unused SK_LValueToRValue initialization step."
Revert 363337 "PR23833, DR2140: an lvalue-to-rvalue conversion on a glvalue of type"
Revert 363295 "C++ DR712 and others: handle non-odr-use resulting from an lvalue-to-rvalue conversion applied to a member access or similar not-quite-trivial lvalue expression."
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363352
91177308-0d34-0410-b5e6-
96231b3b80d8
George Burgess IV [Fri, 14 Jun 2019 00:35:17 +0000 (00:35 +0000)]
[Targets] Move soft-float-abi filtering to `initFeatureMap`
ARM has a special target feature called soft-float-abi. This feature is
special, since we get it passed to us explicitly in the frontend, but
filter it out before it can land in any target feature strings in LLVM
IR.
__attribute__((target(""))) doesn't quite filter these features out
properly, so today, we get warnings about soft-float-abi being an
unknown feature from the backend.
This CL has us filter soft-float-abi out at a slightly different point,
so we don't end up passing these invalid features to the backend.
Differential Revision: https://reviews.llvm.org/D61750
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363346
91177308-0d34-0410-b5e6-
96231b3b80d8
Stanislav Mekhanoshin [Fri, 14 Jun 2019 00:33:59 +0000 (00:33 +0000)]
[AMDGPU] gfx1011/gfx1012 clang support
Differential Revision: https://reviews.llvm.org/D63308
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363345
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Fri, 14 Jun 2019 00:05:56 +0000 (00:05 +0000)]
Revert "[Remarks] Refactor optimization remarks setup"
This reverts commit
6e6e3af55bb97e1a4c97375c15a2b0099120c5a7.
This breaks greendragon.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363343
91177308-0d34-0410-b5e6-
96231b3b80d8
Stanislav Mekhanoshin [Thu, 13 Jun 2019 23:47:59 +0000 (23:47 +0000)]
[AMDGPU] gfx1010 wave32 clang support
Differential Revision: https://reviews.llvm.org/D63209
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363341
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 13 Jun 2019 23:47:42 +0000 (23:47 +0000)]
Remove unused SK_LValueToRValue initialization step.
In addition to being unused and duplicating code, this was also wrong
(it didn't properly mark the operand as being potentially not odr-used).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363340
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 13 Jun 2019 23:31:04 +0000 (23:31 +0000)]
PR23833, DR2140: an lvalue-to-rvalue conversion on a glvalue of type
nullptr_t does not access memory.
We now reuse CK_NullToPointer to represent a conversion from a glvalue
of type nullptr_t to a prvalue of nullptr_t where necessary.
This reinstates r345562, reverted in r346065, now that CodeGen's
handling of non-odr-used variables has been fixed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363337
91177308-0d34-0410-b5e6-
96231b3b80d8
Amy Huang [Thu, 13 Jun 2019 22:53:43 +0000 (22:53 +0000)]
Use fully qualified name when printing S_CONSTANT records
Summary:
Before it was using the fully qualified name only for static data members.
Now it does for all variable names to match MSVC.
Reviewers: rnk
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D63012
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363335
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Thu, 13 Jun 2019 21:46:57 +0000 (21:46 +0000)]
[Remarks] Refactor optimization remarks setup
* Add a common function to setup opt-remarks
* Rename common options to the same names
* Add error types to distinguish between file errors and regex errors
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363328
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Thu, 13 Jun 2019 19:08:49 +0000 (19:08 +0000)]
[lit] Disable test on darwin when building shared libs.
Summary:
This test fails to link shared libraries because tries to run
a copied version of clang-check to see if the mock version of libcxx
in the same directory can be loaded dynamically. Since the test is
specifically designed not to look in the default just-built lib
directory, it must be disabled when building with
BUILD_SHARED_LIBS=ON.
Currently only disabling it on Darwin and basing it on the
enable_shared flag.
Reviewed By: ilya-biryukov
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D61697
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363298
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 13 Jun 2019 19:00:16 +0000 (19:00 +0000)]
C++ DR712 and others: handle non-odr-use resulting from an lvalue-to-rvalue conversion applied to a member access or similar not-quite-trivial lvalue expression.
Summary:
When a variable is named in a context where we can't directly emit a
reference to it (because we don't know for sure that it's going to be
defined, or it's from an enclosing function and not captured, or the
reference might not "work" for some reason), we emit a copy of the
variable as a global and use that for the known-to-be-read-only access.
Reviewers: rjmccall
Subscribers: jdoerfert, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D63157
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363295
91177308-0d34-0410-b5e6-
96231b3b80d8
Erich Keane [Thu, 13 Jun 2019 18:20:19 +0000 (18:20 +0000)]
PR42182: Allow thread-local to use __cxa_thread_atexit when
-fno-use-cxx-atexit is used
This matches the GCC behavior, __cxa_thread_atexit should be permissible
even though cxa_atexit is disabled.
Differential Revision: https://reviews.llvm.org/D63283/
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363288
91177308-0d34-0410-b5e6-
96231b3b80d8
Leonard Chan [Thu, 13 Jun 2019 18:18:40 +0000 (18:18 +0000)]
[clang][NewPM] Fix broken -O0 test from missing assumptions
Add an AssumptionCache callback to the InlineFuntionInfo used for the
AlwaysInlinerPass to match codegen of the AlwaysInlinerLegacyPass to generate
llvm.assume. This fixes CodeGen/builtin-movdir.c when new PM is enabled by
default.
Differential Revision: https://reviews.llvm.org/D63170
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363287
91177308-0d34-0410-b5e6-
96231b3b80d8
Leonard Chan [Thu, 13 Jun 2019 17:40:03 +0000 (17:40 +0000)]
[clang][NewPM] Fix split debug test
This contains the part of D62225 which fixes CodeGen/split-debug-single-file.c
by not placing .dwo sections when using -enable-split-dwarf=split.
Differential Revision: https://reviews.llvm.org/D63168
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363281
91177308-0d34-0410-b5e6-
96231b3b80d8
Leonard Chan [Thu, 13 Jun 2019 17:25:36 +0000 (17:25 +0000)]
[clang][NewPM] Fix broken profile test
This contains the part of D62225 which fixes Profile/gcc-flag-compatibility.c
by adding the pass that allows default profile generation to work under the new
PM. It seems that ./default.profraw was not being generated with new PM enabled.
Differential Revision: https://reviews.llvm.org/D63155
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363278
91177308-0d34-0410-b5e6-
96231b3b80d8
Leonard Chan [Thu, 13 Jun 2019 16:45:29 +0000 (16:45 +0000)]
[clang][NewPM] Fix broken -O0 test from the AlwaysInliner
This contains the part of D62225 which prevents insertion of lifetime
intrinsics when creating the AlwaysInliner. This fixes the following tests
when the new PM is enabled by default:
Clang :: CodeGen/aarch64-neon-across.c
Clang :: CodeGen/aarch64-neon-fcvt-intrinsics.c
Clang :: CodeGen/aarch64-neon-fma.c
Clang :: CodeGen/aarch64-neon-perm.c
Clang :: CodeGen/aarch64-neon-tbl.c
Clang :: CodeGen/aarch64-poly128.c
Clang :: CodeGen/aarch64-v8.2a-neon-intrinsics.c
Clang :: CodeGen/arm-neon-fma.c
Clang :: CodeGen/arm-neon-numeric-maxmin.c
Clang :: CodeGen/arm-neon-vcvtX.c
Clang :: CodeGen/avx-builtins.c
Clang :: CodeGen/builtins-ppc-p9vector.c
Clang :: CodeGen/builtins-ppc-vsx.c
Clang :: CodeGen/lifetime.c
Clang :: CodeGen/sse-builtins.c
Clang :: CodeGen/sse2-builtins.c
Differential Revision: https://reviews.llvm.org/D63153
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363277
91177308-0d34-0410-b5e6-
96231b3b80d8
Dmitri Gribenko [Thu, 13 Jun 2019 13:48:24 +0000 (13:48 +0000)]
Added AST matcher for ignoring elidable constructors
Summary: Added AST matcher for ignoring elidable move constructors
Reviewers: hokein, gribozavr
Reviewed By: hokein, gribozavr
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D63149
Patch by Johan Vikström.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363262
91177308-0d34-0410-b5e6-
96231b3b80d8
Sven van Haastregt [Thu, 13 Jun 2019 09:54:22 +0000 (09:54 +0000)]
[OpenCL] Move OpenCLBuiltins.td and remove unused include
Patch by Pierre Gondois.
Differential revision: https://reviews.llvm.org/D62849
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363242
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Clegg [Thu, 13 Jun 2019 09:42:43 +0000 (09:42 +0000)]
[WebAssembly] Modernize include path handling
Move include path construction from
InitHeaderSearch::AddDefaultIncludePaths in the Driver which appears
to be the more modern/correct way of doing things.
Differential Revision: https://reviews.llvm.org/D63030
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363241
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Clegg [Thu, 13 Jun 2019 08:58:46 +0000 (08:58 +0000)]
[clang-scan-deps] Fix -DBUILD_SHARED_LIBS=ON build
The -DBUILD_SHARED_LIBS=ON build was broken in rL363204
Differential Revision: https://reviews.llvm.org/D63245
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363238
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 13 Jun 2019 07:07:24 +0000 (07:07 +0000)]
clang-format extension: Widen the supported versions range
So that it covers also the latest VS 2019 version.
By Antonio Maiorano!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363230
91177308-0d34-0410-b5e6-
96231b3b80d8
David L. Jones [Thu, 13 Jun 2019 02:04:45 +0000 (02:04 +0000)]
Revert r361811: 'Re-commit r357452 (take 2): "SimplifyCFG SinkCommonCodeFromPredecessors ...'
We have observed some failures with internal builds with this revision.
- Performance regressions:
- llvm's SingleSource/Misc evalloop shows performance regressions (although these may be red herrings).
- Benchmarks for Abseil's SwissTable.
- Correctness:
- Failures for particular libicu tests when building the Google AppEngine SDK (for PHP).
hwennborg has already been notified, and is aware of reproducer failures.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363220
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Wed, 12 Jun 2019 21:52:36 +0000 (21:52 +0000)]
[clang-scan-deps] Include <mutex> in ClangScanDeps.cpp to ensure it
builds on all platforms
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363208
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Wed, 12 Jun 2019 21:45:28 +0000 (21:45 +0000)]
NFC, Update the ClangScanDeps.cpp file's license comment
The file ClangScanDeps.cpp from r363204 had the old outdated LLVM
license comment at the top of the file that I committed by accident.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363207
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Wed, 12 Jun 2019 21:37:32 +0000 (21:37 +0000)]
NFC, fixup indentation in CMakeLists.txt from r363204 as requested
in the review.
I missed that review comment from https://reviews.llvm.org/D60233 in the original
commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363205
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Wed, 12 Jun 2019 21:32:49 +0000 (21:32 +0000)]
[clang-scan-deps] initial outline of the tool that runs preprocessor to find
dependencies over a JSON compilation database
This commit introduces an outline for the clang-scan-deps tool that will be
used to implement fast dependency discovery phase using implicit modules for
explicit module builds.
The initial version of the tool works by computing non-modular header dependencies
for files in the compilation database without any optimizations
(i.e. without source minimization from r362459).
The tool spawns a number of worker threads to run the clang compiler workers in parallel.
The immediate goal for clang-scan-deps is to create a ClangScanDeps library
which will be used to build up this tool to use the source minimization and
caching multi-threaded filesystem to implement the optimized non-incremental
dependency scanning phase for a non-modular build. This will allow us to do
benchmarks and comparisons for performance that the minimization and caching give us
Differential Revision: https://reviews.llvm.org/D60233
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363204
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Wed, 12 Jun 2019 20:35:44 +0000 (20:35 +0000)]
[test] Reinstate the assignment to the diagnostic log in the unittest
from r363009
The diagnostic log is now set to "-" which forces it to use STDERR
instead of the filesystem. A new comment is added to explain why
the assignment is needed in the test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363199
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 12 Jun 2019 19:50:06 +0000 (19:50 +0000)]
Add comment to r363191 code as requested in code review
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363195
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 12 Jun 2019 18:53:49 +0000 (18:53 +0000)]
[MS] Pretend constexpr variable template specializations are inline
Fixes link errors with clang and the latest Visual C++ 14.21.27702
headers, which was reported as PR42027.
I chose to intentionally make these things linkonce_odr, i.e.
discardable, so that we don't emit definitions of these things in every
translation unit that includes STL headers.
Note that this is *not* what MSVC does: MSVC has not yet implemented C++
DR2387, so they emit fully specialized constexpr variable templates with
static / internal linkage.
Reviewers: rsmith
Differential Revision: https://reviews.llvm.org/D63175
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363191
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 12 Jun 2019 18:32:22 +0000 (18:32 +0000)]
PR42220: take into account the possibility of aggregates with base
classes when checking an InitListExpr for lifetime extension.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363188
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 12 Jun 2019 18:24:02 +0000 (18:24 +0000)]
[analyzer] ProgramPoint: more explicit printJson()
Summary: Now we print out every possible kinds of ProgramPoints.
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
dkrupp, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62946
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363187
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikolai Kosjar [Wed, 12 Jun 2019 07:50:48 +0000 (07:50 +0000)]
[NFC] Test commit
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363127
91177308-0d34-0410-b5e6-
96231b3b80d8
Zi Xuan Wu [Wed, 12 Jun 2019 05:25:40 +0000 (05:25 +0000)]
[PowerPC] [Clang] Port SSE2 intrinsics to PowerPC
Port emmintrin.h which include Intel SSE2 intrinsics implementation to PowerPC platform (using Altivec).
The new headers containing those implemenations are located into a directory named ppc_wrappers
which has higher priority when the platform is PowerPC on Linux. They are mainly developed by Steven Munroe,
with contributions from Paul Clarke, Bill Schmidt, Jinsong Ji and Zixuan Wu.
It's a follow-up patch of D62121.
Patched by: Qiu Chaofan <qiucf@cn.ibm.com>
Differential Revision: https://reviews.llvm.org/D62569
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363122
91177308-0d34-0410-b5e6-
96231b3b80d8
Pengfei Wang [Wed, 12 Jun 2019 01:52:23 +0000 (01:52 +0000)]
[X86] [ABI] Fix i386 ABI "__m64" type bug
According to System V i386 ABI: the __m64 type paramater and return
value are passed by MMX registers. But current implementation treats
__m64 as i64 which results in parameter passing by stack and returning
by EDX and EAX.
This patch fixes the bug (https://bugs.llvm.org/show_bug.cgi?id=41029)
for Linux and NetBSD.
Patch by Wei Xiao (wxiao3)
Differential Revision: https://reviews.llvm.org/D59744
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363116
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 11 Jun 2019 23:51:46 +0000 (23:51 +0000)]
Mark declarations as referenced by a default argument in a
potentially-evaluated context.
This applies even if the use of the default argument is within an
unevaluated context.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363113
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 11 Jun 2019 17:50:37 +0000 (17:50 +0000)]
Remove redundant check for whether a DeclRefExpr that names a capture
constitutes an odr-use.
We now track this accurately on the DeclRefExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363088
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 11 Jun 2019 17:50:36 +0000 (17:50 +0000)]
For DR712: store on a MemberExpr whether it constitutes an odr-use.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363087
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 11 Jun 2019 17:50:32 +0000 (17:50 +0000)]
For DR712: store on a DeclRefExpr whether it constitutes an odr-use.
Begin restructuring to support the forms of non-odr-use reference
permitted by DR712.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363086
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Tue, 11 Jun 2019 15:05:11 +0000 (15:05 +0000)]
Revert r344630 Disable code object version 3 for HIP toolchain.
Remove the workaround so that by default code object v3 is enabled.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363076
91177308-0d34-0410-b5e6-
96231b3b80d8
Erich Keane [Tue, 11 Jun 2019 14:58:26 +0000 (14:58 +0000)]
Fix for r42230, MSVC test failure in DependencyDirectivesSourceMinimizerTest.cpp
r362459 introduced DependencyDirectivesSourceMinimizerTest.cpp, which
hits an MSVC bug:
developercommunity.visualstudio.com/content/problem/67300/stringifying-raw-string-literal.html
This only happens when the parameter to a macro is stringified in the
macro. This patch removes the string from the assert so that the
warning no longer happens.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363074
91177308-0d34-0410-b5e6-
96231b3b80d8
Hubert Tong [Tue, 11 Jun 2019 14:23:55 +0000 (14:23 +0000)]
[NFC][PowerPC] Header-dependent test requires "native"
Two recently added tests mention complications for cross-compile, but
they do not actually enforce native compilation. This patch makes them
require native compilation to avoid the complications they mention.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363070
91177308-0d34-0410-b5e6-
96231b3b80d8
Hubert Tong [Tue, 11 Jun 2019 14:21:32 +0000 (14:21 +0000)]
Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist"
Following r363007, which reverted r362998, r362996, and r362994,
reapply with adjustments for the CRLF differences encountered with
Windows. Namely, the `-b` option of `diff` is employed, and the `grep`
patterns have `$` replaced with `[[:space:]]*$`.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363069
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikolai Kosjar [Tue, 11 Jun 2019 14:14:24 +0000 (14:14 +0000)]
[libclang] Allow skipping warnings from all included files
Depending on the included files and the used warning flags, e.g. -
Weverything, a huge number of warnings can be reported for included
files. As processing that many diagnostics comes with a performance
impact and not all clients are interested in those diagnostics, add a
flag to skip them.
Differential Revision: https://reviews.llvm.org/D48116
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363067
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Marton [Tue, 11 Jun 2019 13:35:25 +0000 (13:35 +0000)]
[ASTImporter] Fix unhandled cases in ASTImporterLookupTable
Summary:
In most cases the FriendDecl contains the declaration of the befriended
class as a child node, so it is discovered during the recursive
visitation. However, there are cases when the befriended class is not a
child, thus it must be fetched explicitly from the FriendDecl, and only
then can we add it to the lookup table.
(Note, this does affect only CTU and does not affect LLDB, because we
cannot and do not use the ASTImporterLookupTable in LLDB.)
Reviewers: a_sidorin, a.sidorin, shafik
Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62064
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363062
91177308-0d34-0410-b5e6-
96231b3b80d8
Lewis Revill [Tue, 11 Jun 2019 12:49:15 +0000 (12:49 +0000)]
[RISCV][NFC] Add missing test files for D54091
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363056
91177308-0d34-0410-b5e6-
96231b3b80d8
Lewis Revill [Tue, 11 Jun 2019 12:44:01 +0000 (12:44 +0000)]
[RISCV] Add inline asm constraints I, J & K for RISC-V
This allows the constraints I, J & K to be used in inline asm for
RISC-V, with the following semantics (equivalent to GCC):
I: Any 12-bit signed immediate.
J: Integer zero only.
K: Any 5-bit unsigned immediate.
See the GCC definitions here:
https://gcc.gnu.org/onlinedocs/gccint/Machine-Constraints.html
Differential Revision: https://reviews.llvm.org/D54091
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363055
91177308-0d34-0410-b5e6-
96231b3b80d8