| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 227470
|
| |
|
|
|
|
| |
copy-pasto in tests
llvm-svn: 227468
|
| |
|
|
| |
llvm-svn: 227466
|
| |
|
|
|
|
| |
fuzzer library based on LLVM_USE_SANITIZE_COVERAGE being set or unset.
llvm-svn: 227464
|
| |
|
|
| |
llvm-svn: 227463
|
| |
|
|
| |
llvm-svn: 227462
|
| |
|
|
|
|
| |
The schedule model is not complete yet, and could be improved.
llvm-svn: 227461
|
| |
|
|
| |
llvm-svn: 227460
|
| |
|
|
|
|
|
|
|
|
|
| |
For large stack offsets the compiler generates multiple immediate mode
sub/add instructions in the prologue/epilogue. This patch makes the
compiler place the final amount to be added/subtracted into a register,
which is then added/substracted with a single operation.
Differential Revision: http://reviews.llvm.org/D7226
llvm-svn: 227458
|
| |
|
|
|
|
| |
i32 instead of i1.
llvm-svn: 227457
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Patch by Nemanja Ivanovic.
As was uncovered by the failing test case (when run on non-PPC
platforms), the feature set when compiling with -march=ppc64le was not
being picked up. This change ensures that if the -mcpu option is not
specified, the correct feature set is picked up regardless of whether
we are on PPC or not.
llvm-svn: 227455
|
| |
|
|
|
|
| |
for MSVC users. This reverts: 227445, 227395, 227389, 227357, 227254, 227252
llvm-svn: 227452
|
| |
|
|
|
|
| |
Visual Studio.
llvm-svn: 227445
|
| |
|
|
|
|
| |
Patch by Robin Eklind!
llvm-svn: 227442
|
| |
|
|
| |
llvm-svn: 227441
|
| |
|
|
|
|
|
| |
Only the specific ones (MergeableConst4, MergeableConst8, MergeableConst16) are
handled specially.
llvm-svn: 227440
|
| |
|
|
|
|
|
|
|
| |
reroll() was slightly monolithic and a pain to modify. Refactor
a bunch of its state from local variables to member variables
of a helper class, and do some trivial simplification while we're
there.
llvm-svn: 227439
|
| |
|
|
|
|
| |
While there modernize some loops. NFC.
llvm-svn: 227436
|
| |
|
|
| |
llvm-svn: 227435
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ELF has support for sections that can be split into fixed size or
null terminated entities.
Since these sections can be split by the linker, it is not necessary
to split them in codegen.
This reduces the combined .o size in a llvm+clang build from
202,394,570 to 173,819,098 bytes.
The time for linking clang with gold (on a VM, on a laptop) goes
from 2.250089985 to 1.383001792 seconds.
The flip side is the size of rodata in clang goes from 10,926,785
to 10,929,345 bytes.
The increase seems to be because of http://sourceware.org/bugzilla/show_bug.cgi?id=17902.
llvm-svn: 227431
|
| |
|
|
|
|
| |
it crashes as the access to operands array is out of range. This patch adds dedicated decoder method for R6 CACHE_HINT_DESC class that properly handles decoding of these instructions.
llvm-svn: 227430
|
| |
|
|
| |
llvm-svn: 227428
|
| |
|
|
| |
llvm-svn: 227424
|
| |
|
|
|
|
|
|
|
|
| |
out all pretty stack trace support when backtraces are disabled.
This has the nice secondary effect of allowing LLVM to continue to build
for targets without __thread or thread_local support to continue to work
so long as they build without support for backtraces.
llvm-svn: 227423
|
| |
|
|
|
|
| |
Follow up to r227318.
llvm-svn: 227422
|
| |
|
|
| |
llvm-svn: 227415
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
entirely when threads are not enabled. This should allow anyone who
needs to bootstrap or cope with a host loader without TLS support to
limp along without threading support.
There is still some bug in the PPC TLS stuff that is not worked around.
I'm getting access to a machine to reproduce and debug this further.
There is some chance that I'll have to add a terrible workaround for
PPC.
There is also some problem with iOS, but I have no ability to really
evaluate what the issue is there. I'm leaving it to folks maintaining
that platform to suggest a path forward -- personally I don't see any
useful path forward that supports threading in LLVM but does so without
support for *very basic* TLS. Note that we don't need more than some
pointers, and we don't need constructors, destructors, or any of the
other fanciness which remains widely unimplemented.
llvm-svn: 227411
|
| |
|
|
| |
llvm-svn: 227408
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the personality is not a recognized MSVC personality function, this
pass delegates to the dwarf EH preparation pass. This chaining supports
people on *-windows-itanium or *-windows-gnu targets.
Currently this recognizes some personalities used by MSVC and turns
resume instructions into traps to avoid link errors. Even if cleanups
are not used in the source program, LLVM requires the frontend to emit a
code path that resumes unwinding after an exception. Clang does this,
and we get unreachable resume instructions. PR20300 covers cleaning up
these unreachable calls to resume.
Reviewers: majnemer
Differential Revision: http://reviews.llvm.org/D7216
llvm-svn: 227405
|
| |
|
|
|
|
|
| |
correct subtarget by passing it in during the constructor as
TargetLowering is Subtarget specific.
llvm-svn: 227402
|
| |
|
|
|
|
|
| |
correct subtarget by passing it in during the constructor as
TargetLowering is Subtarget specific.
llvm-svn: 227401
|
| |
|
|
| |
llvm-svn: 227400
|
| |
|
|
|
|
| |
away from getSubtargetImpl.
llvm-svn: 227399
|
| |
|
|
|
|
| |
TSI is not guaranteed be non-null in SelectionDAG.
llvm-svn: 227397
|
| |
|
|
| |
llvm-svn: 227395
|
| |
|
|
|
|
| |
let the build bot make finish compiling stage2.
llvm-svn: 227391
|
| |
|
|
|
|
|
|
|
|
| |
Patch by: Igor Laevsky <igor@azulsystems.com>
"Currently SplitBlockPredecessors generates incorrect code in case if basic block we are going to split has a landingpad. Also seems like it is fairly common case among it's users to conditionally call either SplitBlockPredecessors or SplitLandingPadPredecessors. Because of this I think it is reasonable to add this condition directly into SplitBlockPredecessors."
Differential Revision: http://reviews.llvm.org/D7157
llvm-svn: 227390
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Add test targets and the lit-style runner.
Test Plan: Run the tests on bot.
Reviewers: samsonov
Reviewed By: samsonov
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D7217
llvm-svn: 227389
|
| |
|
|
| |
llvm-svn: 227386
|
| |
|
|
| |
llvm-svn: 227385
|
| |
|
|
| |
llvm-svn: 227379
|
| |
|
|
| |
llvm-svn: 227376
|
| |
|
|
| |
llvm-svn: 227374
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5820
llvm-svn: 227373
|
| |
|
|
| |
llvm-svn: 227357
|
| |
|
|
| |
llvm-svn: 227355
|
| |
|
|
|
|
| |
and deleting unused classes.
llvm-svn: 227353
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sadly, this precludes optimizing it down to initial-exec or local-exec
when statically linking, and in general makes the code slower on PPC 64,
but there's nothing else for it until we can arrange to produce the
correct bits for the linker.
Lots of thanks to Ulirch for tracking this down and Bill for working on
the long-term fix to LLVM so that we can relegate this to old host
clang versions.
I'll be watching the PPC build bots to make sure this effectively
revives them.
llvm-svn: 227352
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a refactoring to restructure the single user of performCustomLowering as a specific lowering pass and remove the custom lowering hook entirely.
Before this change, the LowerIntrinsics pass (note to self: rename!) was essentially acting as a pass manager, but without being structured in terms of passes. Instead, it proxied calls to a set of GCStrategies internally. This adds a lot of conceptual complexity (i.e. GCStrategies are stateful!) for very little benefit. Since there's been interest in keeping the ShadowStackGC working, I extracting it's custom lowering pass into a dedicated pass and just added that to the pass order. It will only run for functions which opt-in to that gc.
I wasn't able to find an easy way to preserve the runtime registration of custom lowering functionality. Given that no user of this exists that I'm aware of, I made the choice to just remove that. If someone really cares, we can look at restoring it via dynamic pass registration in the future.
Note that despite the large diff, none of the lowering code actual changes. I added the framing needed to make it a pass and rename the class, but that's it.
Differential Revision: http://reviews.llvm.org/D7218
llvm-svn: 227351
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 227347
|