- Mar 24, 2012
-
-
Rafael Espindola authored
Thanks to NAKAMURA Takumi for finding it! llvm-svn: 153383
-
NAKAMURA Takumi authored
Revert r153360 (and r153380), "Second part of PR12251. Produce the range metadata in clang for booleans and". For i686 targets (eg. cygwin), I saw "Range must not be empty!" in verifier. It produces (i32)[0x80000000:0x80000000) from (uint64_t)[0xFFFFFFFF80000000ULL:0x0000000080000000ULL), for signed i32 on MDNode::Range. llvm-svn: 153382
-
Rafael Espindola authored
c++ enums. llvm-svn: 153360
-
Kostya Serebryany authored
llvm-svn: 153356
-
- Mar 23, 2012
-
-
Bill Wendling authored
cast the value to x86_mmx. This gives the ASM string the correct call signature. <rdar://problem/10919182> llvm-svn: 153290
-
- Mar 22, 2012
-
-
Eli Friedman authored
Make sure we correctly set the alignment for vector loads and stores associated with vector element lvalues. Patch by Kevin Schoedel (with some minor modifications by me). llvm-svn: 153285
-
- Mar 21, 2012
-
-
Eric Christopher authored
llvm-svn: 153149
-
- Mar 20, 2012
-
-
Benjamin Kramer authored
Fixes PR12284. The test case only triggered under asan/valgrind, but it's better than nothing. llvm-svn: 153120
-
Benjamin Kramer authored
TrackingVH notices when it gets RAUW'd. Fixes PR12305 and PR12315. llvm-svn: 153115
-
David Chisnall authored
llvm-svn: 153090
-
- Mar 16, 2012
-
-
Benjamin Kramer authored
% is a common character in IR so we'd crash on almost any malformed IR. The diagnostic formatter expects a formatting directive when it sees an unescaped %. llvm-svn: 152956
-
Bill Wendling authored
store to 1. This allows code-gen to select a more appropriate alignment. If left to zero, an alignment greater than the alignment of the pointer may be selected, causing code-gen to use instructions which require an alignment greater than the pointer guarantees. <rdar://problem/11043589> llvm-svn: 152951
-
Eli Friedman authored
Don't try to create "store atomic" instructions of non-integer types; they aren't supported at the moment. PR12040. llvm-svn: 152891
-
Eli Friedman authored
When a variable has a specified asm name, but isn't using the register storage class, the asm name doesn't specify a register. PR12244. llvm-svn: 152873
-
- Mar 15, 2012
-
-
James Molloy authored
Patch by Silviu Baranga! llvm-svn: 152788
-
Chad Rosier authored
-fno-inline-functions. This behaves much like -fno-inline in gcc, but based on a discussion with Daniel it was decided that -fno-inline-functions should subsume -fno-inline. Please speak up if you object. The -fno-inline flag remains ignored. Final part of rdar://10972766 llvm-svn: 152754
-
- Mar 14, 2012
-
-
Eric Christopher authored
args. Fixes rdar://11042577 llvm-svn: 152691
-
Eric Christopher authored
function templates as well. A future commit will mangle the added name with the template args like classes are mangled. Fixes rdar://10986010 llvm-svn: 152683
-
- Mar 13, 2012
-
-
Argyrios Kyrtzidis authored
ObjCInterfaceDecl::getReferencedProtocols(), because the iterators are safe to use even if the caller did not check that the interface is a definition. llvm-svn: 152597
-
- Mar 11, 2012
-
-
David Blaikie authored
The member variable is always "LangOpts" and the member function is always "getLangOpts". Reviewed by Chris Lattner llvm-svn: 152536
-
Stepan Dyatkovskiy authored
Renamed methods caseBegin, caseEnd and caseDefault with case_begin, case_end, and case_default. Added some notes relative to case iterators. llvm-svn: 152533
-
- Mar 10, 2012
-
-
Benjamin Kramer authored
llvm-svn: 152503
-
John McCall authored
track whether the referenced declaration comes from an enclosing local context. I'm amenable to suggestions about the exact meaning of this bit. llvm-svn: 152491
-
John McCall authored
we correctly emit loads of BlockDeclRefExprs even when they don't qualify as ODR-uses. I think I'm adequately convinced that BlockDeclRefExpr can die. llvm-svn: 152479
-
Daniel Dunbar authored
- We do this when it is easy to determine that the backend will pass them on the stack properly by itself. Currently LLVM codegen is really bad in some cases with byval, for example, on the test case here (which is derived from Sema code, which likes to pass SourceLocations around):: struct s47 { unsigned a; }; void f47(int,int,int,int,int,int,struct s47); void test47(int a, struct s47 b) { f47(a, a, a, a, a, a, b); } we used to emit code like this:: ... movl %esi, -8(%rbp) movl -8(%rbp), %ecx movl %ecx, (%rsp) ... to handle moving the struct onto the stack, which is just appalling. Now we generate:: movl %esi, (%rsp) which seems better, no? llvm-svn: 152462
-
- Mar 09, 2012
-
-
Eli Friedman authored
Make sure we update the static local decl address map when we are forced to rebuild a global because of the initializer. <rdar://problem/10957867>. llvm-svn: 152372
-
Eli Friedman authored
Make sure constant emission handles initializer lists with strings correctly. Part of <rdar://problem/10957867>. llvm-svn: 152370
-
Daniel Dunbar authored
- This function is not at all free; pass it around along some hot paths instead of recomputing it deep inside various VarDecl methods. llvm-svn: 152363
-
- Mar 08, 2012
-
-
Rafael Espindola authored
HandleCXXStaticMemberVarInstantiation. Suggested by Argyrios. llvm-svn: 152320
-
Stepan Dyatkovskiy authored
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120130/136146.html Implemented CaseIterator and it solves almost all described issues: we don't need to mix operand/case/successor indexing anymore. Base iterator class is implemented as a template since it may be initialized either from "const SwitchInst*" or from "SwitchInst*". ConstCaseIt is just a read-only iterator. CaseIt is read-write iterator; it allows to change case successor and case value. Usage of iterator allows totally remove resolveXXXX methods. All indexing convertions done automatically inside the iterator's getters. Main way of iterator usage looks like this: SwitchInst *SI = ... // intialize it somehow for (SwitchInst::CaseIt i = SI->caseBegin(), e = SI->caseEnd(); i != e; ++i) { BasicBlock *BB = i.getCaseSuccessor(); ConstantInt *V = i.getCaseValue(); // Do something. } If you want to convert case number to TerminatorInst successor index, just use getSuccessorIndex iterator's method. If you want initialize iterator from TerminatorInst successor index, use CaseIt::fromSuccessorIndex(...) method. There are also related changes in llvm-clients: klee and clang. llvm-svn: 152298
-
- Mar 07, 2012
-
-
Richard Smith authored
analysis to make the AST representation testable. They are represented by a new UserDefinedLiteral AST node, which is a sugared CallExpr. All semantic properties, including full CodeGen support, are achieved for free by this representation. UserDefinedLiterals can never be dependent, so no custom instantiation behavior is required. They are mangled as if they were direct calls to the underlying literal operator. This matches g++'s apparent behavior (but not its actual mangling, which is broken for literal-operator-ids). User-defined *string* literals are now fully-operational, but the semantic analysis is quite hacky and needs more work. No other forms of user-defined literal are created yet, but the AST support for them is present. This patch committed after midnight because we had already hit the quota for new kinds of literal yesterday. llvm-svn: 152211
-
Richard Smith authored
is not usable in a constant expression. ~2.5% speedup on 403.gcc / combine.c. llvm-svn: 152193
-
- Mar 06, 2012
-
-
Ted Kremenek authored
NSNumber, and boolean literals. This includes both Sema and Codegen support. Included is also support for new Objective-C container subscripting. My apologies for the large patch. It was very difficult to break apart. The patch introduces changes to the driver as well to cause clang to link in additional runtime support when needed to support the new language features. Docs are forthcoming to document the implementation and behavior of these features. llvm-svn: 152137
-
- Mar 05, 2012
-
-
Rafael Espindola authored
In the included testcase, soma thinks that we already have a definition after we see the out of line decl. Codegen puts it in a deferred list, to be output if a use is seen. This would break when we saw an explicit template instantiation definition, since codegen would not be notified. This patch adds a method to the consumer interface so that soma can notify codegen that this decl is now required. llvm-svn: 152024
-
- Mar 04, 2012
-
-
Chandler Carruth authored
llvm-svn: 152005
-
Chris Lattner authored
reported by Richard Smith. llvm-svn: 151993
-
- Mar 03, 2012
-
-
Richard Smith authored
scalar emission of DeclRefExprs to const bools: emit scalar bools as i1, not as i8. In addition to the extra unit testing, this has successfully bootstrapped. llvm-svn: 151955
-
- Mar 02, 2012
-
-
Jay Foad authored
types of the pointer arguments. llvm-svn: 151927
-
Daniel Dunbar authored
Revert r151879, r151880, "PR12145: Avoid emitting loads of constexpr variables in contexts where there" and "Fix buildbot: make this test less dependent on the value names in the produced IR." They broke bootstrap. llvm-svn: 151922
-
Richard Smith authored
is no odr-use of the variable. Go slightly beyond what the standard requires for variables of reference type. llvm-svn: 151879
-