| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
might change if optimised
llvm-svn: 143116
|
| |
|
|
|
|
| |
lazily-created static DenseMap. This DenseMap is cleared (and the files erased) via an atexit routine in the case an ASTUnit is not destroyed. Fixes <rdar://problem/10293367>.
llvm-svn: 143115
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the same hashed format as the ".apple_names", but they map objective C
class names to all of the methods and class functions. We need to do this
because in the DWARF the methods for Objective C are never contained in the
class definition, they are scattered about at the translation unit level and
they don't even have attributes that say the are contained within the class
itself.
Added 3 new formats which can be used to display data:
eFormatAddressInfo
eFormatHexFloat
eFormatInstruction
eFormatAddressInfo describes an address such as function+offset and file+line,
or symbol + offset, or constant data (c string, 2, 4, 8, or 16 byte constants).
The format character for this is "A", the long format is "address".
eFormatHexFloat will print out the hex float format that compilers tend to use.
The format character for this is "X", the long format is "hex float".
eFormatInstruction will print out disassembly with bytes and it will use the
current target's architecture. The format character for this is "i" (which
used to be being used for the integer format, but the integer format also has
"d", so we gave the "i" format to disassembly), the long format is
"instruction".
Mate the lldb::FormatterChoiceCriterion enumeration private as it should have
been from the start. It is very specialized and doesn't belong in the public
API.
llvm-svn: 143114
|
| |
|
|
| |
llvm-svn: 143113
|
| |
|
|
|
|
|
| |
not depend on In32BitMode. Use the sysexitq mnemonic for the version with the
REX.W prefix and only allow it only In64BitMode. rdar://9738584
llvm-svn: 143112
|
| |
|
|
| |
llvm-svn: 143111
|
| |
|
|
|
|
| |
rdar://10348844
llvm-svn: 143110
|
| |
|
|
| |
llvm-svn: 143109
|
| |
|
|
|
|
| |
rdar://10348584
llvm-svn: 143108
|
| |
|
|
| |
llvm-svn: 143107
|
| |
|
|
|
|
| |
This trades one 64 bit div for one 64 bit mul and some arithmetic.
llvm-svn: 143106
|
| |
|
|
| |
llvm-svn: 143105
|
| |
|
|
| |
llvm-svn: 143104
|
| |
|
|
|
|
| |
behind a compile failure on 483.xalancbmk.
llvm-svn: 143102
|
| |
|
|
| |
llvm-svn: 143101
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AST file more lazy, so that we don't eagerly load that information for
all known identifiers each time a new AST file is loaded. The eager
reloading made some sense in the context of precompiled headers, since
very few identifiers were defined before PCH load time. With modules,
however, a huge amount of code can get parsed before we see an
@import, so laziness becomes important here.
The approach taken to make this information lazy is fairly simple:
when we load a new AST file, we mark all of the existing identifiers
as being out-of-date. Whenever we want to access information that may
come from an AST (e.g., whether the identifier has a macro definition,
or what top-level declarations have that name), we check the
out-of-date bit and, if it's set, ask the AST reader to update the
IdentifierInfo from the AST files. The update is a merge, and we now
take care to merge declarations before/after imports with declarations
from multiple imports.
The results of this optimization are fairly dramatic. On a small
application that brings in 14 non-trivial modules, this takes modules
from being > 3x slower than a "perfect" PCH file down to 30% slower
for a full rebuild. A partial rebuild (where the PCH file or modules
can be re-used) is down to 7% slower. Making the PCH file just a
little imperfect (e.g., adding two smallish modules used by a bunch of
.m files that aren't in the PCH file) tips the scales in favor of the
modules approach, with 24% faster partial rebuilds.
This is just a first step; the lazy scheme could possibly be improved
by adding versioning, so we don't search into modules we already
searched. Moreover, we'll need similar lazy schemes for all of the
other lookup data structures, such as DeclContexts.
llvm-svn: 143100
|
| |
|
|
|
|
|
|
| |
The code had it backwards, thinking size_t was signed, and using that for "%zd".
Also let the analysis get the types for (u)intmax_t while we are at it.
llvm-svn: 143099
|
| |
|
|
|
|
| |
from r143097.
llvm-svn: 143098
|
| |
|
|
| |
llvm-svn: 143097
|
| |
|
|
|
|
| |
be found in namespaces.
llvm-svn: 143096
|
| |
|
|
| |
llvm-svn: 143095
|
| |
|
|
|
|
| |
the compiler should pick this type up automatically.
llvm-svn: 143094
|
| |
|
|
|
|
| |
don't do that. <rdar://problem/10352360>
llvm-svn: 143093
|
| |
|
|
| |
llvm-svn: 143092
|
| |
|
|
|
|
| |
Go not generate a new transition by addTransition methods if nothing changed.
llvm-svn: 143091
|
| |
|
|
| |
llvm-svn: 143090
|
| |
|
|
|
|
|
|
| |
Enqueue the nodes generated as the result of processing a statement
inside the Core Engine. This makes sure ExpEngine does not access
CoreEngine's private members and is more concise.
llvm-svn: 143089
|
| |
|
|
| |
llvm-svn: 143088
|
| |
|
|
| |
llvm-svn: 143087
|
| |
|
|
| |
llvm-svn: 143086
|
| |
|
|
| |
llvm-svn: 143085
|
| |
|
|
|
|
| |
of '@'.
llvm-svn: 143084
|
| |
|
|
|
|
|
|
| |
functions in the Objective-C language runtime
that is set to the selector that is being passed
to the object.
llvm-svn: 143083
|
| |
|
|
|
|
|
| |
decl. in Darwin due to certain projects requirement.
// rdar://10277579
llvm-svn: 143082
|
| |
|
|
| |
llvm-svn: 143080
|
| |
|
|
|
|
|
|
| |
up. Thus, improving the support for compares is goodness because it increases
the number of terminator instructions we can handle. This creates many more
opportunities for target specific fast-isel.
llvm-svn: 143079
|
| |
|
|
|
|
| |
place. No functional change intended.
llvm-svn: 143078
|
| |
|
|
| |
llvm-svn: 143077
|
| |
|
|
| |
llvm-svn: 143076
|
| |
|
|
|
|
|
|
|
|
| |
inferior program for the lldb debugger to operate on. The fixed lldb executable
corresponds to r142902.
Plus some minor modifications to the test benchmark to conform to way bench.py
is meant to be invoked.
llvm-svn: 143075
|
| |
|
|
|
|
| |
change.
llvm-svn: 143074
|
| |
|
|
| |
llvm-svn: 143073
|
| |
|
|
|
|
| |
SelectBranch. No functional change intended.
llvm-svn: 143072
|
| |
|
|
| |
llvm-svn: 143071
|
| |
|
|
|
|
|
|
|
| |
We were parsing label references to the i12 encoding, which isn't right.
They need to go to the pci variant instead.
More of rdar://10348687
llvm-svn: 143068
|
| |
|
|
|
|
| |
Patch by Sanjoy Das.
llvm-svn: 143066
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"_cmd", "this", and "self". These variables are handled
differently from all other external variables used by
the expression. Other variables are used indirectly
through the $__lldb_arg operand; only _cmd, this, and
self are passed directly through the ABI.
There are two modifications:
- I added a function to ClangExpressionDeclMap that
retrives the value of one of these variables by name;
and
- I made IRInterpreter fetch these values when needed,
and ensured that the proper level of indirection is
used.
llvm-svn: 143065
|
| |
|
|
|
|
| |
Patch by Sanjoy Das.
llvm-svn: 143064
|
| |
|
|
|
|
| |
Partial fix for rdar://10348687.
llvm-svn: 143063
|
| |
|
|
|
|
|
|
|
|
|
|
| |
MORESTACK_RET_RESTORE_R10; which are lowered to a RET and a RET
followed by a MOV respectively. Having a fake instruction prevents
the verifier from seeing a MachineBasicBlock end with a
non-terminator (MOV). It also prevents the rather eccentric case of a
MachineBasicBlock ending with RET but having successors nevertheless.
Patch by Sanjoy Das.
llvm-svn: 143062
|