| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 253137
|
|
|
|
| |
llvm-svn: 253136
|
|
|
|
| |
llvm-svn: 253135
|
|
|
|
| |
llvm-svn: 253134
|
|
|
|
| |
llvm-svn: 253133
|
|
|
|
|
|
| |
Baseline comparison to D14588
llvm-svn: 253132
|
|
|
|
|
|
| |
Makes it easier to track what tests are missing....
llvm-svn: 253131
|
|
|
|
|
|
| |
Improved tests as discussed in PR24580
llvm-svn: 253130
|
|
|
|
|
|
| |
This caused bot failures on ARM, e.g. http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/9068
llvm-svn: 253129
|
|
|
|
|
|
|
| |
These were implemented back in r244564. However, I forgot to update the
docs.
llvm-svn: 253128
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MCRelaxableFragment previously kept a copy of MCSubtargetInfo and
MCInst to enable re-encoding the MCInst later during relaxation. A copy
of MCSubtargetInfo (instead of a reference or pointer) was needed
because the feature bits could be modified by the parser.
This commit replaces the MCSubtargetInfo copy in MCRelaxableFragment
with a constant reference to MCSubtargetInfo. The copies of
MCSubtargetInfo are kept in MCContext, and the target parsers are now
responsible for asking MCContext to provide a copy whenever the feature
bits of MCSubtargetInfo have to be toggled.
With this patch, I saw a 4% reduction in peak memory usage when I
compiled verify-uselistorder.lto.bc using llc.
rdar://problem/21736951
Differential Revision: http://reviews.llvm.org/D14346
llvm-svn: 253127
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Currently we always recompute LCSSA for outer loops after unrolling an
inner loop. That leads to compile time problem when we have big loop
nests, and we can solve it by avoiding unnecessary work. For instance,
if w eonly do partial unrolling, we don't break LCSSA, so we don't need
to rebuild it. Also, if all exits from the inner loop are inside the
enclosing loop, then complete unrolling won't break LCSSA either.
I replaced unconditional LCSSA recomputation with conditional recomputation +
unconditional assert and added several tests, which were failing when I
experimented with it.
Soon I plan to follow up with a similar patch for recalculation of dominators
tree.
Reviewers: hfinkel, dexonsmith, bogner, joker.eph, chandlerc
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14526
llvm-svn: 253126
|
|
|
|
|
|
|
|
|
| |
batons, and function pointers, and raw memory allocations instead of safer more modern constructs
This is a first pass at a cleanup of that code, modernizing the "type X clear" commands, and providing the basic infrastructure I plan to use all over
More cleanup will come over the next few days
llvm-svn: 253125
|
|
|
|
|
|
|
|
|
|
| |
MCSubtargetInfo in the subclasses into MCTargetAsmParser and define a
member function getSTI.
This is done in preparation for making changes to shrink the size of
MCRelaxableFragment. (see http://reviews.llvm.org/D14346).
llvm-svn: 253124
|
|
|
|
|
|
|
|
|
| |
r233345 started being stricter about typedef names for linkage purposes
in non-visible modules, but broke languages without the ODR.
rdar://23527954
llvm-svn: 253123
|
|
|
|
|
|
| |
it somewhat more consistent with how the feature is used.
llvm-svn: 253122
|
|
|
|
|
|
|
| |
out the first missing target feature that's required and reword
the diagnostic accordingly.
llvm-svn: 253121
|
|
|
|
| |
llvm-svn: 253119
|
|
|
|
|
|
| |
features for calls.
llvm-svn: 253117
|
|
|
|
|
|
|
|
|
|
| |
attribute.
Even if the target supports shrink-wrapping, the prologue and epilogue
must not move because a crash can happen anywhere and sanitizers need
to be able to unwind from the PC of the crash.
llvm-svn: 253116
|
|
|
|
| |
llvm-svn: 253115
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
beyond value/repair
Several of these tests (the two deleted, and the one removal edit) were
relying on the optimizer to collapse things to test some frontend
feature. The tests were really old and features seemed amply covered by
other parts of the test suite, so I just removed them.
If anyone thinks they're valuable enough to keep/fix, we can play around
with that, for sure.
(inspired by r252872)
llvm-svn: 253114
|
|
|
|
| |
llvm-svn: 253113
|
|
|
|
| |
llvm-svn: 253112
|
|
|
|
| |
llvm-svn: 253111
|
|
|
|
| |
llvm-svn: 253110
|
|
|
|
|
|
| |
shadow gap will not be mprotect-ed and all hell may break loose. But this makes CUDA's cuInit() pass.
llvm-svn: 253108
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
VisitReturnStmt would create a new block with including Dtors, so the Dtors created
in VisitCompoundStmts would be in an unreachable block.
Example:
struct S {
~S();
};
void f()
{
S s;
return;
}
void g()
{
S s;
}
Before this patch, f has one additional unreachable block containing just the
destructor of S. With this patch, both f and g have the same blocks.
Reviewers: krememek
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D13973
llvm-svn: 253107
|
|
|
|
|
|
|
|
| |
expectedFailureAll to reverse
the sense of the test.
llvm-svn: 253106
|
|
|
|
|
|
| |
Whitespace-only change.
llvm-svn: 253105
|
|
|
|
|
|
|
|
|
| |
This reverts r243310, which is redundant as of r253102.
Conflicts:
lib/Driver/Tools.cpp
llvm-svn: 253104
|
|
|
|
|
|
|
|
|
|
|
| |
Darwin reserves x18, so it's never ABI compliant to generate code that
uses it. Set the default value based on the OS part of the triple
rather than forcing front-ends to set the +reserve-x18 target feature
in order to build correct code for Darwin.
This will make r243310 redundant, so I'll revert that shortly.
llvm-svn: 253102
|
|
|
|
| |
llvm-svn: 253101
|
|
|
|
| |
llvm-svn: 253099
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This is to handle a corner case where profile lib is linked
in but non of the modules are instrumented (On linux, since
we avoided the overhead to emit runtime hook use functions so
this is the side effect of that size optimization).
- Added a profile runtime test case to cover all scenarios of
shared library builds.
Differential Revision: http://reviews.llvm.org/D14468
llvm-svn: 253098
|
|
|
|
| |
llvm-svn: 253097
|
|
|
|
|
|
|
| |
When there is only 1 node left in the ready queue and it is picked call
the reason "ONLY1" instead of "NOCAND".
llvm-svn: 253096
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D14597
llvm-svn: 253095
|
|
|
|
|
|
|
|
| |
to break on. Rerunning
was being foiled by ASLR.
llvm-svn: 253094
|
|
|
|
| |
llvm-svn: 253093
|
|
|
|
| |
llvm-svn: 253092
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to transform the below loop into a memcpy.
void test(unsigned *__restrict__ a, unsigned *__restrict__ b) {
for (int i = 2047; i >= 0; --i) {
a[i] = b[i];
}
}
This is the memcpy version of r251518, which added support for memset with
negative strided loops.
llvm-svn: 253091
|
|
|
|
|
|
| |
MCContext.
llvm-svn: 253090
|
|
|
|
| |
llvm-svn: 253089
|
|
|
|
| |
llvm-svn: 253088
|
|
|
|
| |
llvm-svn: 253087
|
|
|
|
|
|
|
|
| |
I'm seeing some cases where the ThreadPlan is null. It could
be a sign of a valid race condition, but at least we shouldn't
crash.
llvm-svn: 253086
|
|
|
|
| |
llvm-svn: 253085
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The C++ EH personality automatically restores ESP from the C++ EH
registration node after a catchret. I mistakenly thought it was like
SEH, which does not restore ESP.
It makes sense for C++ EH to differ from SEH here because SEH does not
use funclets for catches, and does not allow catching inside of finally.
C++ EH may need to unwind through multiple catch funclets and eventually
catchret to some outer funclet. Therefore, the runtime has to keep track
of which ESP to use with catchret, rather than having the compiler
reload it manually.
llvm-svn: 253084
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use ScalarEvolution to calculate memory access bounds.
Handle function calls based on readnone/nocapture attributes.
Handle memory intrinsics with constant size.
This change improves both recall and precision of IsAllocaSafe.
See the new tests (ex. BitCastWide) for the kind of code that was wrongly
classified as safe.
SCEV efficiency seems to be limited by the fact the SafeStack runs late
(in CodeGenPrepare), and many loops are unrolled or otherwise not in LCSSA.
llvm-svn: 253083
|