| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The documentation for RecursiveASTVisitor::TraverseDecl states that the
Decl being traversed may be null. In fact, this is the case when a
CXXCatchStmt with no exception decl is traversed. Because the visitor
for diagnosing unexpanded parameter packs does not check for null, it
ends up crashing when it attempts to call the Decl::isParameterPack
method on a null Decl pointer.
Add a null check to prevent an ICE, and a test case that would crash
otherwise. Also, because the test requires C++ exceptions and C++14,
change the test parameters for the entire test file. (Alternatively, I
thought about adding a new test file, but went with this approach for my
own convenience.)
Co-authored-by: Andreas Molzer <andreas.molzer@gmx.de>
Co-authored-by: Mara Bos <m-ou.se@m-ou.se>
Reviewers: rsmith
Reviewed By: rsmith
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D56271
llvm-svn: 350501
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ARM target itself is similar to the X86 target in https://reviews.llvm.org/rL348903
The llvm-exegesis unittests ARM bits are similar to the X86 bits in https://reviews.llvm.org/rL350413
Both are similar to the corresponding AArch64 bits in https://reviews.llvm.org/rL350499 too
After this, everything in my local GN branch is upstreamed to LLVM.
Differential Revision: https://reviews.llvm.org/D56371
llvm-svn: 350500
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The AArch64 target itself is similar to the X86 target in https://reviews.llvm.org/rL348903
The llvm-exegesis AArch64 bits are similar to the X86 bits in http://reviews.llvm.org/rL350184
The llvm-exegesis unittests AArch64 bits are similar to the X86 bits in https://reviews.llvm.org/rL350413
llvm/unittests/Target/AArch64 doesn't have an equivalent since the X86 Target
only has lit tests, no unittests.
Differential Revision: https://reviews.llvm.org/D56364
llvm-svn: 350499
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: AVX512VBMI2 supports a funnel shift by immediate and a funnel shift by a variable vector.
Reviewers: spatel, RKSimon
Reviewed By: RKSimon
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D56361
llvm-svn: 350498
|
|
|
|
|
|
|
|
|
| |
files""
This reverts commit rL350493
issues related to modules still appear in http://green.lab.llvm.org/green/job/lldb-cmake
llvm-svn: 350497
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are no test changes here in the existing cost model
regression tests because integer add/sub have a default
legal cost of 1 already. This would break, however, if
we custom lower those ops because the default cost model
assumes that custom-lowered ops are more expensive.
This is similar to the change in rL350403. See discussion
in D56011 for more details. When we enhance that patch to
handle integer ops, we need this cost model change to avoid
unintended diffs here from the custom lowering.
llvm-svn: 350496
|
|
|
|
|
|
|
| |
I meant to commit this change in 350341 but failed to do so (since it's
in test/CodeGenCXX, not in test/Frontend).
llvm-svn: 350495
|
|
|
|
|
|
| |
Adds a build file for llvm-elfabi and makes check-llvm depend on it.
llvm-svn: 350494
|
|
|
|
|
|
|
|
|
| |
Resubmitted in rL345290 and reverted in rL350345 due to failures in
http://green.lab.llvm.org/green/job/lldb-cmake/
Resubmitting after a workaround to lldb-cmake failure was
committed in rL350346, more info in https://reviews.llvm.org/D56084
llvm-svn: 350493
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D56219
llvm-svn: 350492
|
|
|
|
|
|
|
|
| |
This is enables the use of libc++ in contexts such as device drivers.
Differential Revision: https://reviews.llvm.org/D55405
llvm-svn: 350491
|
|
|
|
|
|
|
|
| |
should be handled.
The FSHL/FSHR nodes are handled in the expand function, but they need to also be listed in the code that queries for the operation action too.
llvm-svn: 350490
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is useful when static libc++ library is being linked into
shared libraries that may be used in combination with libraries.
We want to avoid we exporting libc++ symbols in those cases where
this option is useful. This is provided as a CMake option and can
be enabled by libc++ vendors as needed.
Differential Revision: https://reviews.llvm.org/D55404
llvm-svn: 350489
|
|
|
|
|
|
|
|
|
| |
This is the deprecated legacy interface, replace it with the current
_zx_vmar_allocate one.
Differential Revision: https://reviews.llvm.org/D56360
llvm-svn: 350488
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
original template and deduced specialization
Now appears in the Autos window something like
- MyType DeducedTemplateSpecializationType {struct Y<int>}
|- Template template<typename T> struct Y;
|- Deduced As struct Y<int>
|- isDeduced true bool
|- TypeClass DeducedTemplateSpecialization (36)
|- Flags No TypeBits set beyond TypeClass
|- Canonical RecordType {struct Y<int>}
Also changed QualType visualization to auto-expand the BaseType
llvm-svn: 350487
|
|
|
|
|
|
|
|
| |
We want these to be used for the second stage compiler as well.
Differential Revision: https://reviews.llvm.org/D56359
llvm-svn: 350486
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes <experimental/foo> to use #warning instead of
is harmful to common feature detection idioms.
We should also consider only emitting the warning when __DEPRECATED is
defined, like we do in the <ext/foo> headers. Users may want to specify
"-Werror=-W#warnings" while still ignoring the libc++ warnings.
llvm-svn: 350485
|
|
|
|
|
|
| |
This reverts commit r350461 as it causes many of the Clang tests to fail.
llvm-svn: 350484
|
|
|
|
|
|
| |
This was here because out and in instructions allow '(%dx)' even though its not a memory reference. To handle this we build a special operand for the DX register reference before we get to the call to CheckBaseRegAndIndexRegAndScale. So we no longer need this special case.
llvm-svn: 350483
|
|
|
|
| |
llvm-svn: 350482
|
|
|
|
|
|
| |
(truncate (v64i8)))) on KNL.
llvm-svn: 350481
|
|
|
|
|
|
|
|
| |
input is a truncate from v16i8/v32i8.
This is especially helpful on targets without avx512bw since we don't have a good way to convert from v16i8/v32i8 to v16i1/v32i1 for the truncate anyway. If we're just going to convert it to a GPR we might as well use pmovmskb to accomplish both.
llvm-svn: 350480
|
|
|
|
|
|
|
|
|
| |
D55859 changed "external tools or libraries" to "external sources" according to
Pavel Labath. Now it is changed sort of back to "external tools and
repositories" according to Adrian Prantl.
https://reviews.llvm.org/D55859#1345881
llvm-svn: 350479
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
last_write_time(sym, new_time) changes the modification time of the file
referenced by the symlink. But reading through the symlink may change the
symlinks's access time.
This meant the previous test that checked that the symlinks access
time was unchanged was incorrect and made the test flaky.
This patch removes this test (there really is no non-flaky way
to test that the new access time coorisponds to the time at which
the symlink was last dereferenced). This should unflake the test.
llvm-svn: 350478
|
|
|
|
|
|
| |
Requested by EricWF.
llvm-svn: 350477
|
|
|
|
|
|
|
|
|
| |
The autolinking extension for ELF uses a slightly different format for
encoding the autolink information compared to COFF and MachO. Account
for this in the CGM to ensure that we do not assert when emitting
assembly or an object file.
llvm-svn: 350476
|
|
|
|
|
|
|
|
|
| |
Fixes cvt_f32_ubyte combine. performCvtF32UByteNCombine() could shrink
source node to demanded bits only even if there are other uses.
Differential Revision: https://reviews.llvm.org/D56289
llvm-svn: 350475
|
|
|
|
| |
llvm-svn: 350474
|
|
|
|
|
|
| |
when -mprefer-vector-width-256 is in effect and BWI is not available.
llvm-svn: 350473
|
|
|
|
|
|
|
| |
Change a loop to range based instead while working on cleaning up some
modules autolinking issues on Linux. NFC.
llvm-svn: 350472
|
|
|
|
|
|
|
|
| |
Change part of the tests to use vectors (I'm using scalar for ugt
and vector for ult), add multiuse variations, rename %lz to %tz
for the cttz tests.
llvm-svn: 350471
|
|
|
|
|
|
|
|
| |
Display TypeBits in a single line.
Fix bit rot in template visualizations
Rudimentary support for deduced types
llvm-svn: 350470
|
|
|
|
|
|
|
|
| |
Add a "deref" view that displays the pointed to objects since
other visualizers often need to display data reference by internal
PointerUnions
llvm-svn: 350469
|
|
|
|
| |
llvm-svn: 350468
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Python 3.7 the old code raises a warning:
DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
class ArgumentsIterator(collections.Sequence):
On Python 3.8 it wouldn't work anymore.
Commited on behalf of Jakub Stasiak.
Differential Revision: https://reviews.llvm.org/D56341
llvm-svn: 350467
|
|
|
|
| |
llvm-svn: 350466
|
|
|
|
|
|
|
|
| |
object files. NFC.
Differential Revision: https://reviews.llvm.org/D56335
llvm-svn: 350465
|
|
|
|
|
|
|
|
| |
Originally authored by Rui Ueyama.
Differential Revision: https://reviews.llvm.org/D53031
llvm-svn: 350464
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The cttz/ctlz intrinsics have a parameter specifying whether the
result is undefined for zero. cttz(x, false) can be relaxed to
cttz(x, true) if x is known non-zero, and in fact such an optimization
is already performed. However, this currently doesn't work if x is
non-zero as a result of a select rather than an explicit branch.
This patch adds handling for this case, thus allowing
x != 0 ? cttz(x, false) : y to simplify to x != 0 ? cttz(x, true) : y.
Differential Revision: https://reviews.llvm.org/D55786
llvm-svn: 350463
|
|
|
|
| |
llvm-svn: 350462
|
|
|
|
|
|
|
|
| |
This change enableds experimental new pass manager.
Differential Revision: https://reviews.llvm.org/D56350
llvm-svn: 350461
|
|
|
|
|
|
|
|
|
|
|
| |
This enables x86 relaxation by default. This depends on a linker new
enough to support the new reloc types but since we default to lld we
don't worry about host system linkers that might be too old to support
the new reloc types.
Differential Revision: https://reviews.llvm.org/D56349
llvm-svn: 350460
|
|
|
|
|
|
|
|
| |
This enables passing --build-id to linker by default.
Differential Revision: https://reviews.llvm.org/D56348
llvm-svn: 350459
|
|
|
|
| |
llvm-svn: 350458
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D56328
llvm-svn: 350457
|
|
|
|
|
|
|
|
|
|
| |
This has some minor optimizations to shouldBeDeferred. This is not
strictly NFC because the early exit inside the loop assumes
TotalSecondaryCost is monotonically non-decreasing, which is not true if
the threshold used by CostAnalyzer is negative. AFAICT the thresholds do
not go below 0 for the default values of the various options we use.
llvm-svn: 350456
|
|
|
|
|
|
| |
We don't need to require the first operand to be an integer because we already said it was the same type as the result which we also constrained to an integer.
llvm-svn: 350455
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is slightly ugly for three reasons:
- The shlib needs to go next to the binary to be found on all platforms, so the
build files refer to target_out_dir
- The explicit -fPIC flag needed on the shared lib side, and the -rdynamic flag
needed on the host side, on Linux
- Plugins that refer to LLVM code and assume that the host will resolve them
don't work on Windows -- PluginsTests won't test anything on Windows (but
DynamicLibraryTests will, since the dll here doesn't call LLVM code)
If we get lots more of these plugin / plugin host targets it might make sense
to add a template for them. But for now, these are the last ones we need.
(We're at 6 plugin hosts, 2 of them tests, and at 6 shared libraries, 2 of them
tests as well. clang is a plugin host by default in the CMake build but not
(yet?) in the GN build.)
Differential Revision: https://reviews.llvm.org/D56330
llvm-svn: 350454
|
|
|
|
| |
llvm-svn: 350453
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Saves up to 1.3 sec on large PDBs.
Figures below are for the "Globals Stream Layout" pass:
Before This patch
Large EXE (PDB is ~2 GB) 3330 ms 2022 ms
Large EXE (PDB is ~2 GB) 2680 ms 1608 ms
Large DLL (PDB is ~1 GB) 1455 ms 938 ms
Large DLL (PDB is ~800 MB) 1215 ms 800 ms
Small DLL (PDB is ~200 MB) 224 ms 146 ms
Differential Revision: https://reviews.llvm.org/D56334
llvm-svn: 350452
|