summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExprScalar.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Simplify pointer creation with the new Type::getInt*Ptr methods.Benjamin Kramer2009-10-131-12/+6
| | | | llvm-svn: 83964
* Generate weak read barriers when reading a weak __blockFariborz Jahanian2009-10-101-1/+5
| | | | | | variable inside the block. llvm-svn: 83729
* Use new predicates for some type equality tests.Benjamin Kramer2009-10-051-2/+2
| | | | llvm-svn: 83303
* Refactor the representation of qualifiers to bring ExtQualType out of theJohn McCall2009-09-241-2/+1
| | | | | | | | Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our use of qualifiers and fix a few places that weren't dealing with qualifiers quite right; many more remain. llvm-svn: 82705
* Remove now fixed FIXME.Mike Stump2009-09-221-1/+0
| | | | llvm-svn: 82584
* No need to null check implicit lvalue cast exprs.Anders Carlsson2009-09-221-8/+15
| | | | llvm-svn: 82580
* Change all the Type::getAsFoo() methods to specializations of Type::getAs().John McCall2009-09-211-5/+5
| | | | | | | | | | | Several of the existing methods were identical to their respective specializations, and so have been removed entirely. Several more 'leaf' optimizations were introduced. The getAsFoo() methods which imposed extra conditions, like getAsObjCInterfacePointerType(), have been left in place. llvm-svn: 82501
* Handle reinterpret_cast between integral types and pointer types.Anders Carlsson2009-09-151-0/+16
| | | | llvm-svn: 81837
* Codegen support for nullptr from C++0x.Anders Carlsson2009-09-151-0/+4
| | | | llvm-svn: 81835
* When necessary, null check the base value in GetAddressCXXOfBaseClass.Anders Carlsson2009-09-121-1/+9
| | | | llvm-svn: 81611
* Handle derived-to-base conversion in CGExprScalar::EmitCast, if the cast ↵Anders Carlsson2009-09-121-10/+18
| | | | | | kind is CK_DerivedToBase. llvm-svn: 81610
* Rename AddressCXXOfBaseClass to GetAddressCXXOfBaseClass. Add a ↵Anders Carlsson2009-09-121-1/+3
| | | | | | NullCheckValue argument (currently unused). llvm-svn: 81606
* If a cast expression needs either a conversion function or a constructor to ↵Anders Carlsson2009-09-091-8/+0
| | | | | | be called, generate implicit child expressions that call them. llvm-svn: 81383
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-2/+1
| | | | llvm-svn: 81346
* Reflow comments and some minor whitespace fixups.Mike Stump2009-09-091-185/+182
| | | | llvm-svn: 81337
* Implement AST, semantics, and CodeGen for C++ pseudo-destructorDouglas Gregor2009-09-041-1/+11
| | | | | | | | | | | | | expressions, e.g., p->~T() when p is a pointer to a scalar type. We don't currently diagnose errors when pseudo-destructor expressions are used in any way other than by forming a call. llvm-svn: 81009
* Use the correct cast kinds for bit casts and function to pointer decay. ↵Anders Carlsson2009-09-011-0/+4
| | | | | | Fixes PR4827. llvm-svn: 80720
* Patch for code gen. for c-style cast which ends inFariborz Jahanian2009-08-291-2/+5
| | | | | | using class's conversion functions [12.3.2-p2] llvm-svn: 80433
* ir-gen for type convesion of class objects. WIP.Fariborz Jahanian2009-08-261-0/+5
| | | | llvm-svn: 80178
* Handle array to pointer decay in EmitCastExpr and get rid of ↵Anders Carlsson2009-08-241-35/+23
| | | | | | VisitImplicitCastExpr. llvm-svn: 79930
* Handle CK_NullToMemberPointer in ScalarExprEmitter::EmitCastAnders Carlsson2009-08-241-1/+8
| | | | llvm-svn: 79929
* Pass the cast kind to ScalarExprEmitter::EmitCastExpr.Anders Carlsson2009-08-241-4/+5
| | | | llvm-svn: 79928
* Using "ObjCImplicitSetterGetterRefExpr" instead of ↵Fariborz Jahanian2009-08-201-2/+2
| | | | | | | | "ObjCImplctSetterGetterRefExpr". A field rename and more comments. llvm-svn: 79537
* Renamed ObjCKVCRefExpr to ObjCImplctSetterGetterRefExpr.Fariborz Jahanian2009-08-181-1/+2
| | | | | | | | Removed an unnecessary loop to get to setters incoming argument. Added DoxyGen comments. Still more work to do in this area (WIP). llvm-svn: 79365
* Improve handling of delete expressions.Anders Carlsson2009-08-161-0/+4
| | | | llvm-svn: 79205
* Update for LLVM API change.Owen Anderson2009-08-131-34/+54
| | | | llvm-svn: 78946
* Use the new nsw form of add for signed integer addition.Dan Gohman2009-08-121-2/+11
| | | | llvm-svn: 78765
* Use the inbounds variant of getelementptr for common pointer arithmetic.Dan Gohman2009-08-121-3/+3
| | | | llvm-svn: 78756
* Remove the hack that turns sdiv by a power of 2 to ashr, andDan Gohman2009-08-111-12/+5
| | | | | | | use the new "exact" sdiv to allow LLVM optimization to perform this transformation. llvm-svn: 78739
* Take 2 on AltiVec-style vector initializers. Nate Begeman2009-08-101-1/+1
| | | | | | | | | | | | Fixes PR4704 problems Addresses Eli's patch feedback re: ugly cast code Updates all postfix operators to remove ParenListExprs. While this is awful, no better solution (say, in the parser) is obvious to me. Better solutions welcome. llvm-svn: 78621
* Revert r78535, it is causing a number of failures to build projects.Daniel Dunbar2009-08-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | --- Reverse-merging r78535 into '.': D test/Sema/altivec-init.c U include/clang/Basic/DiagnosticSemaKinds.td U include/clang/AST/Expr.h U include/clang/AST/StmtNodes.def U include/clang/Parse/Parser.h U include/clang/Parse/Action.h U tools/clang-cc/clang-cc.cpp U lib/Frontend/PrintParserCallbacks.cpp U lib/CodeGen/CGExprScalar.cpp U lib/Sema/SemaInit.cpp U lib/Sema/Sema.h U lib/Sema/SemaExpr.cpp U lib/Sema/SemaTemplateInstantiateExpr.cpp U lib/AST/StmtProfile.cpp U lib/AST/Expr.cpp U lib/AST/StmtPrinter.cpp U lib/Parse/ParseExpr.cpp U lib/Parse/ParseExprCXX.cpp llvm-svn: 78551
* Improve handling of member pointers.Anders Carlsson2009-08-091-0/+8
| | | | llvm-svn: 78536
* AltiVec-style vector initializer syntax, vec4 a = (vec4)(a, b, c, d);Nate Begeman2009-08-091-1/+1
| | | | | | | | In addition to being defined by the AltiVec PIM, this is also the vector initializer syntax used by OpenCL, so that vector literals are compatible with macro arguments. llvm-svn: 78535
* Add a CK_ArrayToPointerDecay cast kind.Anders Carlsson2009-08-071-0/+1
| | | | llvm-svn: 78434
* Update for LLVM API change.Owen Anderson2009-07-311-8/+8
| | | | llvm-svn: 77722
* Update for LLVM API change.Owen Anderson2009-07-311-3/+3
| | | | llvm-svn: 77686
* Update for LLVM API changes.Owen Anderson2009-07-301-5/+5
| | | | llvm-svn: 77638
* Canonicalize else spacing.Mike Stump2009-07-301-2/+1
| | | | llvm-svn: 77629
* Update for LLVM API change.Owen Anderson2009-07-291-14/+13
| | | | llvm-svn: 77514
* Change uses of:Ted Kremenek2009-07-291-5/+5
| | | | | | | | | | | | | | | | | | | | Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsRecordType() -> Type::getAs<RecordType>() Type::getAsPointerType() -> Type::getAs<PointerType>() Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>() Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>() Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>() Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>() Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsTagType() -> Type::getAs<TagType>() And remove Type::getAsReferenceType(), etc. This change is similar to one I made a couple weeks ago, but that was partly reverted pending some additional design discussion. With Doug's pending smart pointer changes for Types, it seemed natural to take this approach. llvm-svn: 77510
* Code refactoring to define getCXXRecordDeclForPointerTypeFariborz Jahanian2009-07-291-12/+5
| | | | | | and use it in several places. llvm-svn: 77411
* ir-gen derived-to-base conversion in implicit casts.Fariborz Jahanian2009-07-281-1/+15
| | | | llvm-svn: 77374
* Update for LLVM API change.Owen Anderson2009-07-281-3/+3
| | | | llvm-svn: 77368
* Update for LLVM API change.Owen Anderson2009-07-271-4/+6
| | | | llvm-svn: 77249
* Update for LLVM API change.Owen Anderson2009-07-241-23/+23
| | | | llvm-svn: 77012
* Make vectorized floating-point comparisons work without crashing.Eli Friedman2009-07-221-1/+1
| | | | llvm-svn: 76726
* Update for LLVM API change.Owen Anderson2009-07-211-3/+3
| | | | llvm-svn: 76599
* Revert r75641.Anders Carlsson2009-07-181-0/+1
| | | | llvm-svn: 76327
* Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methodsTed Kremenek2009-07-171-5/+5
| | | | | | | | | until Doug Gregor's Type smart pointer code lands (or more discussion occurs). These methods just call the new Type::getAs<XXX> methods, so we still have reduced implementation redundancy. Having explicit getAsXXXType() methods makes it easier to set breakpoints in the debugger. llvm-svn: 76193
* ir-gen for --/++ operators of objc object pointersFariborz Jahanian2009-07-161-1/+19
| | | | | | in 32bit abi. llvm-svn: 76109
OpenPOWER on IntegriCloud