| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 111074
|
| |
|
|
| |
llvm-svn: 111073
|
| |
|
|
| |
llvm-svn: 111070
|
| |
|
|
| |
llvm-svn: 111068
|
| |
|
|
| |
llvm-svn: 111067
|
| |
|
|
|
|
| |
is used for annotating macro arguments. This finishes up <rdar://problem/8044584>.
llvm-svn: 111066
|
| |
|
|
| |
llvm-svn: 111065
|
| |
|
|
| |
llvm-svn: 111063
|
| |
|
|
|
|
| |
arguments of a macro instantiation using the closest cursor with the same spelling location. Because macro arguments can get token pasted in any arbitrary order, we use the annotation map to paper over the token -> cursor annotations during our post-processing stage. This fixes most of <rdar://problem/8044584>, but still doesn't work for assert().
llvm-svn: 111062
|
| |
|
|
| |
llvm-svn: 111061
|
| |
|
|
|
|
|
|
|
|
|
| |
- Eliminate redundant successors.
- Convert an indirectbr with one successor into a direct branch.
Also, generalize SimplifyCFG to be able to be run on a function entry block.
It knows quite a few simplifications which are applicable to the entry
block, and it only needs a few checks to avoid trouble with the entry block.
llvm-svn: 111060
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
experimental pass that allocates locals relative to one another before
register allocation and then assigns them to actual stack slots as a block
later in PEI. This will eventually allow targets with limited index offset
range to allocate additional base registers (not just FP and SP) to
more efficiently reference locals, as well as handle situations where
locals cannot be referenced via SP or FP at all (dynamic stack realignment
together with variable sized objects, for example). It's currently
incomplete and almost certainly buggy. Work in progress.
Disabled by default and gated via the -enable-local-stack-alloc command
line option.
rdar://8277890
llvm-svn: 111059
|
| |
|
|
|
|
| |
had its address taken.
llvm-svn: 111058
|
| |
|
|
|
|
| |
This fixes another part of PR7792.
llvm-svn: 111057
|
| |
|
|
|
|
|
|
| |
variable
LLDB_TESTSUITE_FORCE_FINISH and, if defined, kill the test suite.
llvm-svn: 111056
|
| |
|
|
|
|
|
|
|
| |
The earliestStart argument is entirely specific to linear scan allocation, and
can be easily calculated by RegAllocLinearScan.
Replace std::vector with SmallVector.
llvm-svn: 111055
|
| |
|
|
|
|
| |
cleaned up its API slightly.
llvm-svn: 111053
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when the CXTranslationUnit_CacheCompletionResults option is given to
clang_parseTranslationUnit(). Essentially, we compute code-completion
results for macro definitions after we have parsed the file, then
store an ASTContext-agnostic version of those results (completion
string, cursor kind, priority, and active contexts) in the
ASTUnit. When performing code completion in that ASTUnit, we splice
the macro definition results into the results provided by the actual
code-completion (which has had macros turned off) before libclang gets
those results. We use completion context information to only splice in
those results that make sense for that context.
With a completion involving all of the macros from Cocoa.h and a few other
system libraries (totally ~8500 macro definitions) living in a
precompiled header, we get about a 9% performance improvement from
code completion, since we no longer have to deserialize all of the
macro definitions from the precompiled header.
Note that macro definitions are merely the canary; the cache is
designed to also support other top-level declarations, which should be
a bigger performance win. That optimization will be next.
Note also that there is no mechanism for determining when to throw
away the cache and recompute its contents.
llvm-svn: 111051
|
| |
|
|
| |
llvm-svn: 111050
|
| |
|
|
|
|
|
|
| |
Also cleaned up its API a tiny bit (but not the
extensive amount that is actually needed. That's
still coming.)
llvm-svn: 111049
|
| |
|
|
|
|
| |
instruction opcode. This fixes part of PR7792.
llvm-svn: 111047
|
| |
|
|
|
|
|
| |
when they are the same loop. Don't compare two instructions'
loop depths when they are in the same block.
llvm-svn: 111045
|
| |
|
|
|
|
| |
Not yet complete or used.
llvm-svn: 111044
|
| |
|
|
|
|
|
|
| |
When a live range is contained a single block, we can split it around
instruction clusters. The current approach is very primitive, splitting before
and after the largest gap between uses.
llvm-svn: 111043
|
| |
|
|
|
|
|
| |
ScalarEvolution::getAddExpr, which can be pretty expensive, when nothing
has changed, which is pretty common.
llvm-svn: 111042
|
| |
|
|
| |
llvm-svn: 111041
|
| |
|
|
| |
llvm-svn: 111040
|
| |
|
|
|
|
| |
rather than testing whether the loop contains the other's header.
llvm-svn: 111039
|
| |
|
|
| |
llvm-svn: 111038
|
| |
|
|
|
|
|
| |
the constant operand on the left, as that's where ScalarEvolution
will end up canonicalizing to.
llvm-svn: 111037
|
| |
|
|
| |
llvm-svn: 111036
|
| |
|
|
|
|
| |
"expr" command.
llvm-svn: 111035
|
| |
|
|
|
|
|
| |
associated loop. This avoids potentially expensive traversals
of the add recurrence's operands.
llvm-svn: 111034
|
| |
|
|
| |
llvm-svn: 111033
|
| |
|
|
|
|
| |
Apparently, this is now fixed in Clang.
llvm-svn: 111032
|
| |
|
|
|
|
|
| |
since they can support trivial implementations. This avoids potentially
expensive traversals of the operands.
llvm-svn: 111031
|
| |
|
|
|
|
| |
same lines as the change I made for ARM saturate instructions.
llvm-svn: 111029
|
| |
|
|
|
|
| |
misanalysis and is undesirable.
llvm-svn: 111028
|
| |
|
|
|
|
|
|
|
| |
-static variables
-variables in anonymous namespace (fixes rdar://7794535)
-static data members in anonymous namespace
-static data members specializations in anonymous namespace
llvm-svn: 111027
|
| |
|
|
|
|
|
|
|
|
| |
-static function declarations
-functions in anonymous namespace
-class methods in anonymous namespace
-class method specializations in anonymous namespace
-function specializations in anonymous namespace
llvm-svn: 111026
|
| |
|
|
|
|
|
|
| |
keeping track of unused file scoped variables.
This is only preparation, currently only static function definitions are tracked, as before.
llvm-svn: 111025
|
| |
|
|
| |
llvm-svn: 111024
|
| |
|
|
|
|
|
|
| |
(nonfragile-abi2), do not consider 'ivar' access
in class methods. Also, improve on diagnostics.
Radar 8304561.
llvm-svn: 111023
|
| |
|
|
| |
llvm-svn: 111022
|
| |
|
|
| |
llvm-svn: 111021
|
| |
|
|
|
|
| |
will apply all fixes even when there were other errors in the file.
llvm-svn: 111020
|
| |
|
|
| |
llvm-svn: 111019
|
| |
|
|
|
|
| |
later
llvm-svn: 111016
|
| |
|
|
| |
llvm-svn: 111013
|
| |
|
|
|
|
| |
instantiated with unique-external parameters.
llvm-svn: 111012
|