summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExpr.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Minor optimization; emit proper unsupported messages for a couple of cases.Eli Friedman2009-12-251-2/+1
| | | | llvm-svn: 92153
* Some small improvements to dead code elimination; helps a bit onEli Friedman2009-12-251-0/+9
| | | | | | LLVM-Code-Symbols test. llvm-svn: 92152
* Pass the return value slot to all call exprs.Anders Carlsson2009-12-241-3/+3
| | | | llvm-svn: 92145
* Fill in the return value slot in CGExprAgg::VisitCallExpr. This takes us ↵Anders Carlsson2009-12-241-3/+5
| | | | | | halfway towards fixing PR5824. llvm-svn: 92142
* Pass ReturnValueSlot to EmitCall. No functionality change yet.Anders Carlsson2009-12-241-1/+1
| | | | llvm-svn: 92138
* Add a ReturnValueSlot class. Change the argument order in EmitCall to match ↵Anders Carlsson2009-12-241-2/+2
| | | | | | the other overload better. llvm-svn: 92136
* simplify my previous patch.Chris Lattner2009-12-231-9/+2
| | | | llvm-svn: 92057
* fix opencl extvector element extraction on rvalues. We previouslyChris Lattner2009-12-231-8/+30
| | | | | | error_unsupported on test10 and crashed on test11. llvm-svn: 92056
* Fix for PR5524: make reference binding in default argument work correctly.Eli Friedman2009-12-191-1/+4
| | | | llvm-svn: 91733
* Implement additional undefined checks for additional loads and stores. WIP.Mike Stump2009-12-161-1/+37
| | | | llvm-svn: 91498
* Fixes a code gen bug related to accessing a nowFariborz Jahanian2009-12-151-0/+1
| | | | | | | | | non-existing 'isa' field of a non-existing struct type all related to legacy type definition for 'id' which we have dropped in clang in favor of a built-in type. (fixes radar 7470820). llvm-svn: 91455
* ShouldDestroyTemporaries? I don't think so.Anders Carlsson2009-12-151-4/+3
| | | | llvm-svn: 91450
* Fix spacing.Mike Stump2009-12-151-1/+1
| | | | llvm-svn: 91386
* Ensure we preserve line information for each trap forMike Stump2009-12-151-1/+9
| | | | | | -fcatch-undefined-behavior if we aren't optimizing. WIP. llvm-svn: 91382
* Switch codegen for -fcatch-undefined-bahavior over to __builtin_trapMike Stump2009-12-151-19/+13
| | | | | | instead of abort to improve codesize and codegen. llvm-svn: 91374
* We have to allow one to form an address for one past the end. WIP.Mike Stump2009-12-141-1/+1
| | | | llvm-svn: 91347
* Simplifiy.Mike Stump2009-12-141-16/+3
| | | | llvm-svn: 91324
* Implement runtime checks for undefined behavior. WIP.Mike Stump2009-12-121-0/+61
| | | | | | | | | | | | | This implements a new flag -fcatch-undefined-behavior. The flag turns on additional runtime checks for: T a[I]; a[i] abort when i < 0 or i >= I. Future stuff includes shifts by >= bitwidth amounts. llvm-svn: 91198
* Move the code for converting a member pointer to a bool so that it is usableEli Friedman2009-12-111-0/+15
| | | | | | for logical not. llvm-svn: 91112
* When extending the lifetime of a temporary, make sure to emit a branch to ↵Anders Carlsson2009-12-111-1/+4
| | | | | | the cleanup exit block. This fixes a broken module error in LLVMCConfigurationEmitter.cpp. llvm-svn: 91086
* Code gen for ObjCIsaExpr AST used as lvalue.Fariborz Jahanian2009-12-091-0/+2
| | | | | | (fixes radar 7457534). llvm-svn: 90995
* Add cleanups for exceptional edges. WIP.Mike Stump2009-12-091-2/+10
| | | | llvm-svn: 90940
* Fix some direct checks of expressions which might be surrounded by parentheses.Eli Friedman2009-12-081-1/+1
| | | | llvm-svn: 90825
* Make the comma operator consistently call EnsureInsertPoint.Eli Friedman2009-12-071-0/+1
| | | | llvm-svn: 90799
* use new helpers to simplify code.Chris Lattner2009-12-061-8/+4
| | | | llvm-svn: 90709
* Make EmitStoreOfScalar generate a more sane representation of boolean stores.Eli Friedman2009-12-011-6/+1
| | | | | | "Fixes" PR5645. llvm-svn: 90272
* Don't pass false (default) for isVolatile parameter to CreateLoad.Daniel Dunbar2009-11-291-2/+5
| | | | llvm-svn: 90098
* Implement IRGen for MemberExpr referring to static member function.Eli Friedman2009-11-261-17/+24
| | | | llvm-svn: 89938
* Eliminate CXXConditionDeclExpr with extreme prejudice.Douglas Gregor2009-11-251-8/+0
| | | | | | | | | | | | | | | | | All statements that involve conditions can now hold on to a separate condition declaration (a VarDecl), and will use a DeclRefExpr referring to that VarDecl for the condition expression. ForStmts now have such a VarDecl (I'd missed those in previous commits). Also, since this change reworks the Action interface for if/while/switch/for, use FullExprArg for the full expressions in those expressions, to ensure that we're emitting Note that we are (still) not generating the right cleanups for condition variables in for statements. That will be a follow-on commit. llvm-svn: 89817
* Rename CleanupScope -> DelayedCleanupBlock. No functionality change.Douglas Gregor2009-11-241-1/+1
| | | | llvm-svn: 89769
* Handle base-to-derived casts. Will land test case shortly.Anders Carlsson2009-11-231-5/+21
| | | | llvm-svn: 89678
* Clean up EmitPointerToDataMemberBinaryExpr a bit.Eli Friedman2009-11-181-7/+5
| | | | llvm-svn: 89197
* More const is always good.Anders Carlsson2009-11-171-4/+4
| | | | llvm-svn: 89033
* Implement most of dynamic_cast. WIP.Mike Stump2009-11-161-5/+15
| | | | llvm-svn: 88901
* Some minor cleanup for EmitCastLValue.Eli Friedman2009-11-161-11/+7
| | | | llvm-svn: 88894
* Implement typeid for class types.Mike Stump2009-11-151-0/+8
| | | | llvm-svn: 88843
* Handle CK_BitCast in EmitCastLValue.Anders Carlsson2009-11-141-3/+12
| | | | llvm-svn: 88810
* Handle CXXDefaultArgExprs in EmitLValue. Fixes PR5484.Anders Carlsson2009-11-141-2/+4
| | | | llvm-svn: 88735
* Explicitly note that pre-inc/dec lvalues are not supported yet, so that itEli Friedman2009-11-091-1/+5
| | | | | | doesn't crash. (Such expressions are valid in C++, but not in C.) llvm-svn: 86513
* Add clarifying parens.Daniel Dunbar2009-11-081-1/+1
| | | | llvm-svn: 86457
* Handle member expressions where the member declaration is actually a static ↵Anders Carlsson2009-11-071-0/+3
| | | | | | variable. Fixes PR5392. llvm-svn: 86414
* More LValue related code cleanup.Anders Carlsson2009-11-071-18/+27
| | | | llvm-svn: 86413
* More cleanup, the code is much easier to follow now.Anders Carlsson2009-11-071-24/+11
| | | | llvm-svn: 86412
* Reduce nesting, no functionality change.Anders Carlsson2009-11-071-18/+20
| | | | llvm-svn: 86411
* We only need to call SetObjCNonGC for local variables. No functionality change.Anders Carlsson2009-11-071-3/+3
| | | | llvm-svn: 86410
* Change EmitPointerToDataMemberLValue to take a FieldDecl. No intended ↵Anders Carlsson2009-11-071-4/+3
| | | | | | functionality change. llvm-svn: 86407
* random tidyingChris Lattner2009-10-281-101/+104
| | | | llvm-svn: 85408
* adjust for a pending LLVM change.Chris Lattner2009-10-281-3/+3
| | | | llvm-svn: 85373
* Add Code gen support for '->*' operator which fellFariborz Jahanian2009-10-261-1/+4
| | | | | | through the crack. llvm-svn: 85160
* Eliminate QualifiedDeclRefExpr, which captured the notion of aDouglas Gregor2009-10-231-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | qualified reference to a declaration that is not a non-static data member or non-static member function, e.g., namespace N { int i; } int j = N::i; Instead, extend DeclRefExpr to optionally store the qualifier. Most clients won't see or care about the difference (since QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the number of top-level expression types that clients need to cope with, brings the implementation of DeclRefExpr into line with MemberExpr, and simplifies and unifies our handling of declaration references. Extended DeclRefExpr to (optionally) store explicitly-specified template arguments. This occurs when naming a declaration via a template-id (which will be stored in a TemplateIdRefExpr) that, following template argument deduction and (possibly) overload resolution, is replaced with a DeclRefExpr that refers to a template specialization but maintains the template arguments as written. llvm-svn: 84962
OpenPOWER on IntegriCloud