| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Allows us to correctly fall through to the lower AVX1 costs if look up failed.
llvm-svn: 291353
|
|
|
|
|
|
| |
order. NFCI.
llvm-svn: 291352
|
|
|
|
|
|
|
| |
congruence classes for stores, and then keep them up to date. Add
testcases.
llvm-svn: 291351
|
|
|
|
|
|
| |
v64i8 shuffles (PR31470)
llvm-svn: 291347
|
|
|
|
|
|
| |
This change should have been commit as part of r291340.
llvm-svn: 291341
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tar's Ustar header has the "prefix" field to store a directory
part of a filename. It is not as flexible as the PAX-extended
filename because there's still a limitation on the maximum filename
size, but it mitigates the situation.
This patch should unbreak some Windows buildbots that uses very
old tar command.
llvm-svn: 291340
|
|
|
|
|
|
| |
size is smaller than the register size so unfolding would increase the load size.
llvm-svn: 291338
|
|
|
|
| |
llvm-svn: 291335
|
|
|
|
| |
llvm-svn: 291334
|
|
|
|
| |
llvm-svn: 291328
|
|
|
|
|
|
|
|
| |
Gracefully leave code that performs function-pointer bitcasts implying
non-trivial pointer conversions alone, rather than aborting, since it's
just undefined behavior.
llvm-svn: 291326
|
|
|
|
| |
llvm-svn: 291324
|
|
|
|
|
|
|
|
|
|
|
| |
the pass.
Also move command line handling out of the pass constructor and into
a separate function.
Differential Revision: https://reviews.llvm.org/D28422
llvm-svn: 291323
|
|
|
|
|
|
|
| |
Without the parentheses, clang would emit warnings while compiling the
code.
llvm-svn: 291320
|
|
|
|
|
|
|
|
|
|
|
|
| |
WebAssembly requires caller and callee signatures to match exactly. In LLVM,
there are a variety of circumstances where signatures may be mismatched in
practice, and one can bitcast a function address to another type to call it
as that type. This patch adds a pass which replaces bitcasted function
addresses with wrappers to replace the bitcasts.
This doesn't catch everything, but it does match many common cases.
llvm-svn: 291315
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: LLVM's non-standard notion of phi nodes means we can't both try to substitute for undef in phi nodes *and* use phi nodes as leaders all the time. This changes NewGVN to use the same semantics as SimplifyPHINode to decide which phi nodes are equivalent.
Reviewers: davide
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28312
llvm-svn: 291308
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
r285871 introduced an assert that was overly aggressive in the case
of a same-named local in different same-named files (in different
directories), where the source name and therefore the GUID ended up
the same because the files were compiled in their own directory without
any leading path. Change the handling in the promotion logic to get
the summary for the version in that module.
This also exposed an issue where we are not always importing the
right copy, which is a performance not correctness issue (because
the renaming is based on the module hash which must be different,
see the bug report for details). I will fix that as a follow-on.
Fixes PR31561.
Reviewers: mehdi_amini
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28411
llvm-svn: 291304
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
In order to simplify distributed build system integration, where actions
may be scheduled before the Thin Link which determines the list of
objects selected by the linker. The gold plugin currently will emit
0-sized index files for objects not selected by the link, to enable
checking for expected output files by the build system. If the build
system then schedules a backend action for these bitcode files, we want
to be able to fall back to normal compilation instead of failing.
This is the LLVM side support for optionally enabling fallback
instead of issuing an error. Return a null CombinedIndex from
llvm::getModuleSummaryIndexForFile under the option when the file
is empty. Clang can then ignore the index when it is null.
Clang patch is D28362.
Reviewers: mehdi_amini
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28410
llvm-svn: 291302
|
|
|
|
|
|
| |
minor fixes (NFC).
llvm-svn: 291297
|
|
|
|
|
|
| |
We know that udiv %V, C can be optimized away to 0 if %V is ult C.
llvm-svn: 291296
|
|
|
|
|
|
|
|
| |
This flag is used to track global registration in Mach-O and it doesn't need to be exported and visible.
Differential Revision: https://reviews.llvm.org/D28250
llvm-svn: 291289
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Fix use after free in LoopUnswitch
Reviewers: chenli, atrick, hfinkel, mzolotukhin
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28412
llvm-svn: 291288
|
|
|
|
|
|
| |
We know that urem %V, C can be optimized away to %V if %V is ult C.
llvm-svn: 291282
|
|
|
|
|
|
|
|
|
|
|
| |
This is fixing a bug where Loop Vectorization is widening a load but
with a lower alignment. Hoisting the load without propagating the alignment
will allow inst-combine to later deduce a higher alignment that what the pointer
actually is.
Differential Revision: https://reviews.llvm.org/D28408
llvm-svn: 291281
|
|
|
|
|
|
|
|
| |
This will make transition to SCRATCH_MEMORY easier
Differential Revision: https://reviews.llvm.org/D24746
llvm-svn: 291279
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-apply r288561: This time with a fix where the ADDs that are part of a
3 instruction LOH would not invalidate the "LastAdrp" state. This fixes
http://llvm.org/PR31361
Previously this pass was using up to 5% compile time in some cases which
is a bit much for what it is doing. The pass featured a full blown
data-flow analysis which in the default configuration was restricted to a
single block.
This rewrites the pass under the assumption that we only ever work on a
single block. This is done in a single pass maintaining a state machine
per general purpose register to catch LOH patterns.
Differential Revision: https://reviews.llvm.org/D27329
This reverts commit 9e6cedb0a4f14364d6511597a9160305e7d34493.
llvm-svn: 291266
|
|
|
|
|
|
|
|
|
|
| |
LICM in
order to avoid jumpy line tables. Calls are left alone because they may be inlined.
Differential Revision: https://reviews.llvm.org/D28390
llvm-svn: 291258
|
|
|
|
|
|
|
|
| |
This usage of strcpy and snprintf was certainly safe, but using them
sets off various deprecation and lint warnings. Easier to just write the
belt and suspenders version.
llvm-svn: 291256
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D28403
llvm-svn: 291254
|
|
|
|
|
|
| |
Early step towards ignoring domain above a certain shuffle depth.
llvm-svn: 291248
|
|
|
|
| |
llvm-svn: 291246
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D27732
llvm-svn: 291245
|
|
|
|
|
|
| |
The AVX1-only limit is never actually required in matchUnaryVectorShuffle
llvm-svn: 291244
|
|
|
|
| |
llvm-svn: 291240
|
|
|
|
|
|
| |
All callers of getTargetVShiftNode have access to X86Subtarget already so pass it along instead of re-extracting it.
llvm-svn: 291239
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Previously we only supported constant-masked loads and stores.
Reviewers: kcc, RKSimon, pgousseau, gbedwell, vitalybuka
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28370
llvm-svn: 291238
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
I've noticed that these assertions don't trigger when the condition is false.
The problem is that the DEBUG(x) macro only executes x when the pass is
emitting debug output via the -debug and -debug-only=registerbankinfo command
line arguments.
Debug builds should always execute the assertions so use '#ifndef NDEBUG' instead.
Also removed an assertion that is only true the first time it's tested. <Target>RegisterBankInfo's constructor will re-use register banks causing them to be valid on subsequent tests. That
assertion will fail on the first test too in the near future.
Reviewers: t.p.northover, ab, rovka, qcolombet
Subscribers: dberris, llvm-commits, kristof.beyls
Differential Revision: https://reviews.llvm.org/D28358
llvm-svn: 291235
|
|
|
|
|
|
| |
Set the costs on the lowest target that supports the type.
llvm-svn: 291229
|
|
|
|
|
|
|
|
| |
We use PAX headers to store long filenames (>= 100 bytes).
It is not needed to emit PAX headers if filenames fit in the
Ustar header. This patch implements that optimization.
llvm-svn: 291215
|
|
|
|
| |
llvm-svn: 291214
|
|
|
|
|
|
| |
Utilize ConstantRange to make it easier to interpret range metadata.
llvm-svn: 291211
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In LLD, we create cpio archive files for --reproduce command.
cpio was not a bad choice because it is very easy to create, but
it was sometimes hard to use because people are not familiar with
cpio command.
I noticed that creating a tar archive isn't as hard as I thought.
So I implemented it in this patch.
Differential Revision: https://reviews.llvm.org/D28091
llvm-svn: 291209
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 63165f6ae3bac1623be36d4b3ce63afa1d51a30a.
After making this change, I discovered that _Unwind_Backtrace is
unable to unwind past a signal handler after an assertion failure.
I filed a bug report about that issue in rdar://29866587 but even if
we get a fix soon, it will be awhile before it get released.
llvm-svn: 291207
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change separates how type identifiers are resolved from how intrinsic
calls are lowered. All information required to lower an intrinsic call
is stored in a new TypeIdLowering data structure. The idea is that this
data structure can either be initialized using the module itself during
regular LTO, or using the module summary in ThinLTO backends.
Differential Revision: https://reviews.llvm.org/D28341
llvm-svn: 291205
|
|
|
|
| |
llvm-svn: 291201
|
|
|
|
|
|
| |
warnings; other minor fixes (NFC).
llvm-svn: 291197
|
|
|
|
|
|
|
|
| |
We used the logBase2 of the high instead of the ceilLogBase2 resulting
in the wrong result for certain values. For example, it resulted in an
i1 AssertZExt when the exclusive portion of the range was 3.
llvm-svn: 291196
|
|
|
|
| |
llvm-svn: 291195
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D28303
llvm-svn: 291194
|
|
|
|
| |
llvm-svn: 291193
|