| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
There are a few instructions provided by the high-word facility (z196)
that we cannot easily exploit for code generation. This patch at least
adds those missing instructions for the assembler and disassembler.
This means that now all nonprivileged instructions up to z13 are
supported by the LLVM assembler / disassembler.
llvm-svn: 306821
|
|
|
|
|
|
|
| |
This reverts commit r306819 which appears be exposing underlying
issues in a stage1 ppc64be build
llvm-svn: 306820
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As discussed in D34087, rewrite areNonVolatileConsecutiveLoads using
generic checks. Also, propagate missing local handling from there to
BaseIndexOffset checks.
Tests of note:
* test/CodeGen/X86/build-vector* - Improved.
* test/CodeGen/BPF/undef.ll - Improved store alignment allows an
additional store merge
* test/CodeGen/X86/clear_upper_vector_element_bits.ll - This is a
case we already do not handle well. Here, the DAG is improved, but
scheduling causes a code size degradation.
Reviewers: RKSimon, craig.topper, spatel, andreadb, filcab
Subscribers: nemanjai, llvm-commits
Differential Revision: https://reviews.llvm.org/D34472
llvm-svn: 306819
|
|
|
|
| |
llvm-svn: 306818
|
|
|
|
| |
llvm-svn: 306817
|
|
|
|
| |
llvm-svn: 306816
|
|
|
|
| |
llvm-svn: 306815
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That may be useful if we want to produce or parse object containing
broken relocation values using yaml2obj/obj2yaml.
Previously that was impossible because only enum values were parsed
correctly, this patch allows to put any numeric value as a
relocation type.
Differential revision: https://reviews.llvm.org/D34758
llvm-svn: 306814
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is PR28414.
Previously LLD was unable to link following:
(failed with undefined symbol bar)
```
Version script:
SOME_VERSION { global: *; };
.global _start
.global bar
.symver _start, bar@@SOME_VERSION
_start:
jmp bar
```
Manual has next description:
//
.symver name, name2@@nodename
In this case, the symbol name must exist and be defined within the file being assembled. It is similar to name2@nodename.
**The difference is name2@@nodename will also be used to resolve references to name2 by the linker**
https://sourceware.org/binutils/docs/as/Symver.html
//
Patch implements that. If we have name@@ver symbol and name is undefined,
name@@ver is used to resolve references to name.
Differential revision: https://reviews.llvm.org/D33680
llvm-svn: 306813
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Current implementation looks a bit confusing. It looks like it should
report/print something on error, but it does not do that.
It silently drops a error message when creating triple, though
this behavior is fine generally.
For example if LLVM configured with -DLLVM_TARGETS_TO_BUILD=ARM and
our host is windows, it is expected that we will be unable to
create "i386-pc-windows-msvc" target.
Patch introduces isConfigurationSupported() function that checks
if current configuration is supported for each test and returns early if not.
llvm-svn: 306812
|
|
|
|
| |
llvm-svn: 306811
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: klimek, chandlerc, mehdi_amini
Reviewed By: klimek, mehdi_amini
Subscribers: mehdi_amini, jlebar, llvm-commits
Differential Revision: https://reviews.llvm.org/D34197
llvm-svn: 306810
|
|
|
|
| |
llvm-svn: 306809
|
|
|
|
| |
llvm-svn: 306808
|
|
|
|
| |
llvm-svn: 306807
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In r301116, a custom lowering needed to be introduced to be able to
legalize 8 and 16-bit divisions on ARM targets without a division
instruction, since 2-step legalization (WidenScalar from 8 bit to 32
bit, then Libcall the 32-bit division) doesn't work.
This fixes this and makes this kind of multi-step legalization, where
first the size of the type needs to be changed and then some action is
needed that doesn't require changing the size of the type,
straighforward to specify.
Differential Revision: https://reviews.llvm.org/D32529
llvm-svn: 306806
|
|
|
|
|
|
|
|
|
|
|
|
| |
This introduces helper functions that set target defines for different ARMV8-A
architecture kinds. It fixes an issue that the v8.1 define ARM_FEATURE_QRDMX
was not set for v8.2. These helper functions make things more “scalable” if we
want to add ARMv8.3 at some point, and a cleanup has been done to hold the
architecture kind in one variable (instead of one for each).
Differential Revision: https://reviews.llvm.org/D34686
llvm-svn: 306805
|
|
|
|
| |
llvm-svn: 306804
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It may be detrimental to vectorize loops with very small trip count, as various
costs of the vectorized loop body as well as enclosing overheads including
runtime tests and scalar iterations may outweigh the gains of vectorizing. The
current cost model measures the cost of the vectorized loop body only, expecting
it will amortize other costs, and loops with known or expected very small trip
counts are not vectorized at all. This patch allows loops with very small trip
counts to be vectorized, but under OptForSize constraints, which ensure the cost
of the loop body is dominant, having no runtime guards nor scalar iterations.
Patch inspired by D32451.
Differential Revision: https://reviews.llvm.org/D34373
llvm-svn: 306803
|
|
|
|
| |
llvm-svn: 306802
|
|
|
|
|
|
| |
~b) --> ~(a ^ b) and its commuted variants.
llvm-svn: 306801
|
|
|
|
|
|
|
|
|
|
| |
match to the RHS match. No meaningful change intended.
There are two conditions ORed here with similar checks and each contain two matches that must be true for the if to succeed. With the commutable match on the first half of the OR then both ifs basically have the same first part and only the second part distinguishs. With this change we move the commutable match to second half and make the first half unique.
This caused some tests to change because we now produce a commuted result, but this shouldn't matter in practice.
llvm-svn: 306800
|
|
|
|
|
|
| |
I had failed to notice the latter existed when I recently introduced the former.
llvm-svn: 306799
|
|
|
|
| |
llvm-svn: 306798
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It served us well, helped kick-start much of the vectorization efforts
in LLVM, etc. Its time has come and past. Back in 2014:
http://lists.llvm.org/pipermail/llvm-dev/2014-November/079091.html
Time to actually let go and move forward. =]
I've updated the release notes both about the removal and the
deprecation of the corresponding C API.
llvm-svn: 306797
|
|
|
|
| |
llvm-svn: 306796
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D34835
llvm-svn: 306795
|
|
|
|
|
|
|
|
| |
This is useful for a testcase in lld.
Differential Revision: https://reviews.llvm.org/D34836
llvm-svn: 306794
|
|
|
|
|
|
|
|
|
| |
expansion"
Segfaults in non-optimized builds. I'll get a stack trace and a
reproducer to Teresa.
llvm-svn: 306793
|
|
|
|
|
|
|
|
|
| |
default."
This still breaks PPC tests we have. I'll forward reproduction
instructions to dehao.
llvm-svn: 306792
|
|
|
|
| |
llvm-svn: 306791
|
|
|
|
|
|
| |
build modes.
llvm-svn: 306790
|
|
|
|
| |
llvm-svn: 306789
|
|
|
|
|
|
|
|
| |
The return of itaniumDemangle is allocated with malloc rather than new[]
and so using unique_ptr isn't called for here. As a note for the future
we should rewrite it to do this.
llvm-svn: 306788
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
basic block vectorizer. This vectorizer has had no known users for many,
many years and is completely surpassed by the normal
'-fvectorize-slp'-controlled SLP vectorizer in LLVM.
Hal proposed this back in 2014 to no objections:
http://lists.llvm.org/pipermail/llvm-dev/2014-November/079091.html
While this patch completely removes the flag, Joerg is working on
a patch that will add it back in a way that warns users and ignores the
flag in a clear and well factored way (so that we can keep doing this
going forward).
Differential Revision: https://reviews.llvm.org/D34846
llvm-svn: 306786
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In rL300494 there was an attempt to deal with excessive compile time on
invocations of getSign/ZeroExtExpr using local caching. This approach only
helps if we request the same SCEV multiple times throughout recursion. But
in the bug PR33431 we see a case where we request different values all the time,
so caching does not help and the size of the cache grows enormously.
In this patch we remove the local cache for this methods and add the recursion
depth limit instead, as we do for arithmetics. This gives us a guarantee that the
invocation sequence is limited and reasonably short.
Differential Revision: https://reviews.llvm.org/D34273
llvm-svn: 306785
|
|
|
|
|
|
|
|
|
|
| |
The failure is:
C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\unittests\ProfileData\CoverageMappingTest.cpp(244):
error C2668: 'llvm::make_unique': ambiguous call to overloaded function
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/3489/
llvm-svn: 306784
|
|
|
|
| |
llvm-svn: 306783
|
|
|
|
| |
llvm-svn: 306782
|
|
|
|
| |
llvm-svn: 306781
|
|
|
|
|
|
|
|
| |
a null terminated string and not a single character.
Fixes an error in tcmalloc sized delete checking.
llvm-svn: 306780
|
|
|
|
| |
llvm-svn: 306779
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
DFS InOut numbers currently get eagerly computer upon DomTree construction. They are only needed to answer dome dominance queries and they get invalidated by updates and recalculations. Because of that, it is faster in practice to compute them lazily when they are actually needed.
Clang built without this patch takes 6m 45s to boostrap on my machine, and with the patch applied 6m 38s.
Reviewers: sanjoy, dberlin, chandlerc
Reviewed By: dberlin
Subscribers: davide, llvm-commits
Differential Revision: https://reviews.llvm.org/D34296
llvm-svn: 306778
|
|
|
|
| |
llvm-svn: 306777
|
|
|
|
|
|
|
|
|
|
| |
These overloads are essentially dead, and pose a maintenance cost
without adding any benefit. This is coming up now because I'd like to
experiment with changing the way we store coverage mapping data, and
would rather not have to fix up the old overloads while doing so.
Testing: check-{llvm,profile}, build clang.
llvm-svn: 306776
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Add new builtins for throw/rethrow instructions. This follows exception handling
handling proposal in
https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md
Reviewers: sunfish, dschuff
Reviewed By: dschuff
Subscribers: jfb, dschuff, sbc100, jgravelle-google
Differential Revision: https://reviews.llvm.org/D34783
llvm-svn: 306775
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This adds backend support for throw, rethrow, try, and try_end instructions.
This needs the corresponding clang builtin support:
https://reviews.llvm.org/D34783
This follows the Wasm exception handling proposal in
https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md
Reviewers: sunfish, dschuff
Reviewed By: dschuff
Subscribers: jfb, sbc100, jgravelle-google
Differential Revision: https://reviews.llvm.org/D34826
llvm-svn: 306774
|
|
|
|
|
|
|
|
|
|
|
| |
NSSetM has two in-memory representations depending on what Foundation version is in use.
This patch separates the two.
rdar://33057292
Differential Revision: https://reviews.llvm.org/D34821
llvm-svn: 306773
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D34852
llvm-svn: 306772
|
|
|
|
|
|
|
|
| |
Reviewer: dblaikie
Differential revision: https://reviews.llvm.org/D34765
llvm-svn: 306771
|