| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
For shrinking SOPK instructions, we were creating a hint to tell the
register allocator to use the register allocated for src0 for the dst
operand as well. However, this seems to not work sometimes depending
on the order virtual registers are assigned physical registers.
To fix this, I've added a second allocation hint which does the reverse,
asks that the register allocated for dst is used for src0.
Reviewers: arsenm
Subscribers: arsenm, llvm-commits, kzhuravl
Differential Revision: https://reviews.llvm.org/D23862
llvm-svn: 279968
|
|
|
|
| |
llvm-svn: 279967
|
|
|
|
|
|
|
| |
There is no lit feature 'X86' so this test is just disabled completely.
Make it XFAIL until a solution is found.
llvm-svn: 279966
|
|
|
|
|
|
| |
MC itself never needs to know about these sections.
llvm-svn: 279965
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: A follow-up fix on r279958.
Reviewers: bkramer
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D23989
llvm-svn: 279964
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The SILoadStoreOptimizer will need to use AliasAnalysis here in order to
move it before scheduling.
Reviewers: arsenm
Subscribers: arsenm, llvm-commits, kzhuravl
Differential Revision: https://reviews.llvm.org/D23813
llvm-svn: 279963
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
macro.
If there were several nested statements arranged in a way that all of them
end up with the same macro, then the expansion of this macro was assigned
with all the corresponding counters of these statements.
As a result, the wrong counter value was shown for the macro in llvm-cov.
This patch fixes the issue by preventing adding a counter for an expanded
source range if it already has an assigned counter, which is expected
to come from the most specific statement.
Differential Revision: https://reviews.llvm.org/D23160
llvm-svn: 279962
|
|
|
|
|
|
|
|
|
| |
The problem occurs when the Node doesn't updated in place , UpdateNodeOperation() return the node that already exist.
In this case assert fail in PromoteIntegerOperand() , N have 2 results ( val + chain).
Differential Revision: http://reviews.llvm.org/D23756
llvm-svn: 279961
|
|
|
|
|
|
|
|
| |
TEST sequence.
Differential Revision: http://reviews.llvm.org/D23490
llvm-svn: 279960
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: A follow-up fixing on http://llvm.org/viewvc/llvm-project?view=revision&revision=279905.
Reviewers: bkramer
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D23985
llvm-svn: 279959
|
|
|
|
|
|
|
|
| |
create a ConstantFPSDNode and let that be lowered.
This allows broadcast loads to used when available.
llvm-svn: 279958
|
|
|
|
|
|
| |
integer operations when DQI isn't supported. This is consistent with the recent changes to promote logical operations to i64 vectors.
llvm-svn: 279957
|
|
|
|
| |
llvm-svn: 279956
|
|
|
|
|
|
|
|
|
|
|
| |
This assignment operator was previously broken since the SFINAE always resulted
in substitution failure. This caused assignments to turn into
copy construction + assignment.
This patch was originally committed as r279953 but was reverted due to warnings
in the test-suite. This new patch corrects those warnings.
llvm-svn: 279955
|
|
|
|
|
|
|
| |
The test emits warnings causing the test-suite to fail. Since I want this
patch merged into 3.9 I'll recommit it with a clean test.
llvm-svn: 279954
|
|
|
|
|
|
|
|
| |
This assignment operator was previously broken since the SFINAE always resulted
in substitution failure. This caused assignments to turn into
copy construction + assignment.
llvm-svn: 279953
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
switch to using one indirect stub manager per logical dylib rather than one per
input module.
LogicalDylib is a helper class used by the CompileOnDemandLayer to manage
symbol resolution between modules during lazy compilation. In particular, it
ensures that internal symbols resolve correctly even in the case where multiple
input modules contain the same internal symbol name (which must to be promoted
to external hidden linkage so that functions in any given module can be split
out by lazy compilation). LogicalDylib's resolution scheme (before this commit)
required one stub-manager per input module. This made recompilation of functions
(by adding a module containing a new definition) difficult, as the stub manager
for any given symbol was bound to the module that supplied the original
definition. By using one stubs manager for the whole logical dylib symbols can
be more easily replaced, although support for doing this is not included in this
patch (it will be implemented in a follow up).
llvm-svn: 279952
|
|
|
|
| |
llvm-svn: 279951
|
|
|
|
| |
llvm-svn: 279950
|
|
|
|
|
|
| |
Will be fixed in a future commit.
llvm-svn: 279949
|
|
|
|
|
|
|
|
| |
This patch implements the std::sample function added to C++17 from LFTS. It
also removes the std::experimental::sample implementation which now forwards
to std::sample.
llvm-svn: 279948
|
|
|
|
|
|
|
|
|
|
|
| |
Libc++'s implementation of shuffle and sample already support lvalue and rvalue
RNG's. This patch adds tests for both categories and marks the issue as complete.
This patch also contains drive-by change for std::experimental::sample which
improves the diagnostics produced when the correct iterator categories are
not supplied.
llvm-svn: 279947
|
|
|
|
|
|
|
|
|
| |
Add the "explicit" specifier to the single-argument constructor of
SimpleTypoCorrector. Reorder the fields to remove excessive padding (8 bytes).
Patch by Alexander Shaposhnikov!
llvm-svn: 279946
|
|
|
|
| |
llvm-svn: 279945
|
|
|
|
| |
llvm-svn: 279944
|
|
|
|
| |
llvm-svn: 279943
|
|
|
|
| |
llvm-svn: 279942
|
|
|
|
|
|
|
|
|
| |
When the unwinder is built without WMMX support, if we encounter a WMMX register
virtual operation, early rather than attempting to continue as we would not have
saved the register set anyways. This should never come down this path, but,
just in case, help it abort more explicitly.
llvm-svn: 279941
|
|
|
|
| |
llvm-svn: 279940
|
|
|
|
| |
llvm-svn: 279939
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch (and commit summary) mirror r279675 by Chris B which was applied
to libc++ but not libc++abi.
Summary:
The point of this patch is to have a consistent convention for naming build,
check and install targets so that the targets can be constructed from the
project name.
This change renames a bunch of CMake components and targets from libcxxabi to
cxxabi. For each renamed target I've added a convenience target that matches
the old target name and depends on the new target. This will preserve function
of the old targets so that the change doesn't break the world. We can evaluate
if it is worth removing the extra targets later.
llvm-svn: 279938
|
|
|
|
|
|
| |
constant vectors
llvm-svn: 279937
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch applies changes similar to those in r279515 to libc++abi.
Summary of changes in this patch:
* Renamed variable LLVM_CONFIG -> LLVM_CONFIG_PATH
* Renamed variable LIBCXXABI_BUILT_STANDALONE -> LIBCXXABI_STANDALONE_BUILD
* Add an include of AddLLVM in the tests subdirectory for add_lit_testsuite.
llvm-svn: 279936
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we're running tests under ASAN or MSAN, they're compiled with -O1, which
enables tail call elimination. This causes backtrace_test to fail: the compiler
performs tail call elimination for call3_nothrow, but it can't for call3_throw,
leading to a mismatched frame count. Disable tail call elimination (and
inlining, just to be explicit) to avoid this.
Patch by Shoaib Meenai!
llvm-svn: 279935
|
|
|
|
|
|
|
|
|
|
| |
number of vector elements
Over eager combing prevents the correct folding of writemasks.
At the moment this occurs for ALL EVEX shuffles, in the future we need to check that the user of the root shuffle is a VSELECT that can fold to a writemask.
llvm-svn: 279934
|
|
|
|
|
|
| |
Implement lowering for atomicrmw min/max/umin/umax. Fixes PR28818.
llvm-svn: 279933
|
|
|
|
|
|
|
|
|
| |
Studio."
This reverts r279931. Will try it with the same Visual Studio version
before committing again.
llvm-svn: 279932
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This commit sets up the infrastructure to use reified error
descriptions, and moves ReportStackOverflow to the new system.
After we convert all the errors, we'll be able to simplify ScopedInErrorReport
and remove the older debugging mechanism which had some errors partly reified
in some way. We'll be able to maintain the external API.
ScopedInErrorReport will be able to track one of the reified errors at a time.
The purpose of this is so we have its destructor actually print the error and
possibly interface with the debugger (will depend on the platform, of course).
Reviewers: kcc, samsonov, timurrrr
Subscribers: kubabrecka, llvm-commits
Differential Revision: https://reviews.llvm.org/D23672
llvm-svn: 279931
|
|
|
|
|
|
|
|
|
| |
Fixed a bug in run-time checks for possible memory conflicts inside loop.
The bug is in Low <-> High boundaries calculation. The High boundary should be calculated as "last memory access pointer + element size".
Differential revision: https://reviews.llvm.org/D23176
llvm-svn: 279930
|
|
|
|
|
|
|
|
|
|
| |
AVX512F/AVX512VL.
Previously we weren't creating masked logical operations if bitcasts appeared between the logic operation and the select. The IR optimizers can move bitcasts across logic operations and create these cases. To minimize the number of cases we need to handle, this change promotes all logic ops to an i64 vector type just like when only SSE or AVX is available.
Unfortunately, this also has the consequence of making it difficult to select unmasked VPANDD/VPORD/VPXORD in all the cases it was previously used. This is the cause of most of the test change. This shouldn't result in any functional change though.
llvm-svn: 279929
|
|
|
|
|
|
|
|
| |
are bitcasts between the logic op and the select.
This is taken from optimized IR of clang test cases for masked logic ops.
llvm-svn: 279928
|
|
|
|
|
|
| |
instructions instead of ending 128/256. NFC
llvm-svn: 279927
|
|
|
|
|
|
|
|
|
|
| |
Similar to rL242623, move C++ version checks outside of _NOEXCEPT_()
macro invocation argument lists, to avoid "embedding a directive within
macro arguments has undefined behavior" warnings.
Differential Revision: https://reviews.llvm.org/D23961
llvm-svn: 279926
|
|
|
|
|
|
|
|
| |
Fix and improve tests
Differential Revision: https://reviews.llvm.org/D23899
llvm-svn: 279925
|
|
|
|
|
|
| |
REX.X or REX.R bits. It's old name conflicted with a function in X8II namespace that doesnt' quite do the same thing. NFC
llvm-svn: 279924
|
|
|
|
|
|
| |
already found a register that requires a REX prefix. Otherwise we don't error if a high byte register is used after SPL/BPL/DIL/SIL.
llvm-svn: 279923
|
|
|
|
|
|
| |
more consistent with its name and simplifies assembler code.
llvm-svn: 279922
|
|
|
|
|
|
| |
for CR8-CR15.
llvm-svn: 279921
|
|
|
|
|
|
|
| |
There was some code that was ifdef'ed out that I didn't catch
in my earlier patch.
llvm-svn: 279920
|
|
|
|
|
|
|
|
| |
These are helpful on their own, but will be even more useful
once the GetNameColonValue is updated to return StringRefs
instead of std::strings.
llvm-svn: 279919
|