#
dc237b52 |
| 16-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Cleanup: Use a member variable to store the SourceLocation for EH code. rdar://problem/13888152
llvm-svn: 181957
|
#
3b4c30b7 |
| 09-May-2013 |
Ben Langmuir <ben.langmuir@intel.com> |
CodeGen for CapturedStmts
EmitCapturedStmt creates a captured struct containing all of the captured variables, and then emits a call to the outlined function. This is similar in principle to EmitBl
CodeGen for CapturedStmts
EmitCapturedStmt creates a captured struct containing all of the captured variables, and then emits a call to the outlined function. This is similar in principle to EmitBlockLiteral.
GenerateCapturedFunction actually produces the outlined function. It is based on GenerateBlockFunction, but is much simpler. The function type is determined by the parameters that are in the CapturedDecl.
Some changes have been added to this patch that were reviewed as part of the serialization patch and moving the parameters to the captured decl.
Differential Revision: http://llvm-reviews.chandlerc.com/D640
llvm-svn: 181536
show more ...
|
Revision tags: llvmorg-3.3.0-rc1 |
|
#
ea85232c |
| 07-May-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Don't crash in IRGen if a conditional with 'throw' in one of its branches is used as a branch condition.
llvm-svn: 181368
|
#
52bf3c4c |
| 03-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Reapply r180982 with repaired logic and an additional testcase.
Un-break the gdb buildbot. - Use the debug location of the return expression for the cleanup code if the return expression is trivia
Reapply r180982 with repaired logic and an additional testcase.
Un-break the gdb buildbot. - Use the debug location of the return expression for the cleanup code if the return expression is trivially evaluatable, regardless of the number of stop points in the function. - Ensure that any EH code in the cleanup still gets the line number of the closing } of the lexical scope. - Added a testcase with EH in the cleanup.
rdar://problem/13442648
llvm-svn: 181056
show more ...
|
#
dec348f7 |
| 03-May-2013 |
John McCall <rjmccall@apple.com> |
Correctly emit certain implicit references to 'self' even within a lambda.
Bug #1 is that CGF's CurFuncDecl was "stuck" at lambda invocation functions. Fix that by generally improving getNonClosure
Correctly emit certain implicit references to 'self' even within a lambda.
Bug #1 is that CGF's CurFuncDecl was "stuck" at lambda invocation functions. Fix that by generally improving getNonClosureContext to look through lambdas and captured statements but only report code contexts, which is generally what's wanted. Audit uses of CurFuncDecl and getNonClosureAncestor for correctness.
Bug #2 is that lambdas weren't specially mapping 'self' when inside an ObjC method. Fix that by removing the requirement for that and using the normal EmitDeclRefLValue path in LoadObjCSelf.
rdar://13800041
llvm-svn: 181000
show more ...
|
#
857f9237 |
| 03-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Revert "Attempt to un-break the gdb buildbot."
This reverts commit 180982.
llvm-svn: 180990
|
#
44f38013 |
| 03-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Attempt to un-break the gdb buildbot. - Use the debug location of the return expression for the cleanup code if the return expression is trivially evaluatable, regardless of the number of stop po
Attempt to un-break the gdb buildbot. - Use the debug location of the return expression for the cleanup code if the return expression is trivially evaluatable, regardless of the number of stop points in the function. - Ensure that any EH code in the cleanup still gets the line number of the closing } of the lexical scope. - Added a testcase with EH in the cleanup.
rdar://problem/13442648
llvm-svn: 180982
show more ...
|
#
3be10542 |
| 02-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Ensure that the line table for functions with cleanups is sequential.
If there is cleanup code, the cleanup code gets the debug location of the closing '}'. The subsequent ret IR-instruction does no
Ensure that the line table for functions with cleanups is sequential.
If there is cleanup code, the cleanup code gets the debug location of the closing '}'. The subsequent ret IR-instruction does not get a debug location. The return _expression_ will get the debug location of the return statement.
If the function contains only a single, simple return statement, the cleanup code may become the first breakpoint in the function. In this case we set the debug location for the cleanup code to the location of the return statement.
rdar://problem/13442648
llvm-svn: 180932
show more ...
|
#
27d807cc |
| 30-Apr-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Don't treat a non-deduced 'auto' type as being type-dependent. Instead, there are now two distinct canonical 'AutoType's: one is the undeduced 'auto' placeholder type, and the other is a deduced-but-
Don't treat a non-deduced 'auto' type as being type-dependent. Instead, there are now two distinct canonical 'AutoType's: one is the undeduced 'auto' placeholder type, and the other is a deduced-but-dependent type. All deduced-to-a-non-dependent-type cases are still non-canonical.
llvm-svn: 180789
show more ...
|
#
852c9db7 |
| 20-Apr-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++1y: Allow aggregates to have default initializers.
Add a CXXDefaultInitExpr, analogous to CXXDefaultArgExpr, and use it both in CXXCtorInitializers and in InitListExprs to represent a default ini
C++1y: Allow aggregates to have default initializers.
Add a CXXDefaultInitExpr, analogous to CXXDefaultArgExpr, and use it both in CXXCtorInitializers and in InitListExprs to represent a default initializer.
There's an additional complication here: because the default initializer can refer to the initialized object via its 'this' pointer, we need to make sure that 'this' points to the right thing within the evaluation.
llvm-svn: 179958
show more ...
|
#
c8e01705 |
| 16-Apr-2013 |
John McCall <rjmccall@apple.com> |
Standardize accesses to the TargetInfo in IR-gen.
Patch by Stephen Lin!
llvm-svn: 179638
|
#
a8540819 |
| 26-Mar-2013 |
Manman Ren <mren@apple.com> |
Fix uninitialized read of CalleeWithThisReturn.
Initialize CalleeWithThisReturn to 0 in the constructor. Also revert r170815 since checking CalleeWithThisReturn is faster.
PR15598
llvm-svn: 178053
|
#
ef89ae01 |
| 24-Mar-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code. No functionality change.
llvm-svn: 177842
|
#
fb36ede5 |
| 24-Mar-2013 |
Guy Benyei <guy.benyei@intel.com> |
Generate metadata to implement the -cl-kernel-arg-info option. OpenCL 1.2 spec. 5.7.3.
llvm-svn: 177839
|
#
1da30944 |
| 23-Mar-2013 |
Nadav Rotem <nrotem@apple.com> |
Make clang to mark static stack allocations with lifetime markers to enable a more aggressive stack coloring. Patch by John McCall with help by Shuxin Yang. rdar://13115369
llvm-svn: 177819
|
#
01754612 |
| 20-Mar-2013 |
Manman Ren <mren@apple.com> |
Exploit this-return of a callsite in a this-return function.
For constructors/desctructors that return 'this', if there exists a callsite that returns 'this' and is immediately before the return ins
Exploit this-return of a callsite in a this-return function.
For constructors/desctructors that return 'this', if there exists a callsite that returns 'this' and is immediately before the return instruction, make sure we are using the return value from the callsite.
We don't need to keep 'this' alive through the callsite. It also enables optimizations in the backend, such as tail call optimization.
Updated from r177211. rdar://12818789
llvm-svn: 177541
show more ...
|
#
c089074a |
| 16-Mar-2013 |
Manman Ren <mren@apple.com> |
revert r177211 due to its potential issues
llvm-svn: 177222
|
#
58dd990c |
| 16-Mar-2013 |
Manman Ren <mren@apple.com> |
Exploit this-return of a callsite in a this-return function.
For constructors/desctructors that return 'this', if there exists a callsite that returns 'this' and is immediately before the return ins
Exploit this-return of a callsite in a this-return function.
For constructors/desctructors that return 'this', if there exists a callsite that returns 'this' and is immediately before the return instruction, make sure we are using the return value from the callsite.
We don't need to keep 'this' alive through the callsite. It also enables optimizations in the backend, such as tail call optimization.
rdar://12818789
llvm-svn: 177211
show more ...
|
#
5c38272c |
| 08-Mar-2013 |
Jordan Rose <jordan_rose@apple.com> |
ArrayRef-ize ASTContext::getFunctionType and Sema::BuildFunctionType.
No (intended) functionality change.
llvm-svn: 176726
|
#
aba589cc |
| 08-Mar-2013 |
Joey Gouly <joey.gouly@arm.com> |
Add support for the OpenCL attribute 'vec_type_hint'.
Patch by Murat Bolat!
llvm-svn: 176686
|
#
47fb9508 |
| 07-Mar-2013 |
John McCall <rjmccall@apple.com> |
Change hasAggregateLLVMType, which conflates complex and aggregate types in a profoundly wrong way that has to be worked around in every call site, to getEvaluationKind, which classifies and distingu
Change hasAggregateLLVMType, which conflates complex and aggregate types in a profoundly wrong way that has to be worked around in every call site, to getEvaluationKind, which classifies and distinguishes between all of these cases.
Also, normalize the API for loading and storing complexes.
I'm working on a larger patch and wanted to pull these changes out, but it would have be annoying to detangle them from each other.
llvm-svn: 176656
show more ...
|
#
882987f3 |
| 28-Feb-2013 |
John McCall <rjmccall@apple.com> |
Use the actual ABI-determined C calling convention for runtime calls and declarations.
LLVM has a default CC determined by the target triple. This is not always the actual default CC for the ABI we
Use the actual ABI-determined C calling convention for runtime calls and declarations.
LLVM has a default CC determined by the target triple. This is not always the actual default CC for the ABI we've been asked to target, and so we sometimes find ourselves annotating all user functions with an explicit calling convention. Since these calling conventions usually agree for the simple set of argument types passed to most runtime functions, using the LLVM-default CC in principle has no effect. However, the LLVM optimizer goes into histrionics if it sees this kind of formal CC mismatch, since it has no concept of CC compatibility. Therefore, if this module happens to define the "runtime" function, or got LTO'ed with such a definition, we can miscompile; so it's quite important to get this right.
Defining runtime functions locally is quite common in embedded applications.
llvm-svn: 176286
show more ...
|
#
1d969f42 |
| 23-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
Prefer 'and' over '&' in comments.
Post commit code review feedback from Matt Beaumont-Gay on r174248.
llvm-svn: 175969
|
#
bf122744 |
| 17-Feb-2013 |
Lang Hames <lhames@gmail.com> |
Re-apply r174919 - smarter copy/move assignment/construction, with fixes for bitfield related issues.
The original commit broke Takumi's builder. The bug was caused by bitfield sizes being determine
Re-apply r174919 - smarter copy/move assignment/construction, with fixes for bitfield related issues.
The original commit broke Takumi's builder. The bug was caused by bitfield sizes being determined by their underlying type, rather than the field info. A similar issue with bitfield alignments showed up on closer testing. Both have been fixed in this patch.
llvm-svn: 175389
show more ...
|
#
ee6bc533 |
| 13-Feb-2013 |
Timur Iskhodzhanov <timurrrr@google.com> |
Emit virtual/deleting destructors properly with -cxx-abi microsoft, PR15058
llvm-svn: 175045
|