| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
instead of crashing in code gen.
llvm-svn: 84968
|
| |
|
|
|
|
| |
Evan Cheng.
llvm-svn: 84967
|
| |
|
|
| |
llvm-svn: 84964
|
| |
|
|
|
|
| |
argument-dependent lookup too. This fixes PR5244.
llvm-svn: 84963
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
qualified reference to a declaration that is not a non-static data
member or non-static member function, e.g.,
namespace N { int i; }
int j = N::i;
Instead, extend DeclRefExpr to optionally store the qualifier. Most
clients won't see or care about the difference (since
QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the
number of top-level expression types that clients need to cope with,
brings the implementation of DeclRefExpr into line with MemberExpr,
and simplifies and unifies our handling of declaration references.
Extended DeclRefExpr to (optionally) store explicitly-specified
template arguments. This occurs when naming a declaration via a
template-id (which will be stored in a TemplateIdRefExpr) that,
following template argument deduction and (possibly) overload
resolution, is replaced with a DeclRefExpr that refers to a template
specialization but maintains the template arguments as written.
llvm-svn: 84962
|
| |
|
|
|
|
|
| |
pointer-to-member type conversion follwed by a pointer-to-member
standard conversion.
llvm-svn: 84955
|
| |
|
|
|
|
| |
the scale overflows pointer-sized arithmetic. This fixes PR5281.
llvm-svn: 84954
|
| |
|
|
|
|
| |
changed under the transform.
llvm-svn: 84953
|
| |
|
|
|
|
|
| |
exact backedge taken count, when checking for infinite loops. This allows
it to delete loops with multiple exit conditions.
llvm-svn: 84952
|
| |
|
|
|
|
| |
TreeTransform.h:2333: warning: suggest parentheses around && within ||
llvm-svn: 84949
|
| |
|
|
| |
llvm-svn: 84947
|
| |
|
|
| |
llvm-svn: 84943
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
implements something out of Target/README.txt producing:
_foo: ## @foo
movl 4(%esp), %eax
movapd LCPI1_0, %xmm0
movapd %xmm0, (%eax)
ret $4
instead of:
_foo: ## @foo
movl 4(%esp), %eax
movapd _b, %xmm0
mulpd LCPI1_0, %xmm0
addpd _a, %xmm0
movapd %xmm0, (%eax)
ret $4
llvm-svn: 84942
|
| |
|
|
|
|
| |
bytes (i256).
llvm-svn: 84941
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
non-type-safe constant initializers. This sort of thing happens
quite a bit for 4-byte loads out of string constants, unions,
bitfields, and an interesting endianness check from sqlite, which
is something like this:
const int sqlite3one = 1;
# define SQLITE_BIGENDIAN (*(char *)(&sqlite3one)==0)
# define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1)
# define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE)
all of these macros now constant fold away.
This implements PR3152 and is based on a patch started by Eli, but heavily
modified and extended.
llvm-svn: 84936
|
| |
|
|
| |
llvm-svn: 84934
|
| |
|
|
| |
llvm-svn: 84932
|
| |
|
|
| |
llvm-svn: 84931
|
| |
|
|
| |
llvm-svn: 84930
|
| |
|
|
|
|
|
| |
they don't get lost; I don't think the originator has
write access.
llvm-svn: 84928
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
identifier. This caused a crash when reading PCH files that contained
long identifier names.
The issue is that 'StrLenPtr' was previously a 'const char *', meaning
the byte loaded from it would be interpretted as a signed integer. If
the topmost bit was set, conversion to 'unsigned' would extend that
bit, causing an overflow.
The solution is to make 'StrLenPtr' an 'unsigned char *', always
treating the value as an unsigned integer.
This fixes: <rdar://problem/7328900>
llvm-svn: 84925
|
| |
|
|
| |
llvm-svn: 84924
|
| |
|
|
| |
llvm-svn: 84923
|
| |
|
|
| |
llvm-svn: 84922
|
| |
|
|
| |
llvm-svn: 84921
|
| |
|
|
|
|
| |
one was PCH'ed without any.
llvm-svn: 84920
|
| |
|
|
| |
llvm-svn: 84919
|
| |
|
|
|
|
| |
does.
llvm-svn: 84916
|
| |
|
|
|
|
| |
Just r84734 now that some fundamental work has been completed.
llvm-svn: 84914
|
| |
|
|
| |
llvm-svn: 84913
|
| |
|
|
|
|
| |
be performed by the post-RA scheduler. The default is none.
llvm-svn: 84911
|
| |
|
|
|
|
| |
both scalar and aggregates.
llvm-svn: 84910
|
| |
|
|
| |
llvm-svn: 84909
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the DeclaratorInfo, one for semantic analysis), just build a single type whose
canonical type will reflect the semantic analysis (assuming the type is
well-formed, of course).
To make that work, make a few changes to the type system:
* allow the nominal pointee type of a reference type to be a (possibly sugared)
reference type. Also, preserve the original spelling of the reference type.
Both of these can be ignored on canonical reference types.
* Remove ObjCProtocolListType and preserve the associated source information on
the various ObjC TypeLocs. Preserve the spelling of protocol lists except in
the canonical form.
* Preserve some level of source type structure on parameter types, but
canonicalize on the canonical function type. This is still a WIP.
Drops code size, makes strides towards accurate source location representation,
slight (~1.7%) progression on Cocoa.h because of complexity drop.
llvm-svn: 84907
|
| |
|
|
|
|
| |
clang_createTranslationUnit() and clang_createTranslationUnitFromSource(). These kind of errors are ones that shouldn't be missed.
llvm-svn: 84904
|
| |
|
|
|
|
|
|
|
|
|
| |
prevents it being correct within a multithreaded context.
This address: PR 5277 (Program::Wait is unsafe to call from multiple threads).
Note: If waitpid() turns out to be non-portable, we can add more autoconf magic, or look into
another solution.
llvm-svn: 84903
|
| |
|
|
|
|
| |
gcc-4.4.
llvm-svn: 84902
|
| |
|
|
| |
llvm-svn: 84900
|
| |
|
|
| |
llvm-svn: 84898
|
| |
|
|
| |
llvm-svn: 84895
|
| |
|
|
| |
llvm-svn: 84894
|
| |
|
|
| |
llvm-svn: 84893
|
| |
|
|
| |
llvm-svn: 84892
|
| |
|
|
| |
llvm-svn: 84891
|
| |
|
|
|
|
|
|
|
|
|
|
| |
even when keys get RAUWed and deleted during its lifetime. By default the keys
act like WeakVHs, but users can pass a third template parameter to configure
how updates work and whether to do anything beyond updating the map on each
action.
It's also possible to automatically acquire a lock around ValueMap updates
triggered by RAUWs and deletes, to support the ExecutionEngine.
llvm-svn: 84890
|
| |
|
|
| |
llvm-svn: 84889
|
| |
|
|
| |
llvm-svn: 84888
|
| |
|
|
| |
llvm-svn: 84886
|
| |
|
|
| |
llvm-svn: 84885
|
| |
|
|
| |
llvm-svn: 84884
|