summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExprScalar.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement additional undefined checks for additional loads and stores. WIP.Mike Stump2009-12-161-3/+4
| | | | llvm-svn: 91498
* Switch codegen for -fcatch-undefined-bahavior over to __builtin_trapMike Stump2009-12-151-2/+2
| | | | | | instead of abort to improve codesize and codegen. llvm-svn: 91374
* Add support for detecting undefined shift behavior. WIP.Mike Stump2009-12-141-0/+20
| | | | llvm-svn: 91341
* Patch to allow C-style cast from 'void *' to block pointer type.Fariborz Jahanian2009-12-111-0/+1
| | | | | | (fixes radar 7465023). llvm-svn: 91171
* Move the code for converting a member pointer to a bool so that it is usableEli Friedman2009-12-111-28/+2
| | | | | | for logical not. llvm-svn: 91112
* Fix for PR5718: implement equality comparisons for member function pointers.Eli Friedman2009-12-111-1/+28
| | | | llvm-svn: 91108
* Support unary type traits in a scalar context. Not that I've actually seenEli Friedman2009-12-101-0/+4
| | | | | | this construct, but might as well for completeness. llvm-svn: 91071
* Code gen for ObjCIsaExpr AST used as lvalue.Fariborz Jahanian2009-12-091-15/+21
| | | | | | (fixes radar 7457534). llvm-svn: 90995
* Codegen. support for ObjCIsaExpr AST which until nowFariborz Jahanian2009-12-091-0/+19
| | | | | | was not needed (fixes radar 7453430). llvm-svn: 90981
* More detailed analysis of typecast to an objective-c pointerFariborz Jahanian2009-12-081-0/+1
| | | | | | in objective-c++ mode without being too lenient. llvm-svn: 90895
* Correctly handle conditional operators involving throw.Eli Friedman2009-12-071-4/+5
| | | | llvm-svn: 90800
* Don't pass false (default) for isVolatile parameter to CreateLoad.Daniel Dunbar2009-11-291-1/+1
| | | | llvm-svn: 90098
* Remove remaining VISIBILITY_HIDDEN from anonymous namespaces.Benjamin Kramer2009-11-281-2/+1
| | | | llvm-svn: 90044
* More work on ScalarExprEmitter::EmitCastExpr: for every cast kind, eitherEli Friedman2009-11-271-8/+32
| | | | | | | | | | | implement it explicitly or assert that it doesn't make sense for a scalar. This caught a couple interesting issues: one, CK_BaseToDerivedMemberPointer casts were getting silently miscompiled, and two, Sema was constructing some strange implicit casts of type CK_UserDefinedConversion. The change in SemaExprCXX makes sure the cast kinds are getting set correctly. llvm-svn: 89987
* Cleanup for ScalarExprEmitter::EmitCastExpr; no functional changes.Eli Friedman2009-11-271-15/+19
| | | | llvm-svn: 89986
* Use the more general Evaluate infrastructure for folding constant DeclRefsEli Friedman2009-11-261-17/+17
| | | | | | | | | | | | | instead of checking explicitly for an EnumConstantDecl. This folds references to constant integer VarDecls, which has two benefits: 1. Slightly smaller emitted code from emitting a constant instead of a load, and skipping emitting some constant globals. 2. Some code forgets to define static constant member variables; emitting a load instead of the value in that case leads to a link error. (Such programs are technically not well-formed, but in practice build with g++.) llvm-svn: 89934
* We always need to emit the base expression of a member expression, even when ↵Anders Carlsson2009-11-241-2/+9
| | | | | | the member decl refers to an enum. Thanks to Eli for pointing this out! llvm-svn: 89775
* Don't try to treat an enum constant as an lvalue.Anders Carlsson2009-11-231-1/+8
| | | | llvm-svn: 89705
* Handle converting member pointers to bool.Anders Carlsson2009-11-231-0/+29
| | | | llvm-svn: 89692
* Handle base-to-derived casts. Will land test case shortly.Anders Carlsson2009-11-231-12/+33
| | | | llvm-svn: 89678
* Fix lifetime of conditional temporaries. Patch by Victor Zverovich!Anders Carlsson2009-11-201-8/+8
| | | | llvm-svn: 89467
* Minor cleanup to member pointer handling.Eli Friedman2009-11-181-7/+3
| | | | llvm-svn: 89201
* Clean up scalar cast kind handling; make cast kind handling explicitly handleEli Friedman2009-11-161-36/+61
| | | | | | more cases. No intended visible change. llvm-svn: 88968
* Implement most of dynamic_cast. WIP.Mike Stump2009-11-161-0/+6
| | | | llvm-svn: 88901
* indirectbr seems to work! Rip out the old code.Chris Lattner2009-11-061-8/+0
| | | | llvm-svn: 86256
* Refine volatile handling, specifically, we must have the canonicalMike Stump2009-11-031-5/+9
| | | | | | | type to look at the volatile specifier. I found these all from just hand auditing the code. llvm-svn: 85967
* Add CGException.cpp, to be used for exception related code generation.Anders Carlsson2009-10-301-1/+6
| | | | llvm-svn: 85560
* Implement clang support for indirect branch and address of labelChris Lattner2009-10-281-0/+5
| | | | | | | | using the new LLVM support for this. This is temporarily hiding behind horrible and ugly #ifdefs until the time when the optimizer is stable (hopefully a week or so). Until then, lets make it "opt in" :) llvm-svn: 85446
* Fix a bug in calculating shufflevector indices when constructing vectors ↵Nate Begeman2009-10-251-4/+3
| | | | | | | | from other vectors. If I can find it again, I will check in a testcase. llvm-svn: 85032
* Complete code gen for '.*' binary expression forFariborz Jahanian2009-10-221-24/+5
| | | | | | both scalar and aggregates. llvm-svn: 84910
* Canonicality is a property of qualified types, not unqualified types.John McCall2009-10-221-1/+1
| | | | llvm-svn: 84891
* Code gen for '.*' binary expressions - WIP.Fariborz Jahanian2009-10-211-0/+27
| | | | llvm-svn: 84800
* Support IRgen of OpenCL vector initializers, ensuring the resulting IR is in aNate Begeman2009-10-181-42/+169
| | | | | | | | form that LLVM code generators can turn into efficient code. For example, int4 a, b, c; a = (int4)(b.yzw, a.x) llvm-svn: 84434
* Add some more cast kinds.Anders Carlsson2009-10-181-1/+10
| | | | llvm-svn: 84423
* Fix PR5211: codegen shouldn't assume that the result of ||/&& is int Chris Lattner2009-10-171-10/+14
| | | | | | anymore. In C++ it is bool. llvm-svn: 84308
* 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
OpenPOWER on IntegriCloud