- Jan 31, 2011
-
-
Chris Lattner authored
llvm-svn: 124599
-
Caroline Tice authored
llvm-svn: 124598
-
Johnny Chen authored
to adjust the stack pointer by adding an imm7-scaled value to the SP. llvm-svn: 124596
-
Johnny Chen authored
llvm-svn: 124595
-
Caroline Tice authored
llvm-svn: 124594
-
Douglas Gregor authored
conversions (<rdar://problem/8592139>) for overload resolution. The conversion ranking mirrors C++'s conversion ranking fairly closely, except that we use a same pseudo-subtyping relationship employed by Objective-C pointer assignment rather than simple checking derived-to-base conversions. This change covers: - Conversions to pointers to a specific object type are better than conversions to 'id', 'Class', qualified 'id', or qualified 'Class' (note: GCC doesn't perform this ranking, but it matches C++'s rules for ranking conversions to void*). - Conversions to qualified 'id' or qualified 'Class' are better than conversions to 'id' or 'Class', respectively. - When two conversion sequences convert to the same type, rank the conversions based on the relationship between the types we're converting from. - When two conversion sequences convert from the same non-id, non-Class type, rank the conversions based on the relationship of the types we're converting to. (note: GCC allows this ranking even when converting from 'id', which is extremeley dangerous). llvm-svn: 124591
-
Oscar Fuentes authored
for dlopen/dlerror. Patch by arrowdodger! llvm-svn: 124590
-
Caroline Tice authored
llvm-svn: 124589
-
Johnny Chen authored
llvm-svn: 124588
-
Richard Osborne authored
llvm-svn: 124587
-
Johnny Chen authored
llvm-svn: 124586
-
Argyrios Kyrtzidis authored
llvm-svn: 124585
-
Douglas Gregor authored
allow ref-qualifiers on function types used as template type arguments. GNU actually allows cv-qualifiers on function types in many places where it shouldn't, so we currently categorize this as a GNU extension. llvm-svn: 124584
-
NAKAMURA Takumi authored
llvm-svn: 124583
-
-
-
Argyrios Kyrtzidis authored
Fix the diagnostic when we are shadowing an external variable and there exists a locally scoped extern with the same name. llvm-svn: 124580
-
Argyrios Kyrtzidis authored
llvm-svn: 124579
-
-
Argyrios Kyrtzidis authored
Fixes rdar://8736362. llvm-svn: 124577
-
Argyrios Kyrtzidis authored
Error for use of field from anonymous struct or union should say "invalid use of nonstatic data member" not "call to non-static member function without an object argument". llvm-svn: 124576
-
Argyrios Kyrtzidis authored
Allow taking the address of such a field for a pointer-to-member constant. Fixes rdar://8818236. llvm-svn: 124575
-
Argyrios Kyrtzidis authored
llvm-svn: 124574
-
Francois Pichet authored
This fixes a few compile errors when parsing <regex> from MSVC 2008 with clang. llvm-svn: 124573
-
- Jan 30, 2011
-
-
Anton Korobeynikov authored
llvm-svn: 124570
-
Anton Korobeynikov authored
llvm-svn: 124569
-
Anders Carlsson authored
(A+B) == A -> B == 0 A == (A+B) -> B == 0 llvm-svn: 124567
-
Anders Carlsson authored
current translation unit as available_externally. This helps devirtualize the second example in PR3100, comment 18: struct S { S() {}; virtual void xyzzy(); }; inline void foo(S *s) { s->xyzzy(); } void bar() { S s; foo(&s); } This involved four major changes: 1. In DefineUsedVTables, always mark virtual member functions as referenced for non-template classes and class template specializations. 2. In CodeGenVTables::ShouldEmitVTableInThisTU return true if optimizations are enabled, even if the key function is not implemented in this translation unit. We don't ever do this for code compiled with -fapple-kext, because we don't ever want to devirtualize virtual member function calls in that case. 3. Give the correct linkage for vtables where the key function is not defined. 4. Update the linkage for RTTI structures when necessary. llvm-svn: 124565
-
Jakob Stoklund Olesen authored
This is similar to the -unroll-threshold option. There should be no change in behavior when -tail-dup-size is not explicit on the llc command line. llvm-svn: 124564
-
Greg Clayton authored
and implemented it for the EmulateInstructionARM class. llvm-svn: 124563
-
Greg Clayton authored
of the EmulateInstruction class. llvm-svn: 124562
-
Duncan Sands authored
by PR9088 fixes things. llvm-svn: 124561
-
Duncan Sands authored
to do this and more, but would only do it if X/Y had only one use. Spotted as the most common missed simplification in SPEC by my auto-simplifier, now that it knows about nuw/nsw/exact flags. This removes a bunch of multiplications from 447.dealII and 483.xalancbmk. It also removes a lot from tramp3d-v4, which results in much more inlining. llvm-svn: 124560
-
Benjamin Kramer authored
Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, c1+c2) when c1 equals the amount of bits that are truncated off. This happens all the time when a smul is promoted to a larger type. On x86-64 we now compile "int test(int x) { return x/10; }" into movslq %edi, %rax imulq $1717986919, %rax, %rax movq %rax, %rcx shrq $63, %rcx sarq $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax" addl %ecx, %eax This fires 96 times in gcc.c on x86-64. llvm-svn: 124559
-
Roman Divacky authored
invocation. This mimics what gcc does and fixes libtool check for libraries. llvm-svn: 124558
-
Nick Lewycky authored
llvm-svn: 124557
-
Nick Lewycky authored
llvm-svn: 124556
-
- Jan 29, 2011
-
-
Anders Carlsson authored
llvm-svn: 124555
-
Anders Carlsson authored
llvm-svn: 124554
-
Anders Carlsson authored
When emitting RTTI for a non-class type, compute the visibility of the RTTI data based on the explicit visibility of the type. llvm-svn: 124553
-