| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121121
|
|
|
|
| |
llvm-svn: 121097
|
|
|
|
| |
llvm-svn: 121084
|
|
|
|
|
|
|
| |
I'm not opposed to the idea in concept, but there's no point in preserving
abortive experiments.
llvm-svn: 121083
|
|
|
|
|
|
| |
New AST node introduced: BinaryTypeTraitExpr; to be reused for more intrinsics.
llvm-svn: 121074
|
|
|
|
|
|
| |
introduced in r121023.
llvm-svn: 121025
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
My previous attempt at solving the compile-time problem with many
redeclarations of the same entity cached both linkage and visibility,
while this patch only tackles linkage. There are several reasons for
this difference:
- Linkage is a language concept, and is evaluated many times during
semantic analysis and codegen, while visibility is only a
code-generation concept that is evaluated only once per (unique)
declaration. Hence, we *must* optimize linkage calculations but
don't need to optimize visibility computation.
- Once we know the linkage of a declaration, subsequent
redeclarations can't change that linkage. Hence, cache
invalidation is far simpler than for visibility, where a later
redeclaration can completely change the visibility.
- We have 3 spare bits in Decl to store the linkage cache, so the
cache doesn't increase the size of declarations. With the
visibility+linkage cache, NamedDecl got larger.
llvm-svn: 121023
|
|
|
|
|
|
|
|
|
| |
and visibility of declarations, because it was extremely messy and it
increased the size of NamedDecl.
An improved implementation is forthcoming.
llvm-svn: 121012
|
|
|
|
|
|
| |
routines.
llvm-svn: 121007
|
|
|
|
|
|
| |
reason this is limited to C++, and it's certainly not limited to temporaries.
llvm-svn: 120996
|
|
|
|
|
|
|
|
|
| |
build one when either of the operands calls itself type-dependent;
previously we were building when one of the operand types was dependent,
which is not always the same thing and which can lead to unfortunate
inconsistencies later. Fixes PR8739.
llvm-svn: 120990
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
used in a constructor initializer list:
struct X {
X() : au_i1(123) {}
union {
int au_i1;
float au_f1;
};
};
clang will now deal with au_i1 explicitly as an IndirectFieldDecl.
llvm-svn: 120900
|
|
|
|
|
|
| |
Abramo noticed this.
llvm-svn: 120898
|
|
|
|
| |
llvm-svn: 120897
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not actually frequently used, because ImpCastExprToType only creates a node
if the types differ. So explicitly create an ICE in the lvalue-to-rvalue
conversion code in DefaultFunctionArrayLvalueConversion() as well as several
other new places, and consistently deal with the consequences throughout the
compiler.
In addition, introduce a new cast kind for loading an ObjCProperty l-value,
and make sure we emit those nodes whenever an ObjCProperty l-value appears
that's not on the LHS of an assignment operator.
This breaks a couple of rewriter tests, which I've x-failed until future
development occurs on the rewriter.
Ted Kremenek kindly contributed the analyzer workarounds in this patch.
llvm-svn: 120890
|
|
|
|
|
|
|
| |
no property accessor class method to be found, instead of
crashing in IRGen. // rdar://8703553
llvm-svn: 120855
|
|
|
|
| |
llvm-svn: 120828
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
declarations.
The motivation for this patch is that linkage/visibility computations
are linear in the number of redeclarations of an entity, and we've run
into a case where a single translation unit has > 6500 redeclarations
of the same (unused!) external variable. Since each redeclaration
involves a linkage check, the resulting quadratic behavior makes Clang
slow to a crawl. With this change, a simple test with 512
redeclarations of a variable syntax-checks ~20x faster than
before.
That said, I hate this change, and will probably end up reverting it
in a few hours. Reasons to hate it:
- It makes NamedDecl larger, since we don't have enough free bits in
Decl to squeeze in the extra information about caching.
- There are way too many places where we need to invalidate this
cache, because the visibility of a declaration can change due to
redeclarations (!). Despite self-hosting and passing the testsuite,
I have no confidence that I've found all of places where this cache
needs to be invalidated.
llvm-svn: 120808
|
|
|
|
| |
llvm-svn: 120736
|
|
|
|
| |
llvm-svn: 120729
|
|
|
|
|
|
| |
code I wrote, returning "true" on error is still unnatural.
llvm-svn: 120727
|
|
|
|
|
|
|
|
| |
objects imported into blocks. //rdar://8594790.
Will have a test case coming (as well as one
sent to llvm test suite).
llvm-svn: 120713
|
|
|
|
| |
llvm-svn: 120701
|
|
|
|
| |
llvm-svn: 120700
|
|
|
|
|
|
|
|
| |
ObjCPropertyRefExpr
into the latter.
llvm-svn: 120643
|
|
|
|
|
|
| |
to be available in debug vs. release builds.
llvm-svn: 120629
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
definition of an Objective-C class. Unlike with C/C++ classes, we
don't have a well-defined point in Sema where Objective-C classes are
checked for completeness, nor do we need to involve Sema when
completing a class. Therefore, we take the appropriate of having the
external AST source mark a particular Objective-C class as having an
external declaration; when using one of the accessors of an
Objective-C class that has an external declaration, we request that
the external AST source fill in the Objective-C class definition.
llvm-svn: 120627
|
|
|
|
|
|
|
| |
to be used in copy helper synthesis of __block
variables. wip.
llvm-svn: 120617
|
|
|
|
|
|
| |
underlying type, from Daniel Wallin
llvm-svn: 120576
|
|
|
|
| |
llvm-svn: 120562
|
|
|
|
| |
llvm-svn: 120555
|
|
|
|
| |
llvm-svn: 120523
|
|
|
|
|
|
| |
declarations.
llvm-svn: 120448
|
|
|
|
| |
llvm-svn: 120446
|
|
|
|
| |
llvm-svn: 120433
|
|
|
|
|
|
| |
about the reliability of this yet.
llvm-svn: 120422
|
|
|
|
| |
llvm-svn: 120421
|
|
|
|
|
|
| |
Doug isn't likely to rip back out.
llvm-svn: 120409
|
|
|
|
| |
llvm-svn: 120402
|
|
|
|
|
|
| |
Type.cpp:1000: warning: control reaches end of non-void function
llvm-svn: 120376
|
|
|
|
|
|
|
| |
when checking for integer signed/unsigned-ness. PR8694,
// rdar://8707031
llvm-svn: 120345
|
|
|
|
| |
llvm-svn: 120293
|
|
|
|
|
|
| |
missed previously
llvm-svn: 120289
|
|
|
|
|
|
| |
object. Fixes PR8683.
llvm-svn: 120247
|
|
|
|
|
|
| |
as well.
llvm-svn: 120137
|
|
|
|
| |
llvm-svn: 120134
|
|
|
|
| |
llvm-svn: 120133
|
|
|
|
| |
llvm-svn: 120131
|
|
|
|
| |
llvm-svn: 120130
|
|
|
|
| |
llvm-svn: 120129
|