| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
with ZMM index. Similar for SCATTER and the prefetch gather and scatter
instructions.
Fixes PR31618.
llvm-svn: 292088
|
| |
|
|
|
|
| |
that all 32 bit registers can be allowed.
llvm-svn: 292087
|
| |
|
|
|
|
| |
Also, add comments and remove bogus comment.
llvm-svn: 292082
|
| |
|
|
| |
llvm-svn: 292081
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Use getLoopLatch in place of isLoopSimplifyForm. we do not need
to know whether the loop has a preheader nor dedicated exits.
Reviewers: hfinkel, sanjoy, atrick, mkuper
Subscribers: mzolotukhin, llvm-commits
Differential Revision: https://reviews.llvm.org/D28724
llvm-svn: 292078
|
| |
|
|
|
|
| |
We already have patterns in place to support 128/256-bit shifts without AVX512VL
llvm-svn: 292077
|
| |
|
|
|
|
|
|
| |
costs
Keep the tests though.
llvm-svn: 292076
|
| |
|
|
|
|
|
|
| |
non-constant uniform values.
Use shuffle( scslar_to_vector, zeroinitializer) pattern instead of shuffle( vec, zeroinitializer)
llvm-svn: 292075
|
| |
|
|
| |
llvm-svn: 292074
|
| |
|
|
| |
llvm-svn: 292073
|
| |
|
|
|
|
| |
through a pshufb shuffle mask
llvm-svn: 292072
|
| |
|
|
|
|
| |
These seem to have been left off by accident.
llvm-svn: 292071
|
| |
|
|
| |
llvm-svn: 292070
|
| |
|
|
| |
llvm-svn: 292069
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Previously there were three ways to inform the NVVMReflect pass whether
you wanted to flush denormals to zero:
* An LLVM command-line option
* Parameters to the NVVMReflect constructor
* Metadata on the module itself.
This change removes the first two, leaving only the third.
The motivation for this change, aside from simplifying things, is that
we want LLVM to be aware of whether it's operating in FTZ mode, so other
passes can use this information. Ideally we'd have a target-generic
piece of metadata on the module. This change moves us in that
direction.
Reviewers: tra
Subscribers: jholewinski, llvm-commits
Differential Revision: https://reviews.llvm.org/D28700
llvm-svn: 292068
|
| |
|
|
|
|
| |
opposite mask then Select NODE.
llvm-svn: 292066
|
| |
|
|
|
|
|
|
| |
This is uncovered when running tools/dsymutil/X86/empty_range.s.test
with ASAN. Haven't investigate yet, whether that means there is an ODR
violation in that test.
llvm-svn: 292065
|
| |
|
|
| |
llvm-svn: 292064
|
| |
|
|
| |
llvm-svn: 292063
|
| |
|
|
|
|
| |
Commits r291882 and related r291887.
llvm-svn: 292062
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit r291973.
The test fails in a Release build with LLVM_BUILD_GLOBAL_ISEL enabled.
AFAICT, llc segfaults. I'll add a few more details to the original
commit.
llvm-svn: 292061
|
| |
|
|
|
|
|
|
|
|
| |
First, I've moved a test of IVUsers from the LSR tree to a dedicated
IVUsers test directory. I've also simplified its RUN line now that the
new pass manager's loop PM is providing analyses on their own.
No functionality changed, but it makes subsequent changes cleaner.
llvm-svn: 292060
|
| |
|
|
|
|
| |
should not be creating new entries
llvm-svn: 292059
|
| |
|
|
|
|
|
|
|
|
| |
events.
This pass sometimes has a pointer to BlockFrequencyInfo so it needs
custom invalidation logic. It is also otherwise immutable so we can
reduce the number of invalidations that happen substantially.
llvm-svn: 292058
|
| |
|
|
|
|
| |
makes it always true.
llvm-svn: 292057
|
| |
|
|
|
|
| |
addition to _
llvm-svn: 292056
|
| |
|
|
|
|
|
|
|
|
| |
negotiateFunction where appropriate.
Replacing the old ECError with a custom type allows us to attach the name of
the function that could not be negotiated, enabling better diagnostics for
negotiation failures.
llvm-svn: 292055
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a function's CFG when that CFG is unchanged.
This allows transformation passes to simply claim they preserve the CFG
and analysis passes to check for the CFG being preserved to remove the
fanout of all analyses being listed in all passes.
I've gone through and removed or cleaned up as many of the comments
reminding us to do this as I could.
Differential Revision: https://reviews.llvm.org/D28627
llvm-svn: 292054
|
| |
|
|
| |
llvm-svn: 292053
|
| |
|
|
|
|
| |
patterns when VLX is available.
llvm-svn: 292051
|
| |
|
|
|
|
|
|
| |
These all involve bitcasts around the memory operands. This isn't
something we normally do for isel patterns. I suspect DAG combine should
convert the load type making this unnecessary.
llvm-svn: 292050
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This string parameter is passed to -fuse-ld when linking. It can be
an absolute path to your custom linker, otherwise clang will look for
`ld.{name}`.
Reviewers: davide, tejohnson, pcc
Subscribers: llvm-commits, mgorny
Differential Revision: https://reviews.llvm.org/D28738
llvm-svn: 292047
|
| |
|
|
| |
llvm-svn: 292043
|
| |
|
|
|
|
|
|
|
|
| |
This patch adds a new class NameHashTableBuilder which creates /names streams.
This patch contains a test to confirm that a stream created by
NameHashTableBuilder can be read by NameHashTable reader class.
Differential Revision: https://reviews.llvm.org/D28707
llvm-svn: 292040
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
mark it as never invalidated in the new PM.
The old PM already required this to work, and after a discussion with
Hal this seems to really be the only sensible answer. The cache
gracefully degrades as the IR is mutated, and most things which do this
should already be incrementally updating the cache.
This gets rid of a bunch of logic preserving and testing the
invalidation of this analysis.
llvm-svn: 292039
|
| |
|
|
|
|
|
|
|
|
|
| |
cover domtree and alias analysis. These are the pretty clear analyses
that we would always want to survive this pass.
To make these survive, we also need to preserve the assumption cache.
Added a test that verifies the important bits of this preservation.
llvm-svn: 292037
|
| |
|
|
| |
llvm-svn: 292036
|
| |
|
|
| |
llvm-svn: 292035
|
| |
|
|
|
|
|
|
|
|
| |
This fixes some problems when building ClangDiagnostics.cpp on Visual Studio 2017 RC. As far as I understand, there was a change in the implementation of the constructor for std::vector with two iterator parameters, which in our case causes an attempt to dereference const Iterator objects. Since there was no overload for a const Iterator, the compile would fail.
Patch by Hugo Puhlmann!
Differential Revision: https://reviews.llvm.org/D28726
llvm-svn: 292034
|
| |
|
|
|
|
|
| |
Patch by Gonsolo.
Differential Revision: https://reviews.llvm.org/D28731
llvm-svn: 292031
|
| |
|
|
| |
llvm-svn: 292026
|
| |
|
|
| |
llvm-svn: 292025
|
| |
|
|
| |
llvm-svn: 292024
|
| |
|
|
|
|
| |
has landed
llvm-svn: 292023
|
| |
|
|
|
|
| |
VPMADCSWD act as VPADDD( VPMADDWD( x, y ), z ) - multiply+extend+hadd and add to v4i32 accumulator
llvm-svn: 292021
|
| |
|
|
|
|
| |
VPMACSDQH/VPMACSDQL act as VPADDQ( VPMULDQ( x, y ), z ) - multiply+extending either the odd/even 4i32 input elements and adding to v2i64 accumulator
llvm-svn: 292020
|
| |
|
|
|
|
| |
VPMACSWW/VPMACSDD act as add( mul( x, y ), z ) - ignoring any upper bits from both the multiply and add stages
llvm-svn: 292019
|
| |
|
|
|
|
|
|
| |
Tests showing missed opportunities to use XOP's integer fma instructions
Some of these are pretty awkward to match as they often have implicit sext/trunc stages but many just ignore overflow bits which makes things pretty straightforward.
llvm-svn: 292017
|
| |
|
|
| |
llvm-svn: 292014
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Correct handling of the following FileCheck options is implemented in
update_llc_test_checks.py and update_test_checks.py scripts:
1) -check-prefix (with a single dash)
2) -check-prefixes (with multiple prefixes)
Differential Revision: https://reviews.llvm.org/D28572
llvm-svn: 292008
|