aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGExpr.cpp
AgeCommit message (Collapse)Author
2010-02-03Revert the new reference binding code; I came up with a way simpler solution ↵Anders Carlsson
for the reference binding bug that is preventing self-hosting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95223 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Move pointer to data member emission to CodeGenModule and use it in ↵Anders Carlsson
CGExprConstant. Fixes PR5674. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95063 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-31Start creating CXXBindReferenceExpr nodes when binding complex types to ↵Anders Carlsson
references. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94964 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-29Add a new EmitLValueForFieldInitialization that will be used for ↵Anders Carlsson
initializing fields (and reference type fields in particular). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94799 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-29Simplify EmitLValueForField - we can get whether the field is part of a ↵Anders Carlsson
union or not from the FieldDecl (through its DeclContext). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94798 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-29Add an CXXBindReferenceExpr (not used just yet).Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94791 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Use CharUnits for alignment in EmitNullInitializationLValue().Ken Dyck
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94563 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-11Roll out ASTContext::getTypeSizeInChars(), replacing instances ofKen Dyck
"ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits ones as appropriate. Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType, fromQuantity(), and getQuantity() for clarity. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93153 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-09implement codegen support for preinc as an lvalue, PR5514.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93076 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-09refactor pre/postinc logic into CGF and require the caller to pass in theChris Lattner
lvalue to poke, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93075 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-04Fix -Asserts warning.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92491 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-25Minor optimization; emit proper unsupported messages for a couple of cases.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92153 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-25Some small improvements to dead code elimination; helps a bit onEli Friedman
LLVM-Code-Symbols test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92152 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-24Pass the return value slot to all call exprs.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92145 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-24Fill in the return value slot in CGExprAgg::VisitCallExpr. This takes us ↵Anders Carlsson
halfway towards fixing PR5824. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92142 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-24Pass ReturnValueSlot to EmitCall. No functionality change yet.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92138 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-24Add a ReturnValueSlot class. Change the argument order in EmitCall to match ↵Anders Carlsson
the other overload better. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92136 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-23simplify my previous patch.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92057 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-23fix opencl extvector element extraction on rvalues. We previouslyChris Lattner
error_unsupported on test10 and crashed on test11. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92056 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-19Fix for PR5524: make reference binding in default argument work correctly.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91733 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-16Implement additional undefined checks for additional loads and stores. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91498 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-15Fixes a code gen bug related to accessing a nowFariborz Jahanian
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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91455 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-15ShouldDestroyTemporaries? I don't think so.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91450 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-15Fix spacing.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91386 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-15Ensure we preserve line information for each trap forMike Stump
-fcatch-undefined-behavior if we aren't optimizing. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91382 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-15Switch codegen for -fcatch-undefined-bahavior over to __builtin_trapMike Stump
instead of abort to improve codesize and codegen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91374 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-14We have to allow one to form an address for one past the end. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91347 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-14Simplifiy.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91324 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-12Implement runtime checks for undefined behavior. WIP.Mike Stump
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91198 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-11Move the code for converting a member pointer to a bool so that it is usableEli Friedman
for logical not. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91112 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-11When extending the lifetime of a temporary, make sure to emit a branch to ↵Anders Carlsson
the cleanup exit block. This fixes a broken module error in LLVMCConfigurationEmitter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91086 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-09Code gen for ObjCIsaExpr AST used as lvalue.Fariborz Jahanian
(fixes radar 7457534). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90995 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-09Add cleanups for exceptional edges. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90940 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-08Fix some direct checks of expressions which might be surrounded by parentheses.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90825 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-07Make the comma operator consistently call EnsureInsertPoint.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90799 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-06use new helpers to simplify code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90709 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Make EmitStoreOfScalar generate a more sane representation of boolean stores.Eli Friedman
"Fixes" PR5645. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90272 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-29Don't pass false (default) for isVolatile parameter to CreateLoad.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90098 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Implement IRGen for MemberExpr referring to static member function.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89938 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Eliminate CXXConditionDeclExpr with extreme prejudice.Douglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89817 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-24Rename CleanupScope -> DelayedCleanupBlock. No functionality change.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89769 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-23Handle base-to-derived casts. Will land test case shortly.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89678 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Clean up EmitPointerToDataMemberBinaryExpr a bit.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89197 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17More const is always good.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89033 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Implement most of dynamic_cast. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Some minor cleanup for EmitCastLValue.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88894 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-15Implement typeid for class types.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88843 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Handle CK_BitCast in EmitCastLValue.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88810 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Handle CXXDefaultArgExprs in EmitLValue. Fixes PR5484.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88735 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Explicitly note that pre-inc/dec lvalues are not supported yet, so that itEli Friedman
doesn't crash. (Such expressions are valid in C++, but not in C.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86513 91177308-0d34-0410-b5e6-96231b3b80d8