| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 149047
|
|
|
|
| |
llvm-svn: 149015
|
|
|
|
| |
llvm-svn: 149013
|
|
|
|
| |
llvm-svn: 149012
|
|
|
|
| |
llvm-svn: 148982
|
|
|
|
| |
llvm-svn: 148904
|
|
|
|
|
|
|
|
|
| |
a forward declaration unless we already have a type. We can fill it in
later if it's actually used.
Fixes PR11345
llvm-svn: 148584
|
|
|
|
| |
llvm-svn: 148577
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
APValue::Array and APValue::MemberPointer. All APValue values can now be emitted
as constants.
Add new CGCXXABI entry point for emitting an APValue MemberPointer. The other
entrypoints dealing with constant member pointers are no longer necessary and
will be removed in a later change.
Switch codegen from using EvaluateAsRValue/EvaluateAsLValue to
VarDecl::evaluateValue. This performs caching and deals with the nasty cases in
C++11 where a non-const object's initializer can refer indirectly to
previously-initialized fields within the same object.
Building the intermediate APValue object incurs a measurable performance hit on
pathological testcases with huge initializer lists, so we continue to build IR
directly from the Expr nodes for array and record types outside of C++11.
llvm-svn: 148178
|
|
|
|
| |
llvm-svn: 147989
|
|
|
|
| |
llvm-svn: 147988
|
|
|
|
|
|
| |
clients. No functionality change.
llvm-svn: 147318
|
|
|
|
|
|
|
|
|
| |
declaration for the type then go ahead and use that, it's still smaller
than creating an all new derived type.
Part of rdar://10335756 and others.
llvm-svn: 146779
|
|
|
|
|
|
|
|
| |
classes.
Part of rdar://10520586 and a couple others.
llvm-svn: 146778
|
|
|
|
|
|
| |
definition.
llvm-svn: 146705
|
|
|
|
|
|
|
|
|
|
| |
declarations and definitions) as ObjCInterfaceDecls within the same
redeclaration chain. This new representation matches what we do for
C/C++ variables/functions/classes/templates/etc., and makes it
possible to answer the query "where are all of the declarations of
this class?"
llvm-svn: 146679
|
|
|
|
|
|
|
|
| |
for the structure type.
rdar://10499337
llvm-svn: 145461
|
|
|
|
|
|
| |
Fixes rdar://10433202
llvm-svn: 144938
|
|
|
|
| |
llvm-svn: 144548
|
|
|
|
|
|
| |
"TypedefContext". No functionality change.
llvm-svn: 144248
|
|
|
|
| |
llvm-svn: 144168
|
|
|
|
|
|
|
| |
the other helper functions, since we already differentiated the cases it was
testing between. No functionality change.
llvm-svn: 144167
|
|
|
|
|
|
|
|
| |
implicitly perform an lvalue-to-rvalue conversion if used on an lvalue
expression. Also improve the documentation of Expr::Evaluate* to indicate which
of them will accept expressions with side-effects.
llvm-svn: 143263
|
|
|
|
|
|
| |
for concrete type in -flimit-debug-info mode. This fixes some of the failures from bs15503.exp tests in gdb testsuite.
llvm-svn: 143227
|
|
|
|
| |
llvm-svn: 142873
|
|
|
|
|
|
|
| |
closer to what GCC does, except that GCC also checks that the inodes for $PWD
and '.' match.
llvm-svn: 142633
|
|
|
|
| |
llvm-svn: 142420
|
|
|
|
|
|
|
|
| |
casts in ARC.
No semantic analysis yet.
llvm-svn: 142208
|
|
|
|
|
|
| |
Lack of half FP was a regression compared to llvm-gcc.
llvm-svn: 142016
|
|
|
|
| |
llvm-svn: 141970
|
|
|
|
| |
llvm-svn: 141969
|
|
|
|
| |
llvm-svn: 141968
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Start handling debug line and scope information better:
Migrate most of the location setting within the larger API in CGDebugInfo and
update a lot of callers.
Remove the existing file/scope change machinery in UpdateLineDirectiveRegion
and replace it with DILexicalBlockFile usage.
Finishes off the rest of rdar://10246360
after fixing a few bugs that were exposed in gdb testsuite testing.
llvm-svn: 141893
|
|
|
|
| |
llvm-svn: 141796
|
|
|
|
|
|
| |
if we're going to delete the setLocation as we did in 141732.
llvm-svn: 141762
|
|
|
|
|
|
|
|
|
|
|
| |
Migrate most of the location setting within the larger API in CGDebugInfo and
update a lot of callers.
Remove the existing file/scope change machinery in UpdateLineDirectiveRegion
and replace it with DILexicalBlockFile usage.
Finishes off the rest of rdar://10246360
llvm-svn: 141732
|
|
|
|
| |
llvm-svn: 141731
|
|
|
|
| |
llvm-svn: 141730
|
|
|
|
|
|
|
|
|
|
|
| |
- Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions,
and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert
behaviour.
- Factor out evaluation of bitfield bit widths.
- Fix a few places which would evaluate an expression twice: once to determine
whether it is a constant expression, then again to get the value.
llvm-svn: 141561
|
|
|
|
|
|
|
|
| |
committed at the moment to help support C++0x <atomic>, but it should be a solid base for implementing the full specification of C1x _Atomic.
Thanks to Jeffrey Yasskin for the thorough review!
llvm-svn: 141330
|
|
|
|
|
|
|
|
|
|
| |
non-fragile ABI we may not be able to lay out the type and the debugger
would ignore us even if we did put in the offset. Go ahead and just
put any value there and don't look up the offset since it may not exist.
rdar://10210157
llvm-svn: 141261
|
|
|
|
| |
llvm-svn: 141260
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of always storing all source locations for the selector identifiers
we check whether all the identifiers are in a "standard" position; "standard" position is
-Immediately before the arguments: -(id)first:(int)x second:(int)y;
-With a space between the arguments: -(id)first: (int)x second: (int)y;
-For nullary selectors, immediately before ';': -(void)release;
In such cases we infer the locations instead of storing them.
llvm-svn: 140989
|
|
|
|
|
|
| |
correspond to.
llvm-svn: 140740
|
|
|
|
|
|
| |
exist anymore.
llvm-svn: 140739
|
|
|
|
| |
llvm-svn: 140738
|
|
|
|
|
|
|
| |
point in the code. Ensures that we don't miss any places and the
check is reasonably cheap.
llvm-svn: 140737
|
|
|
|
| |
llvm-svn: 140736
|
|
|
|
| |
llvm-svn: 140531
|
|
|
|
| |
llvm-svn: 140502
|