| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
constant 0 is considered a possible null pointer
I can't reproduce this so far with web compilers, so throwing this at
the bots to see if it sticks.
llvm-svn: 292155
|
| |
|
|
|
|
|
|
|
| |
Generally, the ISEL is expanded into if-then-else sequence, in some
cases (like when the destination register is the same with the true
or false value register), it may just be expanded into just the if
or else sequence.
llvm-svn: 292154
|
| |
|
|
|
|
|
|
| |
It's not clear what 'First' and 'Second' mean, so use 'Inner' and 'Outer'
to match foldShiftedShift() and add comments with formulas, so it's easier
to see what's going on.
llvm-svn: 292153
|
| |
|
|
| |
llvm-svn: 292152
|
| |
|
|
|
|
|
|
| |
constants
Some existing 'FIXME' tests are still not folded because of splat holes in value tracking.
llvm-svn: 292151
|
| |
|
|
|
|
|
| |
The shift-shift possibilities became easier to see after:
https://reviews.llvm.org/rL292145
llvm-svn: 292150
|
| |
|
|
| |
llvm-svn: 292149
|
| |
|
|
|
|
|
|
|
|
|
| |
Fixes:
Warning, treated as error:
/home/buildbot/llvm-build-dir/llvm-sphinx-docs/llvm/src/docs/NVPTXUsage.rst:333:
ERROR: Error in "code-block" directive:
maximum 1 argument(s) allowed, 17 supplied.
llvm-svn: 292148
|
| |
|
|
|
|
|
|
|
| |
This feature is currently not supported and an explicit assert to prevent the
introduction of such accesses has been added in r282893. This test case allows
to reproduce the assert (and without the assert the miscompile) added in
r282893. It will help when adding such support at some point.
llvm-svn: 292147
|
| |
|
|
|
|
|
|
|
|
|
|
| |
LLD exports symbols that are also present in used shared libraries to
make sure they are preempted at runtime. That is a reasonable default,
but we must allow for it to be overwritten with linker script. If we
don't, libraries that expect to be able to hide a c++ delete operator
will fail.
This should fix the firebird build.
llvm-svn: 292146
|
| |
|
|
|
|
| |
Reduces code duplication and makes it easier to extend these folds for vectors.
llvm-svn: 292145
|
| |
|
|
|
|
| |
through a packss/packus truncation
llvm-svn: 292144
|
| |
|
|
|
|
|
|
|
| |
std::to_string is not available in the android ndk. Using llvm::to_string
instead.
Committing as obvious.
llvm-svn: 292143
|
| |
|
|
|
|
|
|
|
|
| |
Falkor only partially implements the ARMv8.1a extensions, so this patch
refactors the support for the SQRDML[A|S]H instruction into a separate
feature.
Differential Revision: https://reviews.llvm.org/D28681
llvm-svn: 292142
|
| |
|
|
|
|
|
|
| |
std::to_string is not available in the android NDK. Use llvm::to_string instead.
Committing as obvious.
llvm-svn: 292141
|
| |
|
|
|
|
|
|
|
| |
Before this change, this code has been mixed with a check for non-affine
loops (and when originally introduce was also duplicated). By creating
a separate loop and explicitly documenting this property, the current
behavior becomes a lot more clear.
llvm-svn: 292140
|
| |
|
|
| |
llvm-svn: 292139
|
| |
|
|
|
|
|
| |
The loop body in buildAliasGroups is still too large to easily scan it. Hence,
we split the loop body out into a separate function to improve readability.
llvm-svn: 292138
|
| |
|
|
|
|
|
|
|
|
|
| |
Instead of modifying the original alias group and repurposing it as read-write
access group when splitting accesses in read-only and read-write accesses, we
just keep all three groups: the original alias group, the set of read-only
accesses and the set of read-write accesses. This allows us to remove some
complicated iterator handling and also allows for more code-reuse in
calculateMinMaxAccess.
llvm-svn: 292137
|
| |
|
|
|
|
|
|
|
| |
Information'...
Several buildbots encountered a crash in tablegen when building this commit.
Reverting while I investigate the cause.
llvm-svn: 292136
|
| |
|
|
|
|
| |
dynamic-exception specs. Also, remove a FIXME workaround from the config that allowed these tests to work under C++17. This addresses PR#31621.
llvm-svn: 292135
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch refactors code that calls codegen for target regions. Currently
the codebase only supports the 'target' directive. The patch pulls out
common target processing code into a static function that can be called
by codegen for any target directive.
Reviewers: ABataev
Differential Revision: https://reviews.llvm.org/D28752
llvm-svn: 292134
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When transferring affected values in the cache from an old value, identified by
the value of the current callback, to the specified new value we might need to
insert a new entry into the DenseMap which constitutes the cache. Doing so
might delete the current callback object. Move the copying logic into a new
function, a member of the assumption cache itself, so that we don't run into UB
should the callback handle itself be removed mid-copy.
Differential Revision: https://reviews.llvm.org/D28749
llvm-svn: 292133
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Adds a RegisterBank tablegen class that can be used to declare the register
banks and an associated tablegen pass to generate the necessary code.
Reviewers: t.p.northover, ab, rovka, qcolombet
Subscribers: aditya_nandakumar, rengolin, kristof.beyls, vkalintiris, mgorny, dberris, llvm-commits, rovka
Differential Revision: https://reviews.llvm.org/D27338
llvm-svn: 292132
|
| |
|
|
|
|
| |
This reverts commit 1d0e0374438ca6e153844c683826ba9b82486bb1.
llvm-svn: 292131
|
| |
|
|
| |
llvm-svn: 292130
|
| |
|
|
|
|
|
|
|
| |
Generally, the ISEL is expanded into if-then-else sequence, in some
cases (like when the destination register is the same with the true
or false value register), it may just be expanded into just the if
or else sequence.
llvm-svn: 292128
|
| |
|
|
|
|
| |
allocated locally.
llvm-svn: 292127
|
| |
|
|
|
|
|
|
|
| |
It seems over time we added an additional map that maps from the base address
of a read-only access to the actual access. However this map is never used.
Drop the creation and use of this map to simplify our alias check generation
code.
llvm-svn: 292126
|
| |
|
|
|
|
|
|
| |
The alias group will anyhow be cleared at the end of this function and is not
used afterwards. We avoid an explicit clear() call at multiple places to
improve readability of this code.
llvm-svn: 292125
|
| |
|
|
| |
llvm-svn: 292124
|
| |
|
|
| |
llvm-svn: 292123
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Hoisting small vectors out of a loop seems to be a pure performance
optimization, which is unlikely to have great impact in practice. As this
hoisting just increases code-complexity, we fold the SmallVectors back into
the loop.
In subsequent commits, we will further simplify and structure this code, but
we committed this change separately to provide an explanation to make clear
that we purposefully reverted this optimization.
llvm-svn: 292122
|
| |
|
|
|
|
|
| |
The function buildAliasGroups got very large. We extract out the splitting
of alias groups to reduce its size and to better document the current behavior.
llvm-svn: 292121
|
| |
|
|
|
|
|
|
| |
The function buildAliasGroups got very large. We extract out the actual
construction of alias groups to reduce its size and to better document the
current behavior.
llvm-svn: 292120
|
| |
|
|
|
|
| |
seems to have been a C&P error from old GCC specs for OpenBSD.
llvm-svn: 292119
|
| |
|
|
| |
llvm-svn: 292118
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Permit explicit $fcc<X> operand in c.cond.fmt instruction.
Add c.cond.fmt to the MIPS to microMIPS instruction mapping table.
Check that $fcc1 - $fcc7 are unusable for MIPS-I to MIPS-III for
c.cond.fmt, bc1t, bc1f.
Reviewers: seanbruno, zoran.jovanovic, vkalintiris
Differential Revision: https://reviews.llvm.org/D24510
llvm-svn: 292117
|
| |
|
|
| |
llvm-svn: 292116
|
| |
|
|
| |
llvm-svn: 292115
|
| |
|
|
|
|
| |
We were relying on constant folding of the legalized instructions to do what constant folding we had previously
llvm-svn: 292114
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Add missing flag to UsersManual
It would be good to merge it to 4.0 branch.
Reviewers: hans
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D28727
llvm-svn: 292112
|
| |
|
|
| |
llvm-svn: 292111
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
aaaaaaaaaaaaaaaaaa(aaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa::
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaaaaaaaaaaa);
After:
aaaaaaaaaaaaaaaaaa(aaaaaaaa,
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa::
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaaaaaaaaaaa);
No new test cases, as the existing ones cover this fairly well.
llvm-svn: 292110
|
| |
|
|
|
|
| |
I've missed a couple of updates. NFC.
llvm-svn: 292109
|
| |
|
|
|
|
|
|
|
|
|
| |
configuration
NFC.
Differential revision: https://reviews.llvm.org/D28610
Reviewers: EricWF
llvm-svn: 292108
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We have already refactored the underlying platform thread type into
__libcpp_thread_t, but there are few places in the source where we
still assume it is an integral type.
This patch refactores those points back into the threading API.
Differential revision: https://reviews.llvm.org/D28608
Reviewers: EricWF
llvm-svn: 292107
|
| |
|
|
|
|
|
|
|
| |
The unit test I added in the previous commit discovered a bug in
PrependPathComponent on windows -- it was calling SetFile with the host native
path syntax, whereas it should be explicitly specifying the path syntax (as
AppendPathComponent does). This fixes it.
llvm-svn: 292106
|
| |
|
|
|
|
|
|
| |
There is no point in regularly committing a binary file to the repository, as
this just unnecessarily increases the repository size. Interested people can
find the isl manual for example at isl.gforge.inria.fr/manual.pdf.
llvm-svn: 292105
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The same as https://reviews.llvm.org/rL292102,
fixes next testcases under msvs2015/win32:
25> Failing Tests (3):
25> lld :: COFF/lldmap.test
25> lld :: COFF/weak-external.test
25> lld :: COFF/weak-external3.test
llvm-svn: 292104
|