| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
for the ones needed for SSE1. Anything SSE2 or above uses the integer ISD opcode.
This removes 11721 bytes from the DAG isel table or 2.2%
llvm-svn: 290073
|
| |
|
|
|
|
| |
using-declarations.
llvm-svn: 290072
|
| |
|
|
|
|
|
|
|
|
|
| |
* a dependent non-type using-declaration within a function template can be
valid, as it can refer to an enumerator, so don't reject it in the template
definition
* we can partially substitute into a dependent using-declaration if it appears
within a (local class in a) generic lambda within a function template, which
means an UnresolvedUsing*Decl doesn't necessarily instantiate to a UsingDecl.
llvm-svn: 290071
|
| |
|
|
|
|
|
| |
Add test-case that was missing in "[FileCheck] Fix --strict-whitespace
--match-full-lines" commit.
llvm-svn: 290070
|
| |
|
|
|
|
|
| |
Make sure FileCheck --strict-whitespace --match-full-lines translates
'CHECK: bla ' into pattern '^ bla $' instead of pattern '^bla$'.
llvm-svn: 290069
|
| |
|
|
|
|
|
|
| |
Long is not the same size across a number of the platforms we support.
Use unsigned int here instead, it is more appropriate because
overflow/wrap-around is possible and, in this case, expected.
llvm-svn: 290068
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Background/motivation - I was circling back around to:
https://llvm.org/bugs/show_bug.cgi?id=28296
I made a simple patch for that and noticed some regressions, so added test cases for
those with rL281055, and this is hopefully the minimal fix for just those cases.
But as you can see from the surrounding untouched folds, we are missing commuted patterns
all over the place, and of course there are no regression tests to cover any of those cases.
We could sprinkle "m_c_" dust all over this file and catch most of the missing folds, but
then we still wouldn't have test coverage, and we'd still miss some fraction of commuted
patterns because they require adjustments to the match order.
I'm aware of the concern about the potential compile-time performance impact of adding
matches like this (currently being discussed on llvm-dev), but I don't think there's any
evidence yet to suggest that handling commutative pattern matching more thoroughly is not
a worthwhile goal of InstCombine.
Differential Revision: https://reviews.llvm.org/D24419
llvm-svn: 290067
|
| |
|
|
|
|
|
|
| |
Not sure whether it causes and ASAN false positive or whether it
actually leads to incorrect code or whether it even exposes bad code.
Hans, I'll get you instructions to reproduce this.
llvm-svn: 290066
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Commit on behalf of Gadi Haber
Removed EVEX_V512 prefix from scalar EVEX instructions since HW ignores L'L bits anyway (LIG). 4 instructions are modified.
The changed encodings are validated with XED.
Rviewers: delena, igorb
Differential revision: https://reviews.llvm.org/D27802
llvm-svn: 290065
|
| |
|
|
|
|
| |
As discussed on D27692, the next step will be to allow cross-domain shuffles once the combined shuffle depth passes a certain point.
llvm-svn: 290064
|
| |
|
|
| |
llvm-svn: 290063
|
| |
|
|
|
|
|
|
|
|
|
|
| |
I thought for a while about how to remove it, but it looks like we
can just copy the file for now. Of course I'm not happy about that,
but it's just less than 50 lines of code, and we already have
duplicate code in Error.h and some other places. I want to solve
them all at once later.
Differential Revision: https://reviews.llvm.org/D27819
llvm-svn: 290062
|
| |
|
|
|
|
|
| |
The comment in ReadCheckFile claims that both leading and trailing whitespace
are removed, but the associated statement only removes leading whitespace.
llvm-svn: 290061
|
| |
|
|
|
|
|
|
|
|
|
|
| |
if they are available. This will allow a bunch of patterns to be removed.
These nodes are only emitted for lowering FABS/FNEG/FNABS/FCOPYSIGN. Ideally we just wouldn't create these nodes if SSE2 or higher is available, but it was simple to just convert them in DAG combine.
For SSE2, AVX, and AVX512 with DQI this is no functional change as the execution domain fixing pass ensures the right domain is selected regardless of the ISD opcode.
For AVX-512 without DQI we end up using integer instructions since the floating point versions aren't available. But we were already doing that for any logical operations in code that didn't come from FABS/FNEG/FNABS/FCOPYSIGN so this seems no worse. And we get the benefit of being able to fold broadcasts now.
llvm-svn: 290060
|
| |
|
|
|
|
|
|
|
|
| |
The test requests a target which supports cl_khr_gl_msaa_sharing since in test/PCH/ocl_types.h
it tries to enable cl_khr_gl_msaa_sharing. Therefore this test fails on targets not supporting
cl_khr_gl_msaa_sharing, e.g. ppc64, etc.
The fix is to add triple spir-unknown-unknown which supports cl_khr_gl_msaa_sharing.
llvm-svn: 290059
|
| |
|
|
|
|
|
| |
Add llvm:: namespace to StringRef.
Make conversion between bool and uint64_t explicit.
llvm-svn: 290058
|
| |
|
|
|
|
|
|
| |
DQI and VLX instructions are available.
This can give the register allocator more registers to use.
llvm-svn: 290057
|
| |
|
|
|
|
|
|
| |
with extensions
Fixed undefined behavior due to cast integer to bool in initializer list.
llvm-svn: 290056
|
| |
|
|
|
|
| |
for scalars. I missed this in r290049.
llvm-svn: 290055
|
| |
|
|
|
|
|
| |
We already have a CRC32 implementation which is compatible with the PDB
hash, reuse it.
llvm-svn: 290054
|
| |
|
|
|
|
|
| |
- Validate the address of the block map.
- Validate the address of the free block map.
llvm-svn: 290053
|
| |
|
|
|
|
| |
This should resolve an issue reported on the commit thread that impacted sanitizer bots.
llvm-svn: 290052
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
An addition to the move-constructor-init check was duplicating the
modernize-pass-by-value check.
Remove the additional check and UseCERTSemantics option.
Run the move-constructor-init test with both checks enabled.
Fix modernize-pass-by-value false-positive when initializing a base
class.
Add option to modernize-pass-by-value to only warn about parameters
that are already values.
Reviewers: alexfh, flx, aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D26453
llvm-svn: 290051
|
| |
|
|
| |
llvm-svn: 290050
|
| |
|
|
|
|
| |
available. This gives the register allocator more registers to work with.
llvm-svn: 290049
|
| |
|
|
|
|
| |
encoded logic instructions to get more registers to use.
llvm-svn: 290048
|
| |
|
|
|
|
|
|
| |
It is still breaking Chrome. http://llvm.org/PR31361
This reverts commit r290026.
llvm-svn: 290047
|
| |
|
|
| |
llvm-svn: 290046
|
| |
|
|
| |
llvm-svn: 290045
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Patch by Pino Toscano. Reported in http://bugs.debian.org/835665
Reviewers: tfiala, emaste
Subscribers: beanz, mgorny, emaste, krytarowski, brucem, tberghammer, danalbert, srhines, #lldb
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D23977
llvm-svn: 290044
|
| |
|
|
|
|
|
|
|
|
|
| |
that sets max_len to 1M and tries to increases the actual max sizes of mutations very gradually. Also remove a bit of dead code"
This reverts commit r289998.
See comment:
https://reviews.llvm.org/rL289998
llvm-svn: 290043
|
| |
|
|
|
|
|
| |
DWARFDebugPubTable was introduced recently and allows us to get rid of
code duplication in LLD.
llvm-svn: 290042
|
| |
|
|
|
|
|
| |
That is usefull when iterating over entries of new DWARFDebugPubTable class
via DWARFDebugPubTable::getData which returns ArrayRef.
llvm-svn: 290041
|
| |
|
|
|
|
|
|
|
|
| |
Patch implements parser of pubnames/pubtypes tables instead of static
function used before. It is now should be possible to reuse it
in LLD or other projects and clean up the duplication code.
Differential revision: https://reviews.llvm.org/D27851
llvm-svn: 290040
|
| |
|
|
| |
llvm-svn: 290039
|
| |
|
|
|
|
|
|
| |
This patch is to implement sema and parsing for 'target teams' pragma.
Differential Revision: https://reviews.llvm.org/D27818
llvm-svn: 290038
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
PseudoSourceValue can be used to attach a target specific value for "well behaved" side-effects lowered from target specific intrinsics.
This is useful whenever there is not an LLVM IR Value around when representing such "well behaved" side-effected operations in backends by attaching a MachineMemOperand with a custom PseudoSourceValue as this makes the scheduler not treating them as "GlobalMemoryObjects" which triggers a logic that makes the operation act like a barrier in the Schedule DAG.
This patch adds another Kind to the PseudoSourceValue object which is "TargetCustom". It indicates a type of PseudoSourceValue that has a target specific meaning (aka. LLVM shouldn't assume any specific usage for such a PSV).
It supports the possibility of having many different kinds of "TargetCustom" PseudoSourceValues.
We had a discussion about if this was valuable or not (in particular because there was a believe that PSV were going away sooner or later) but seems like they are not going anywhere and I think they are useful backend side.
It is not clear the interaction of this with MIRParser (do we need a target hook to parse these?) and I would like a comment from Alex about that :)
Reviewers: arphaman, hfinkel, arsenm
Subscribers: Eugene.Zelenko, llvm-commits
Patch By: Marcello Maggioni
Differential Revision: https://reviews.llvm.org/D13575
llvm-svn: 290037
|
| |
|
|
| |
llvm-svn: 290036
|
| |
|
|
| |
llvm-svn: 290034
|
| |
|
|
| |
llvm-svn: 290033
|
| |
|
|
|
|
| |
See also test/CodeGen/MIR/README
llvm-svn: 290032
|
| |
|
|
|
|
| |
(to make things faster). Also ensure that the signals from value profile do not intersect with the regular coverage
llvm-svn: 290031
|
| |
|
|
|
|
|
|
| |
This reverts r289696, which caused TSan perf regression.
See PR31382.
llvm-svn: 290030
|
| |
|
|
|
|
|
| |
unittests/ADT/TwineTest.cpp:106:38: error: field 'Count' will be initialized after base 'llvm::FormatAdapter<int>' [-Werror,-Wreorder]
explicit formatter(int &Count) : Count(Count), FormatAdapter(0) {}
llvm-svn: 290029
|
| |
|
|
|
|
| |
(NFC).
llvm-svn: 290028
|
| |
|
|
| |
llvm-svn: 290027
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-apply r288561: Liveness tracking should be correct now after r290014.
Previously this pass was using up to 5% compile time in some cases which
is a bit much for what it is doing. The pass featured a full blown
data-flow analysis which in the default configuration was restricted to a
single block.
This rewrites the pass under the assumption that we only ever work on a
single block. This is done in a single pass maintaining a state machine
per general purpose register to catch LOH patterns.
Differential Revision: https://reviews.llvm.org/D27329
llvm-svn: 290026
|
| |
|
|
|
|
|
| |
These are unnecessary, the declarations already carry the 'extern C' property, and if there is mismatch
between declaration and definition then we will get linker errors via libclang.exports.
llvm-svn: 290025
|
| |
|
|
|
|
| |
other minor fixes (NFC).
llvm-svn: 290024
|
| |
|
|
|
|
|
|
|
|
| |
Update the UnixAPIChecker to not diagnose for calls to functions that
are declared in C++ namespaces. This avoids false positives when a
namespaced function has the same name as a Unix API.
This address PR28331.
llvm-svn: 290023
|