- May 05, 2010
-
-
Jim Grosbach authored
llvm-svn: 103114
-
Jim Grosbach authored
llvm-svn: 103113
-
Daniel Dunbar authored
writing them. - <rdar://problem/7885351> integrated assembler broken for i386 objc code llvm-svn: 103112
-
Daniel Dunbar authored
llvm-svn: 103111
-
Daniel Dunbar authored
llvm-svn: 103110
-
Evan Cheng authored
llvm-svn: 103109
-
rdar://7415680Chris Lattner authored
Microoptimize Twine's with unsigned and int to not pin their value to the stack. This saves stack space in common cases and allows mem2reg in the caller. A simple example is: void foo(const Twine &); void bar(int x) { foo("xyz: " + Twine(x)); } Before: __Z3bari: subq $40, %rsp movl %edi, 36(%rsp) leaq L_.str3(%rip), %rax leaq 36(%rsp), %rcx leaq 8(%rsp), %rdi movq %rax, 8(%rsp) movq %rcx, 16(%rsp) movb $3, 24(%rsp) movb $7, 25(%rsp) callq __Z3fooRKN4llvm5TwineE addq $40, %rsp ret After: __Z3bari: subq $24, %rsp leaq L_.str3(%rip), %rax movq %rax, (%rsp) movslq %edi, %rax movq %rax, 8(%rsp) movb $3, 16(%rsp) movb $7, 17(%rsp) leaq (%rsp), %rdi callq __Z3fooRKN4llvm5TwineE addq $24, %rsp ret It saves 16 bytes of stack and one instruction in this case. llvm-svn: 103107
-
Jeffrey Yasskin authored
ddunbar says the gcc-4.3.3 suppressions are obsolete. llvm-svn: 103106
-
Evan Cheng authored
llvm-svn: 103104
-
Evan Cheng authored
llvm-svn: 103103
-
Evan Cheng authored
Teach liveintervalanalysis about virtual registers which are defined by reg_sequence instructions that are formed by registers defined by distinct instructions. e.g. 80 %reg1041:6<def> = VSHRNv4i16 %reg1034<kill>, 12, pred:14, pred:%reg0 . . . 120 %reg1041:5<def> = VSHRNv4i16 %reg1039<kill>, 12, pred:14, pred:%reg0 llvm-svn: 103102
-
Jeffrey Yasskin authored
llvm-svn: 103100
-
Daniel Dunbar authored
llvm-svn: 103095
-
Daniel Dunbar authored
when possible. - <rdar://problem/7934873> llvm-svn: 103092
-
Daniel Dunbar authored
llvm-svn: 103091
-
mike-m authored
llvm-svn: 103090
-
Douglas Gregor authored
destructors, place the __cxa_atexit call after the __cxa_guard_release call, mimicking GCC/LLVM-GCC behavior. Noticed while debugging something related. llvm-svn: 103088
-
Alexis Hunt authored
with no whitespace. This will allow statements to be referred to in attribute TableGen files. llvm-svn: 103087
-
Alexis Hunt authored
whitespace which makes this patch unreadable. Will recommit without the whitespace. llvm-svn: 103086
-
Benjamin Kramer authored
This should fix mysteriously crashing boost regression tests when stderr is managed by bjam (PR7043). llvm-svn: 103085
-
Shantonu Sen authored
when building llvm with clang llvm-svn: 103084
-
Eric Christopher authored
hack the code to turn it off when debugging. llvm-svn: 103083
-
Douglas Gregor authored
ParseOptionalCXXScopeSpecifier() only annotates the subset of template-ids which are not subject to lexical ambiguity. Add support for the more general case in ParseUnqualifiedId() to handle cases such as A::template B(). Also improve some diagnostic locations. Fixes PR7030, from Alp Toker! llvm-svn: 103081
-
Chris Lattner authored
print out all of the category numbers with their description. This is useful for clients that want to map the numbers produced by --fdiagnostics-show-category=id to their human readable string form. The output is simple but utilitarian: $ clang --print-diagnostic-categories 1,Format String 2,Something Else This implements rdar://7928193 llvm-svn: 103080
-
Douglas Gregor authored
implicitly-generated copy constructor. Previously, Sema would perform some checking and instantiation to determine which copy constructors, etc., would be called, then CodeGen would attempt to figure out which copy constructor to call... but would get it wrong, or poke at an uninstantiated default argument, or fail in other ways. The new scheme is similar to what we now do for the implicit copy-assignment operator, where Sema performs all of the semantic analysis and builds specific ASTs that look similar to the ASTs we'd get from explicitly writing the copy constructor, so that CodeGen need only do a direct translation. However, it's not quite that simple because one cannot explicit write elementwise copy-construction of an array. So, I've extended CXXBaseOrMemberInitializer to contain a list of indexing variables used to copy-construct the elements. For example, if we have: struct A { A(const A&); }; struct B { A array[2][3]; }; then we generate an implicit copy assignment operator for B that looks something like this: B::B(const B &other) : array[i0][i1](other.array[i0][i1]) { } CodeGen will loop over the invented variables i0 and i1 to visit all elements in the array, so that each element in the destination array will be copy-constructed from the corresponding element in the source array. Of course, if we're dealing with arrays of scalars or class types with trivial copy-assignment operators, we just generate a memcpy rather than a loop. Fixes PR6928, PR5989, and PR6887. Boost.Regex now compiles and passes all of its regression tests. Conspicuously missing from this patch is handling for the exceptional case, where we need to destruct those objects that we have constructed. I'll address that case separately. llvm-svn: 103079
-
Anders Carlsson authored
llvm-svn: 103078
-
Douglas Gregor authored
llvm-svn: 103077
-
Chris Lattner authored
llvm-svn: 103075
-
Alexis Hunt authored
llvm-svn: 103074
-
Alexis Hunt authored
llvm-svn: 103073
-
Alexis Hunt authored
llvm-svn: 103072
-
Alexis Hunt authored
llvm-svn: 103071
-
Chris Lattner authored
llvm-svn: 103067
-
Ted Kremenek authored
clang_getCursor(). Tokens are now annotated with the cursor (for the matching AST element) that most closely encompasses that token. llvm-svn: 103064
-
Ted Kremenek authored
llvm-svn: 103063
-
Ted Kremenek authored
llvm-svn: 103062
-
Ted Kremenek authored
Refactor visitor logic for clang_annotateTokens() into a worker class. No functionality change yet. llvm-svn: 103061
-
Bob Wilson authored
MachineSSAUpdater to avoid duplicating all the code. llvm-svn: 103060
-
Eric Christopher authored
llvm-svn: 103057
-
- May 04, 2010
-
-
Chris Lattner authored
over choice of: t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat] t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat,1] t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat,Format String] dox to come. llvm-svn: 103056
-