summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExprScalar.cpp
Commit message (Collapse)AuthorAgeFilesLines
* IRgen: Move BitField LValues to just hold a reference to the CGBitFieldInfo.Daniel Dunbar2010-04-051-2/+2
| | | | | | | | | - Unfortunately, this requires some horrible code in CGObjCMac which always allocats a CGBitFieldInfo because we don't currently build a proper layout for Objective-C classes. It needs to be cleaned up, but I don't want the bit-field cleanups to be blocked on that. llvm-svn: 100474
* Introduce a new kind of derived-to-base cast which bypasses the need forJohn McCall2010-03-301-0/+4
| | | | | | | null checks, and make sure we elide null checks when accessing base class members. llvm-svn: 99963
* emit signed integer subtractions as 'sub nsw', patch byChris Lattner2010-03-291-0/+5
| | | | | | Anton Yartsev! llvm-svn: 99817
* Fix code gen bug generating code forFariborz Jahanian2010-03-031-0/+2
| | | | | | ((id)cat)->isa. Fixes radar 7709015. llvm-svn: 97672
* Uniformize the names of type predicates: rather than having isFloatTy andDuncan Sands2010-02-151-8/+8
| | | | | | isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris! llvm-svn: 96224
* Fix a code gen bug accessing 'isa' field via a message callFariborz Jahanian2010-02-051-5/+14
| | | | | | (Fixes radar 7609722). llvm-svn: 95406
* Rename StartConditionalBranch/FinishConditionalBranch to ↵Anders Carlsson2010-02-041-8/+8
| | | | | | BeginConditionalBranch/EndConditionalBranch. llvm-svn: 95308
* Move pointer to data member emission to CodeGenModule and use it in ↵Anders Carlsson2010-02-021-2/+0
| | | | | | CGExprConstant. Fixes PR5674. llvm-svn: 95063
* Some class related cleanup.Anders Carlsson2010-01-311-2/+2
| | | | llvm-svn: 94938
* Roll out ASTContext::getTypeSizeInChars(), replacing instances ofKen Dyck2010-01-111-7/+9
| | | | | | | | | | "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. llvm-svn: 93153
* refactor pre/postinc logic into CGF and require the caller to pass in theChris Lattner2010-01-091-93/+4
| | | | | | lvalue to poke, no functionality change. llvm-svn: 93075
* Get rid of more dead code.Eli Friedman2010-01-031-47/+0
| | | | llvm-svn: 92439
* Remove some dead variables clang-analyzer found.Benjamin Kramer2009-12-251-1/+1
| | | | llvm-svn: 92162
* Remove ';' after method definition. Noticed by clang++, which one would thinkDaniel Dunbar2009-12-191-16/+16
| | | | | | | would have a higher respect for its own code. This is getting old, is this warning really adding value? llvm-svn: 91779
* It's perfectly fine to see UserDefinedConversion casts when emitting scalar ↵Anders Carlsson2009-12-181-1/+1
| | | | | | expressions. llvm-svn: 91686
* 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
OpenPOWER on IntegriCloud