| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
The analysis will be needed by both the greedy register allocator and the
X86FloatingPoint pass. It only needs to be computed once when the CFG doesn't
change.
This pass is very fast, usually showing up as 0.0% wall time.
llvm-svn: 122832
|
|
|
|
|
|
| |
// rdar://8818375
llvm-svn: 122831
|
|
|
|
|
|
| |
and causes some test casees to compile that shouldn't.
llvm-svn: 122830
|
|
|
|
|
|
| |
warning is overzealous but gcc is what it is.)
llvm-svn: 122829
|
|
|
|
| |
llvm-svn: 122828
|
|
|
|
| |
llvm-svn: 122827
|
|
|
|
| |
llvm-svn: 122826
|
|
|
|
| |
llvm-svn: 122825
|
|
|
|
| |
llvm-svn: 122824
|
|
|
|
|
|
|
|
| |
the "leader table", and
rename methods to make it much more clear what they're doing.
llvm-svn: 122823
|
|
|
|
|
|
| |
in a corner case.
llvm-svn: 122822
|
|
|
|
|
|
|
|
|
|
| |
case where a static caller is itself inlined everywhere else, and
thus may go away if it doesn't get too big due to inlining other
things into it. If there are references to the caller other than
calls, it will not be removed; account for this.
This results in same-day completion of the case in PR8853.
llvm-svn: 122821
|
|
|
|
|
|
|
| |
the switch-enum warnings. Test is forthcoming, once I've dealt with
some template argument deduction issues.
llvm-svn: 122820
|
|
|
|
|
|
|
|
|
| |
value number for them. This
avoids adding them to the various value numbering tables, resulting in a minor (~3%) speedup for GVN
on 40.gcc.
llvm-svn: 122819
|
|
|
|
| |
llvm-svn: 122818
|
|
|
|
| |
llvm-svn: 122817
|
|
|
|
|
|
| |
reports prettier.
llvm-svn: 122816
|
|
|
|
| |
llvm-svn: 122815
|
|
|
|
|
|
| |
ashr's with huge shift amounts, PR8896
llvm-svn: 122814
|
|
|
|
|
|
|
|
|
| |
parameter pack.
Note that we're missing proper libclang support for the new
SizeOfPackExpr expression node.
llvm-svn: 122813
|
|
|
|
| |
llvm-svn: 122812
|
|
|
|
|
|
| |
makes getLeader() nonrecursive.
llvm-svn: 122811
|
|
|
|
|
|
| |
This ensures that always the recently compiled tools are picked for testing.
llvm-svn: 122810
|
|
|
|
| |
llvm-svn: 122809
|
|
|
|
| |
llvm-svn: 122808
|
|
|
|
|
|
| |
Suggestion by Douglas Gregor!
llvm-svn: 122807
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when safe.
The testcase is basically this nested loop:
void foo(char *X) {
for (int i = 0; i != 100; ++i)
for (int j = 0; j != 100; ++j)
X[j+i*100] = 0;
}
which gets turned into a single memset now. clang -O3 doesn't optimize
this yet though due to a phase ordering issue I haven't analyzed yet.
llvm-svn: 122806
|
|
|
|
|
|
|
|
| |
instruction *after* the store. The store will always be deleted
if the transformation kicks in, so we'd do an N^2 scan of every
loop block. Whoops.
llvm-svn: 122805
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
int x = 42;
x = x; // Warns here.
The warning avoids macro expansions, templates, user-defined assignment
operators, and volatile types, so false positives are expected to be low.
The common (mis-)use of this code pattern is to silence unused variable
warnings, but a more idiomatic way of doing that is '(void)x;'.
A follow-up to this will add a note and fix-it hint suggesting this
replacement in cases where the StmtExpr consists precisely of the self
assignment.
llvm-svn: 122804
|
|
|
|
|
|
| |
spent in StrongPHIElimination on 403.gcc.
llvm-svn: 122803
|
|
|
|
|
|
|
|
|
|
|
| |
declaration name of the array when present. This ensures that
a poor-man's C++03 static_assert will include the user error message
often embedded in the name.
Update all the tests to reflect the new wording, and add a test for the
name behavior.
llvm-svn: 122802
|
|
|
|
|
|
| |
CodeGenPrepare (which is the default behavior).
llvm-svn: 122801
|
|
|
|
|
|
|
| |
were not being created in the proper way, meaning
results were getting lost.
llvm-svn: 122800
|
|
|
|
|
|
|
| |
non-type template parameter pack, make sure to create a pack expansion
for the corresponding template argument.
llvm-svn: 122799
|
|
|
|
| |
llvm-svn: 122797
|
|
|
|
|
|
| |
tests use absolute paths to clang.
llvm-svn: 122796
|
|
|
|
|
|
| |
static constructors.
llvm-svn: 122795
|
|
|
|
| |
llvm-svn: 122794
|
|
|
|
|
|
|
| |
initialize those lovely mixins that come from pack expansions of base
specifiers.
llvm-svn: 122793
|
|
|
|
|
|
|
|
| |
trySkippingFunctionBodyForCodeCompletion and check isCodeCompletionEnabled() before doing the call.
Suggestions by Chris.
llvm-svn: 122792
|
|
|
|
|
|
|
|
|
|
|
|
| |
FunctionPass. It probably doesn't have a reason to be a LoopPass, as it will
probably drop the simple fixed point and either use RPO iteration or Duncan's
approach in instsimplify of only revisiting instructions that have changed.
The next step is to preserve LoopSimplify. This looks like it won't be too hard,
although the pass manager doesn't actually seem to respect when non-loop passes
claim to preserve LCSSA or LoopSimplify. This will have to be fixed.
llvm-svn: 122791
|
|
|
|
|
|
|
| |
stop setting NSW: signed overflow is possible. Thanks to Dan
for pointing these out.
llvm-svn: 122790
|
|
|
|
| |
llvm-svn: 122789
|
|
|
|
| |
llvm-svn: 122788
|
|
|
|
|
|
|
|
| |
PHIs of GEPs. For the moment,
have GlobalsModRef handle this conservatively by simply removing the value from its maps.
llvm-svn: 122787
|
|
|
|
| |
llvm-svn: 122786
|
|
|
|
|
|
|
| |
invalidated by stores, so they can be handled as 'simple'
operations.
llvm-svn: 122785
|
|
|
|
| |
llvm-svn: 122784
|
|
|
|
|
|
|
|
|
|
|
| |
prologue and epilogue if the adjustment is 8. Similarly, use pushl / popl if
the adjustment is 4 in 32-bit mode.
In the epilogue, takes care to pop to a caller-saved register that's not live
at the exit (either return or tailcall instruction).
rdar://8771137
llvm-svn: 122783
|
|
|
|
| |
llvm-svn: 122782
|