- Mar 01, 2012
-
-
Eli Friedman authored
Implement "optimization" for lambda-to-block conversion which inlines the generated block literal for lambdas which are immediately converted to block pointer type. This simplifies the AST, avoids an unnecessary copy of the lambda and makes it much easier to avoid copying the result onto the heap. Note that this transformation has a substantial semantic effect outside of ARC: it gives the converted lambda lifetime semantics similar to a block literal. With ARC, the effect is much less obvious because the lifetime of blocks is already managed. llvm-svn: 151797
-
- Feb 29, 2012
-
-
Chad Rosier authored
by the BAA pass, which uses the default TargetLibraryInfo constructor. Unfortunately, the default TargetLibraryInfo constructor assumes all library calls are available and thus ignores -fno-builtin. rdar://10947759 llvm-svn: 151745
-
Daniel Dunbar authored
info.", which broke some -O0 -g tests. llvm-svn: 151730
-
Eric Christopher authored
This currently doesn't handle capturing the 'this' pointer for any enclosing class. Steal the lambda-expressions.cpp testcase and debugify it and try to use more variables to proof it against random changes. Part of rdar://10900684 llvm-svn: 151702
-
Eric Christopher authored
llvm-svn: 151700
-
Eli Friedman authored
llvm-svn: 151674
-
- Feb 28, 2012
-
-
Eli Friedman authored
Prefer bitcast+GEP over ptrtoint+sub+inttoptr: it's semantically equivalent here, and generally nicer to the optimizer. llvm-svn: 151659
-
Daniel Dunbar authored
llvm-svn: 151631
-
Eli Friedman authored
Implement IRGen for the retain-autorelease in the lambda conversion-to-block-pointer outside of ARC. Testcases coming up soon. llvm-svn: 151603
-
Sebastian Redl authored
llvm-svn: 151586
-
- Feb 27, 2012
-
-
-
Eric Christopher authored
Fixes rdar://10934887 llvm-svn: 151519
-
- Feb 26, 2012
-
-
Richard Smith authored
- variant members with nontrivial destructors make the containing class's destructor deleted - check for a virtual destructor after checking for overridden methods in the base class(es) - check for an inaccessible operator delete for a class with a virtual destructor. Do not try to call an anonymous union field's destructor from the destructor of the containing class. llvm-svn: 151483
-
- Feb 25, 2012
-
-
Sebastian Redl authored
This emits a backing array with internal linkage and fills it with data, then has the initializer_list point at the array. Dynamic initialization and global destructors are correctly supported. What doesn't work is nested initializer_lists. I have no idea how to get them to work, either. However, these should be very rare, and so I'll just call it a known bug and declare generalized initializers DONE! llvm-svn: 151457
-
Sebastian Redl authored
llvm-svn: 151456
-
Chad Rosier authored
rdar://10921594 llvm-svn: 151430
-
Eli Friedman authored
Work-in-progress for lambda conversion-to-block operator. Still need to implement the retain+autorelease outside of ARC, and there's a bug that causes the generated code to crash in ARC (which I think is unrelated to my code, although I'm not completely sure). llvm-svn: 151428
-
Douglas Gregor authored
llvm-svn: 151414
-
Douglas Gregor authored
llvm-svn: 151412
-
Eli Friedman authored
llvm-svn: 151407
-
- Feb 24, 2012
-
-
Douglas Gregor authored
enumeration type with a fixed underlying type is complete. Fixes <rdar://problem/10916155>. llvm-svn: 151403
-
Chad Rosier authored
test case that only runs on debug builds. llvm-svn: 151311
-
- Feb 23, 2012
-
-
Douglas Gregor authored
isTrivial() call. llvm-svn: 151259
-
Richard Smith authored
forget the vptrs. llvm-svn: 151245
-
Eli Friedman authored
Try to handle qualifiers more consistently for array InitListExprs. Fixes <rdar://problem/10907510>, and makes the ASTs a bit more self-consistent. (I've chosen to keep the qualifiers, but it isn't a strong preference; if anyone prefers removing them, please yell.) llvm-svn: 151229
-
Eric Christopher authored
llvm-svn: 151217
-
Eric Christopher authored
llvm-svn: 151216
-
- Feb 22, 2012
-
-
Chad Rosier authored
llvm-svn: 151203
-
Sebastian Redl authored
llvm-svn: 151172
-
Sebastian Redl authored
llvm-svn: 151171
-
Bill Wendling authored
llvm-svn: 151150
-
-
Douglas Gregor authored
block pointer that returns a block literal which captures (by copy) the lambda closure itself. Some aspects of the block literal are left unspecified, namely the capture variable (which doesn't actually exist) and the body (which will be filled in by IRgen because it can't be written as an AST). Because we're switching to this model, this patch also eliminates tracking the copy-initialization expression for the block capture of the conversion function, since that information is now embedded in the synthesized block literal. -1 side tables FTW. llvm-svn: 151131
-
Aaron Ballman authored
llvm-svn: 151122
-
- Feb 21, 2012
-
-
Nick Lewycky authored
llvm-svn: 151010
-
Eric Christopher authored
llvm-svn: 150996
-
- Feb 20, 2012
-
-
Fariborz Jahanian authored
the 'invariant.load' metadata tag onto those loads. // rdar://10840980 llvm-svn: 150994
-
Eric Christopher authored
handled by the caching and rauw. Also fix one cache that wasn't being added to highlighted by this patch. Update all testcases accordingly. This should fix the deall failure. llvm-svn: 150977
-
Eric Christopher authored
temporary forward declaration nodes. Fixes a problem building Chrome. llvm-svn: 150976
-
Chandler Carruth authored
match the behavior of GCC. Also add a test for these intrinsics, which apparently have *zero* tests. =[ Not surprisingly, Clang crashed when compiling these. Fix the bug in CodeGen where we failed to bitcast the argument type to x86mmx prior to calling the LLVM intrinsic. This fixes an assert on the new 3dnow-builtins.c test. This is one issue impacting the efforts to get Clang to emulate the Microsoft intrinsics headers -- 3dnow intrinsics are implictitly made available there. llvm-svn: 150948
-