| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 319855
|
| |
|
|
|
|
|
|
|
| |
Currently nothing uses this, but this at least gets the core
algorithm in, and adds some test to demonstrate correctness.
Differential Revision: https://reviews.llvm.org/D40736
llvm-svn: 319854
|
| |
|
|
|
|
|
|
| |
the result.
The condition operand should be promoted during operand promotion.
llvm-svn: 319853
|
| |
|
|
|
|
| |
If the mask needs to be promoted that should occur by the legalizer detecting the mask operand needs to be promoted not as a side effect of another action.
llvm-svn: 319852
|
| |
|
|
|
|
| |
If the mask needs to be promoted it should be handled by operand promotion after the result is legalized.
llvm-svn: 319851
|
| |
|
|
|
|
|
|
| |
result type while widening the result. Just widen the mask.
The mask will be promoted if necessary when operands are promoted. It's possible the mask type is legal, but the setcc result type is a different. We shouldn't promote to the setcc result type unless the mask needs to be promoted.
llvm-svn: 319850
|
| |
|
|
|
|
| |
GetWidenedVector does't guarantee the widened elements are zero which would break the intended behavior of the operation.
llvm-svn: 319849
|
| |
|
|
|
|
| |
Lit's env should be used before not. (Another case missed by the previous commit)
llvm-svn: 319848
|
| |
|
|
| |
llvm-svn: 319845
|
| |
|
|
| |
llvm-svn: 319844
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Fixes https://github.com/google/sanitizers/issues/892
Reviewers: eugenis
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D40853
llvm-svn: 319843
|
| |
|
|
| |
llvm-svn: 319842
|
| |
|
|
|
|
| |
leak problem
llvm-svn: 319841
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We currently use target_link_libraries without an explicit scope
specifier (INTERFACE, PRIVATE or PUBLIC) when linking executables.
Dependencies added in this way apply to both the target and its
dependencies, i.e. they become part of the executable's link interface
and are transitive.
Transitive dependencies generally don't make sense for executables,
since you wouldn't normally be linking against an executable. This also
causes issues for generating install export files when using
LLVM_DISTRIBUTION_COMPONENTS. For example, clang has a lot of LLVM
library dependencies, which are currently added as interface
dependencies. If clang is in the distribution components but the LLVM
libraries it depends on aren't (which is a perfectly legitimate use case
if the LLVM libraries are being built static and there are therefore no
run-time dependencies on them), CMake will complain about the LLVM
libraries not being in export set when attempting to generate the
install export file for clang. This is reasonable behavior on CMake's
part, and the right thing is for LLVM's build system to explicitly use
PRIVATE dependencies for executables.
Unfortunately, CMake doesn't allow you to mix and match the keyword and
non-keyword target_link_libraries signatures for a single target; i.e.,
if a single call to target_link_libraries for a particular target uses
one of the INTERFACE, PRIVATE, or PUBLIC keywords, all other calls must
also be updated to use those keywords. This means we must do this change
in a single shot. I also fully expect to have missed some instances; I
tested by enabling all the projects in the monorepo (except dragonegg),
and configuring both with and without shared libraries, on both Darwin
and Linux, but I'm planning to rely on the buildbots for other
configurations (since it should be pretty easy to fix those).
Even after this change, we still have a lot of target_link_libraries
calls that don't specify a scope keyword, mostly for shared libraries.
I'm thinking about addressing those in a follow-up, but that's a
separate change IMO.
Differential Revision: https://reviews.llvm.org/D40823
llvm-svn: 319840
|
| |
|
|
|
|
|
|
|
| |
comparison of symbol names.
SymbolStringPool is a thread-safe string pool that will be used in upcoming Orc
APIs to facilitate efficient storage and fast comparison of symbol name strings.
llvm-svn: 319839
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch allows to use derived pointers (GEPs/bitcasts) of unrelocated
base pointers. We care only about the uses of these derived pointers.
It is acheived by two changes:
1. When we have enough information to say if the pointer is unrelocated at some
point or not, we walk all BBs to remove from their Contributions all valid defs
of unrelocated pointers (GEP with unrelocated base or bitcast of unrelocated
pointer).
2. When it comes to verification we just ignore instructions that were removed
at stage 1.
Patch by Daniil Suchkov!
Reviewers: anna, reames, apilipenko, mkazantsev
Reviewed By: anna, mkazantsev
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D40289
llvm-svn: 319838
|
| |
|
|
|
|
|
|
|
|
| |
As suggested by Eli Friedman, instead of aborting if an overflow check
uses something other than SETEQ or SETNE, simply do not apply the
optimization.
Differential Revision: https://reviews.llvm.org/D39147
llvm-svn: 319837
|
| |
|
|
|
|
|
|
| |
Lit's env should be used before not.
Sean Eveson pointed out the right solution. Thanks!
llvm-svn: 319836
|
| |
|
|
|
|
| |
use comdats for inline entities.
llvm-svn: 319835
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Array subscript is almost always an lvalue, except for a few cases where
it is not, such as a subscript into an Objective-C property, or a
return from the function.
This commit prevents crashing in such cases.
Fixes rdar://34829842
Differential Revision: https://reviews.llvm.org/D40584
llvm-svn: 319834
|
| |
|
|
| |
llvm-svn: 319833
|
| |
|
|
| |
llvm-svn: 319832
|
| |
|
|
| |
llvm-svn: 319831
|
| |
|
|
|
|
|
|
|
| |
This follows the setup used by other runtimes and is expected by
the lit configuration.
Differential Revision: https://reviews.llvm.org/D40820
llvm-svn: 319830
|
| |
|
|
|
| |
NOTE: At the moment these use the WriteLoad/WriteStore classes, which severely underestimates the costs. This needs to be reviewed.
llvm-svn: 319829
|
| |
|
|
|
|
|
|
|
|
| |
This line was mistakenly deleted in rL319813
Add a test for stackpointer relocations.
Differential Revision: https://reviews.llvm.org/D40847
llvm-svn: 319828
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D40741
llvm-svn: 319827
|
| |
|
|
|
|
|
|
| |
This was only searching for explicit defs,
and asserting for any implicit or variadic
instruction defs, like inline asm.
llvm-svn: 319826
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
protecting the stack"
The patch originally broke Chromium (crbug.com/791714) due to its failing to
specify that the new pseudo instructions clobber EFLAGS. This commit fixes
that.
> Summary: This strengthens the guard and matches MSVC.
>
> Reviewers: hans, etienneb
>
> Subscribers: hiraditya, JDevlieghere, vlad.tsyrklevich, llvm-commits
>
> Differential Revision: https://reviews.llvm.org/D40622
llvm-svn: 319824
|
| |
|
|
|
|
|
|
|
| |
These are expected to be set by the shared lit scripts used from
libc++.
Differential Revision: https://reviews.llvm.org/D40817
llvm-svn: 319823
|
| |
|
|
| |
llvm-svn: 319822
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The aim is to make ModRefInfo checks and changes more intuitive
and less error prone using inline methods that abstract the bit operations.
Ideally ModRefInfo would become an enum class, but that change will require
a wider set of changes into FunctionModRefBehavior.
Reviewers: sanjoy, george.burgess.iv, dberlin, hfinkel
Subscribers: nlopes, llvm-commits
Differential Revision: https://reviews.llvm.org/D40749
llvm-svn: 319821
|
| |
|
|
| |
llvm-svn: 319820
|
| |
|
|
|
|
|
|
|
|
|
| |
When folding a shift into a test-under-mask comparison, make sure that
there is no loss of precision when creating the shifted comparison
value. This usually never happens, except for certain always-true
comparisons in unoptimized code.
Fixes PR35529.
llvm-svn: 319818
|
| |
|
|
| |
llvm-svn: 319817
|
| |
|
|
|
|
|
|
|
|
|
| |
The MSVC driver and clang do not link against the C++ runtime
explicitly. Instead, they rely on the auto-linking via the pragma
(through `use_ansi.h`) to link against the correct version of the C++
runtime. Attempt to do something similar here so that linking real C++
code on Windows does not require the user to explicitly specify
`c++.lib` when using libc++ as a C++ runtime on windows.
llvm-svn: 319816
|
| |
|
|
| |
llvm-svn: 319815
|
| |
|
|
|
|
|
| |
Fixed processing of implicitly mapped objects in target-based executable
directives.
llvm-svn: 319814
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This is part of larger change to add synthetic symbols
for section start/end points and init/fini_array:
https://reviews.llvm.org/D40760
Allows synthetic global symbols to have an explicitly set
virtual address.
Differential Revision: https://reviews.llvm.org/D40843
llvm-svn: 319813
|
| |
|
|
| |
llvm-svn: 319812
|
| |
|
|
|
|
|
|
|
|
| |
The runtime will use the global kmp_critical_name as a lock and
tries to atomically store a pointer in there. This will fail
if the global is only aligned by 4 bytes, the size of one int32_t
element. Use a union to ensure the global is aligned to the size
of a pointer on the current platform.
llvm-svn: 319811
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is not currently valid by the wasm spec, however:
- It replaces doing set_global on an immutable global, which is also
not valid.
- It's expected be valid in the near future:
https://github.com/WebAssembly/threads/blob/master/proposals/threads/Globals.md
- This only occurs before linking, so a fully linked object will be
valid.
llvm-svn: 319810
|
| |
|
|
|
|
| |
It can use attrib instead of icacls.
llvm-svn: 319809
|
| |
|
|
|
|
|
|
|
| |
Surprisingly SIOptimizeExecMaskingPreRA can infinite loop
in some case with DBG_VALUE. Most tests using dbg_value are
run at -O0, so don't run this pass. This seems to only
happen when the value argument is undef.
llvm-svn: 319808
|
| |
|
|
|
|
|
|
| |
This uses ConstantRange::makeGuaranteedNoWrapRegion's newly-added handling for subtraction to allow CVP to remove some subtraction overflow checks.
Differential Revision: https://reviews.llvm.org/D40039
llvm-svn: 319807
|
| |
|
|
|
|
|
|
| |
Previously ConstantRange::makeGuaranteedNoWrapRegion only handled addition. This adds support for subtraction.
Differential Revision: https://reviews.llvm.org/D40036
llvm-svn: 319806
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D40771
llvm-svn: 319805
|
| |
|
|
| |
llvm-svn: 319804
|
| |
|
|
|
|
| |
I removed a space at the end of a comment. NFC.
llvm-svn: 319803
|
| |
|
|
|
|
|
|
|
|
| |
The parameter was previously renamed but MSVC path was not updated.
Patch by Andrey Khalyavin.
Differential Revision: https://reviews.llvm.org/D40774
llvm-svn: 319802
|