- Mar 10, 2012
-
-
Jeffrey Yasskin authored
llvm-svn: 152501
-
Fariborz Jahanian authored
declaration of class metadata when they are defined later. llvm-svn: 152500
-
Bill Wendling authored
llvm-svn: 152499
-
Benjamin Kramer authored
llvm-svn: 152498
-
Bill Wendling authored
The 'CmpInst::isFalseWhenEqual' function returns 'false' for values other than simply equality. For instance, it returns 'false' for <= or >=. This isn't the correct behavior for this transformation, which is checking for strict equality and non-equality. It was causing the gcc.c-torture/execute/frame-address.c test to fail because it would completely (and incorrectly) optimize a whole function into a 'ret i32 0'. llvm-svn: 152497
-
Fariborz Jahanian authored
// rdar://11024543 llvm-svn: 152496
-
Benjamin Kramer authored
llvm-svn: 152495
-
Benjamin Kramer authored
No functionality change. llvm-svn: 152494
-
Rafael Espindola authored
llvm-svn: 152493
-
Benjamin Kramer authored
llvm-svn: 152492
-
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
-
Chandler Carruth authored
a common collection of methods on Value, and share their implementation. We had two variations in two different places already, and I need the third variation for inline cost estimation. Reviewed by Duncan Sands on IRC, but further comments here welcome. llvm-svn: 152490
-
Nick Lewycky authored
enum is scoped or not, which is not relevant here. Instead, phrase the loop in the same terms that the standard uses, instead of this awkward set of conditions that is *nearly* equal. llvm-svn: 152489
-
Nick Lewycky authored
please annotate it with a note explaining why this wrong-seeming behaviour is correct. llvm-svn: 152488
-
Bill Wendling authored
Patch by Kay Tiong Khoo! llvm-svn: 152487
-
Bill Wendling authored
The old way of determine when and where to spill a value that was used inside of a landing pad resulted in spilling that value everywhere and not just at the invoke edge. This algorithm determines which values are used within a landing pad. It then spills those values before the invoke and reloads them before the uses. This should prevent excessive spilling in many cases, e.g. inside of loops. <rdar://problem/10609139> llvm-svn: 152486
-
Douglas Gregor authored
doing a copy. Fixes PR12139. llvm-svn: 152485
-
Gregory Szorc authored
llvm-svn: 152483
-
Gregory Szorc authored
It is now possible to load object files and scan over sections, symbols, and relocations! Includes test code with partial coverage. llvm-svn: 152482
-
Argyrios Kyrtzidis authored
should not impede creating a proper TypeLoc info for the decl-spec. This improves our semantic error recovery. llvm-svn: 152481
-
Argyrios Kyrtzidis authored
Before r151307 this part worked without compiler errors but now it only verifies that our handling of irregular pragmas is broken compared to gcc, it has no practical usefulness; it creates invalid structs that cannot be used for 'offsetof' testing. If we later decide to handle irregular pragmas without compiler errors we can put back this part. llvm-svn: 152480
-
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
-
John McCall authored
llvm-svn: 152478
-
Sean Callanan authored
on behalf of a DWARF expression. llvm-svn: 152477
-
NAKAMURA Takumi authored
llvm-svn: 152476
-
Benjamin Kramer authored
llvm-svn: 152475
-
Benjamin Kramer authored
llvm-svn: 152474
-
Jim Ingham authored
<rdar://problem/11021925> llvm-svn: 152473
-
Sean Callanan authored
llvm-svn: 152472
-
Sean Callanan authored
llvm-svn: 152471
-
Eli Friedman authored
llvm-svn: 152470
-
Fariborz Jahanian authored
llvm-svn: 152469
-
Ted Kremenek authored
[analyzer] fix regression in analyzer of NOT actually aborting on Stmts it doesn't understand. We registered as aborted, but didn't treat such cases as sinks in the ExplodedGraph. Along the way, add basic support for CXXCatchStmt, expanding the set of code we actually analyze (hopefully correctly). Fixes: <rdar://problem/10892489> llvm-svn: 152468
-
Kostya Serebryany authored
llvm-svn: 152467
-
Jason Molenda authored
llvm-svn: 152465
-
Jason Molenda authored
llvm-svn: 152464
-
Jason Molenda authored
Greg disabled this back in 2012-01-10 r147886 but we still need to use it. <rdar://problem/11016745> llvm-svn: 152463
-
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
-
Fariborz Jahanian authored
llvm-svn: 152461
-
Jakob Stoklund Olesen authored
llvm-svn: 152460
-