| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Function or array lvalue conversions happens.
llvm-svn: 145782
|
| |
|
|
|
|
|
|
| |
Maybe some targets should use this as well.
Patch by Evgeniy Stepanov!
llvm-svn: 145781
|
| |
|
|
|
|
| |
AnalyzeBranch doesn't change the successor, just the order.
llvm-svn: 145779
|
| |
|
|
|
|
| |
work, extends it to T*, and changes the way double and long double are handled (no longer convert to float on 32 bit). I also picked up a minor bug with uninitialized bits on the upper end of size_t when sizeof(size_t) > sizeof(T), e.g. in hash<float>. Most of the functionality has been put in one place: __scalar_hash in <memory>. Unfortunately I could not reuse __scalar_hash for hash<long double> on x86 because of the padding bits which need to be zeroed. I didn't want to add this zeroing step to the more general __scalar_hash when it isn't needed (in the absence of padding bits). I'm not ignoring the hash<string> issue (possibly changing that to a better hash). I just haven't gotten there yet.
llvm-svn: 145778
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
add them to a fast lookup map. lldb_private::Symtab now export the following
public typedefs:
namespace lldb_private {
class Symtab {
typedef std::vector<uint32_t> IndexCollection;
typedef UniqueCStringMap<uint32_t> NameToIndexMap;
};
}
Clients can then find symbols by name and or type and end up with a
Symtab::IndexCollection that is filled with indexes. These indexes can then
be put into a name to index lookup map and control if the mangled and
demangled names get added to the map:
bool add_demangled = true;
bool add_mangled = true;
Symtab::NameToIndexMap name_to_index;
symtab->AppendSymbolNamesToMap (indexes, add_demangled, add_mangled, name_to_index).
This can be repeated as many times as needed to get a lookup table that
you are happy with, and then this can be sorted:
name_to_index.Sort();
Now name lookups can be done using a subset of the symbols you extracted from
the symbol table. This is currently being used to extract objective C types
from object files when there is no debug info in SymbolFileSymtab.
Cleaned up how the objective C types were being vended to be more efficient
and fixed some errors in the regular expression that was being used.
llvm-svn: 145777
|
| |
|
|
|
|
| |
types. Patch from Dmitri Rubinstein!
llvm-svn: 145776
|
| |
|
|
|
|
|
| |
a class is marked 'final', from Alberto Ganesh Barbati! Fixes
PR11462.
llvm-svn: 145775
|
| |
|
|
|
|
|
| |
inferred from return types. All the return statements have to agree about the type.
// rdar://10466373
llvm-svn: 145774
|
| |
|
|
|
|
| |
-3% on ARMDissasembler.cpp.
llvm-svn: 145773
|
| |
|
|
|
|
|
|
|
|
| |
function dependent context because it interferes with the "lookup into dependent bases of class templates" feature.
Basically typo correction will try to offer a correction instead of looking into type dependent base classes.
I found this problem while parsing Microsoft ATL code with clang.
llvm-svn: 145772
|
| |
|
|
| |
llvm-svn: 145771
|
| |
|
|
|
|
|
|
|
| |
just to remove no blocks from the maps.
-15% on ARMDisassembler.cpp (Release build). It's not that great to add another
layer of caching to the caching-heavy LVI but I don't see a better way.
llvm-svn: 145770
|
| |
|
|
|
|
| |
initializer lists.
llvm-svn: 145769
|
| |
|
|
|
|
|
|
|
| |
libgcc sets the stack limit field in TCB to 256 bytes above the actual
allocated stack limit. This means if the function's stack frame needs
less than 256 bytes, we can just compare the stack pointer with the
stack limit. This should result in lesser calls to __morestack.
llvm-svn: 145766
|
| |
|
|
|
|
|
|
|
|
| |
Currently LLVM pads the call to __morestack with a add and sub of 8
bytes to esp. This isn't correct since __morestack expects the call
to be followed directly by a ret.
This commit also adjusts the relevant test-case.
llvm-svn: 145765
|
| |
|
|
|
|
|
|
|
|
|
| |
class. The thing with Objective C classes is the debug info might have a
definition that isn't just a forward decl, but it is incomplete. So we need to
look and see if we can find the complete definition and avoid recursing a lot
due to the fact that our accelerator tables will have many versions of the
type, but only one complete one. We might not also have the complete type
and we need to deal with this correctly.
llvm-svn: 145759
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Objective-C, making symbol lookups for various raw
Objective-C symbols work correctly. The IR interpreter
makes these lookups because Clang has emitted raw
symbol references for ivars and classes.
Also improved performance in SymbolFiles, caching the
result of asking for SymbolFile abilities.
llvm-svn: 145758
|
| |
|
|
|
|
| |
still need to write the test case file.
llvm-svn: 145756
|
| |
|
|
|
|
| |
change.)
llvm-svn: 145753
|
| |
|
|
|
|
|
|
|
|
| |
when deserialized, fixing random crashes in libclang.
Also simplifies how OpaqueValueExprs are [de]serialized.
The reader/writer automatically retains pointer equality of sub-statements (when a
statement node is referenced in multiple nodes), so no need to manually handle it.
llvm-svn: 145752
|
| |
|
|
| |
llvm-svn: 145751
|
| |
|
|
|
|
| |
C++ catch.
llvm-svn: 145750
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for all our external AST sources that lets us associate
arbitrary flags with the types we put into the AST
contexts. Also added an API on ClangASTContext that
allows access to these flags given only an ASTContext
and a type.
Because we don't have access to RTTI, and because at
some point in the future we might encounter external
AST sources that we didn't make (so they don't subclass
ClangExternalASTSourceCommon) I added a magic number
that we check before doing anything else, so that we
can catch that problem as soon as it appears.
llvm-svn: 145748
|
| |
|
|
|
|
| |
few places over to it.
llvm-svn: 145747
|
| |
|
|
| |
llvm-svn: 145746
|
| |
|
|
|
|
|
|
| |
the same value) to this variable. This code could be refactored, but it doesn't
matter since the old JIT is going away. Add tsan annotations to ignore the
race.
llvm-svn: 145745
|
| |
|
|
|
|
|
|
| |
object file can correctly make these symbols which will abstract us from the
file format and ABI and we can then ask for the objective C class symbol for
a class and find out which object file it was defined in.
llvm-svn: 145744
|
| |
|
|
| |
llvm-svn: 145743
|
| |
|
|
|
|
| |
rdar://10510150
llvm-svn: 145742
|
| |
|
|
|
|
| |
review comment.
llvm-svn: 145741
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
address from
the function it is being asked to step through, so that even if we get the trampoline
target wrong (for instance) we will still not lose control.
The other fix here is to tighten up the handling of the case where the current plan
doesn't explain the stop, but a plan above us does. In that case, if the plan that
does explain the stop says it is done, we need to clean up the plans below it and
continue on with our processing.
llvm-svn: 145740
|
| |
|
|
| |
llvm-svn: 145739
|
| |
|
|
|
|
| |
modules they import, since that information isn't actually used. Drop it from the AST file
llvm-svn: 145738
|
| |
|
|
|
|
|
|
| |
"main" files that import modules. When loading any of these kinds of
AST files, we make the modules that were imported visible into the
translation unit that loaded the PCH file or preamble.
llvm-svn: 145737
|
| |
|
|
|
|
| |
I'll be introducing uses of the specified alignment soon.
llvm-svn: 145736
|
| |
|
|
| |
llvm-svn: 145735
|
| |
|
|
|
|
|
| |
implicitly generated in a translation unit. Modules will need this
information to identify the actual imports that occurred.
llvm-svn: 145734
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed an issue where if we have the DWARF equivalent of:
struct foo;
class foo { ... };
Or vice versa, we wouldn't be able to find the complete type. Since many
compilers allow forward declarations to have struct and definitions to have
class, we need to be able to deal with both cases. This commit fixes this in
the DWARF parser.
llvm-svn: 145733
|
| |
|
|
|
|
| |
the session info
llvm-svn: 145732
|
| |
|
|
|
|
|
|
|
|
| |
causing the optimisation to occur
Turns out long long + unsigned long long is unsigned. Doh!
Fixes http://llvm.org/bugs/show_bug.cgi?id=11455
llvm-svn: 145731
|
| |
|
|
|
|
| |
rdar://10514247
llvm-svn: 145730
|
| |
|
|
| |
llvm-svn: 145728
|
| |
|
|
|
|
|
| |
implicit ImportDecl in the translation unit to record the presence of
the import.
llvm-svn: 145727
|
| |
|
|
| |
llvm-svn: 145726
|
| |
|
|
|
|
|
|
| |
__import_module__ std.vector;
in the AST.
llvm-svn: 145725
|
| |
|
|
|
|
| |
lib/Analysis to lib/Sema which is cyclical.
llvm-svn: 145724
|
| |
|
|
|
|
| |
perf drop in malloc-intensive apps. doh.
llvm-svn: 145723
|
| |
|
|
| |
llvm-svn: 145722
|
| |
|
|
|
|
| |
double. Credit Dave Zarzycki
llvm-svn: 145721
|
| |
|
|
|
|
| |
Fixed an issue that could cause an infinite recursion when using "type filter".
llvm-svn: 145720
|