Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Implement additional undefined checks for additional loads and stores. WIP. | Mike Stump | 2009-12-16 | 1 | -3/+4 | |
| | | | | llvm-svn: 91498 | |||||
* | Switch codegen for -fcatch-undefined-bahavior over to __builtin_trap | Mike Stump | 2009-12-15 | 1 | -2/+2 | |
| | | | | | | instead of abort to improve codesize and codegen. llvm-svn: 91374 | |||||
* | Add support for detecting undefined shift behavior. WIP. | Mike Stump | 2009-12-14 | 1 | -0/+20 | |
| | | | | llvm-svn: 91341 | |||||
* | Patch to allow C-style cast from 'void *' to block pointer type. | Fariborz Jahanian | 2009-12-11 | 1 | -0/+1 | |
| | | | | | | (fixes radar 7465023). llvm-svn: 91171 | |||||
* | Move the code for converting a member pointer to a bool so that it is usable | Eli Friedman | 2009-12-11 | 1 | -28/+2 | |
| | | | | | | for logical not. llvm-svn: 91112 | |||||
* | Fix for PR5718: implement equality comparisons for member function pointers. | Eli Friedman | 2009-12-11 | 1 | -1/+28 | |
| | | | | llvm-svn: 91108 | |||||
* | Support unary type traits in a scalar context. Not that I've actually seen | Eli Friedman | 2009-12-10 | 1 | -0/+4 | |
| | | | | | | this construct, but might as well for completeness. llvm-svn: 91071 | |||||
* | Code gen for ObjCIsaExpr AST used as lvalue. | Fariborz Jahanian | 2009-12-09 | 1 | -15/+21 | |
| | | | | | | (fixes radar 7457534). llvm-svn: 90995 | |||||
* | Codegen. support for ObjCIsaExpr AST which until now | Fariborz Jahanian | 2009-12-09 | 1 | -0/+19 | |
| | | | | | | was not needed (fixes radar 7453430). llvm-svn: 90981 | |||||
* | More detailed analysis of typecast to an objective-c pointer | Fariborz Jahanian | 2009-12-08 | 1 | -0/+1 | |
| | | | | | | in objective-c++ mode without being too lenient. llvm-svn: 90895 | |||||
* | Correctly handle conditional operators involving throw. | Eli Friedman | 2009-12-07 | 1 | -4/+5 | |
| | | | | llvm-svn: 90800 | |||||
* | Don't pass false (default) for isVolatile parameter to CreateLoad. | Daniel Dunbar | 2009-11-29 | 1 | -1/+1 | |
| | | | | llvm-svn: 90098 | |||||
* | Remove remaining VISIBILITY_HIDDEN from anonymous namespaces. | Benjamin Kramer | 2009-11-28 | 1 | -2/+1 | |
| | | | | llvm-svn: 90044 | |||||
* | More work on ScalarExprEmitter::EmitCastExpr: for every cast kind, either | Eli Friedman | 2009-11-27 | 1 | -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 Friedman | 2009-11-27 | 1 | -15/+19 | |
| | | | | llvm-svn: 89986 | |||||
* | Use the more general Evaluate infrastructure for folding constant DeclRefs | Eli Friedman | 2009-11-26 | 1 | -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 Carlsson | 2009-11-24 | 1 | -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 Carlsson | 2009-11-23 | 1 | -1/+8 | |
| | | | | llvm-svn: 89705 | |||||
* | Handle converting member pointers to bool. | Anders Carlsson | 2009-11-23 | 1 | -0/+29 | |
| | | | | llvm-svn: 89692 | |||||
* | Handle base-to-derived casts. Will land test case shortly. | Anders Carlsson | 2009-11-23 | 1 | -12/+33 | |
| | | | | llvm-svn: 89678 | |||||
* | Fix lifetime of conditional temporaries. Patch by Victor Zverovich! | Anders Carlsson | 2009-11-20 | 1 | -8/+8 | |
| | | | | llvm-svn: 89467 | |||||
* | Minor cleanup to member pointer handling. | Eli Friedman | 2009-11-18 | 1 | -7/+3 | |
| | | | | llvm-svn: 89201 | |||||
* | Clean up scalar cast kind handling; make cast kind handling explicitly handle | Eli Friedman | 2009-11-16 | 1 | -36/+61 | |
| | | | | | | more cases. No intended visible change. llvm-svn: 88968 | |||||
* | Implement most of dynamic_cast. WIP. | Mike Stump | 2009-11-16 | 1 | -0/+6 | |
| | | | | llvm-svn: 88901 | |||||
* | indirectbr seems to work! Rip out the old code. | Chris Lattner | 2009-11-06 | 1 | -8/+0 | |
| | | | | llvm-svn: 86256 | |||||
* | Refine volatile handling, specifically, we must have the canonical | Mike Stump | 2009-11-03 | 1 | -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 Carlsson | 2009-10-30 | 1 | -1/+6 | |
| | | | | llvm-svn: 85560 | |||||
* | Implement clang support for indirect branch and address of label | Chris Lattner | 2009-10-28 | 1 | -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 Begeman | 2009-10-25 | 1 | -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 for | Fariborz Jahanian | 2009-10-22 | 1 | -24/+5 | |
| | | | | | | both scalar and aggregates. llvm-svn: 84910 | |||||
* | Canonicality is a property of qualified types, not unqualified types. | John McCall | 2009-10-22 | 1 | -1/+1 | |
| | | | | llvm-svn: 84891 | |||||
* | Code gen for '.*' binary expressions - WIP. | Fariborz Jahanian | 2009-10-21 | 1 | -0/+27 | |
| | | | | llvm-svn: 84800 | |||||
* | Support IRgen of OpenCL vector initializers, ensuring the resulting IR is in a | Nate Begeman | 2009-10-18 | 1 | -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 Carlsson | 2009-10-18 | 1 | -1/+10 | |
| | | | | llvm-svn: 84423 | |||||
* | Fix PR5211: codegen shouldn't assume that the result of ||/&& is int | Chris Lattner | 2009-10-17 | 1 | -10/+14 | |
| | | | | | | anymore. In C++ it is bool. llvm-svn: 84308 | |||||
* | Simplify pointer creation with the new Type::getInt*Ptr methods. | Benjamin Kramer | 2009-10-13 | 1 | -12/+6 | |
| | | | | llvm-svn: 83964 | |||||
* | Generate weak read barriers when reading a weak __block | Fariborz Jahanian | 2009-10-10 | 1 | -1/+5 | |
| | | | | | | variable inside the block. llvm-svn: 83729 | |||||
* | Use new predicates for some type equality tests. | Benjamin Kramer | 2009-10-05 | 1 | -2/+2 | |
| | | | | llvm-svn: 83303 | |||||
* | Refactor the representation of qualifiers to bring ExtQualType out of the | John McCall | 2009-09-24 | 1 | -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 Stump | 2009-09-22 | 1 | -1/+0 | |
| | | | | llvm-svn: 82584 | |||||
* | No need to null check implicit lvalue cast exprs. | Anders Carlsson | 2009-09-22 | 1 | -8/+15 | |
| | | | | llvm-svn: 82580 | |||||
* | Change all the Type::getAsFoo() methods to specializations of Type::getAs(). | John McCall | 2009-09-21 | 1 | -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 Carlsson | 2009-09-15 | 1 | -0/+16 | |
| | | | | llvm-svn: 81837 | |||||
* | Codegen support for nullptr from C++0x. | Anders Carlsson | 2009-09-15 | 1 | -0/+4 | |
| | | | | llvm-svn: 81835 | |||||
* | When necessary, null check the base value in GetAddressCXXOfBaseClass. | Anders Carlsson | 2009-09-12 | 1 | -1/+9 | |
| | | | | llvm-svn: 81611 | |||||
* | Handle derived-to-base conversion in CGExprScalar::EmitCast, if the cast ↵ | Anders Carlsson | 2009-09-12 | 1 | -10/+18 | |
| | | | | | | kind is CK_DerivedToBase. llvm-svn: 81610 | |||||
* | Rename AddressCXXOfBaseClass to GetAddressCXXOfBaseClass. Add a ↵ | Anders Carlsson | 2009-09-12 | 1 | -1/+3 | |
| | | | | | | NullCheckValue argument (currently unused). llvm-svn: 81606 | |||||
* | If a cast expression needs either a conversion function or a constructor to ↵ | Anders Carlsson | 2009-09-09 | 1 | -8/+0 | |
| | | | | | | be called, generate implicit child expressions that call them. llvm-svn: 81383 | |||||
* | Remove tabs, and whitespace cleanups. | Mike Stump | 2009-09-09 | 1 | -2/+1 | |
| | | | | llvm-svn: 81346 | |||||
* | Reflow comments and some minor whitespace fixups. | Mike Stump | 2009-09-09 | 1 | -185/+182 | |
| | | | | llvm-svn: 81337 |