summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenFunction.h
Commit message (Collapse)AuthorAgeFilesLines
* Factor code that's common to EmitCXXMemberCallExpr and ↵Anders Carlsson2009-05-111-0/+7
| | | | | | EmitCXXConstructorCall out into a EmitCXXMemberCall function. llvm-svn: 71514
* Remove unnecessary copy of constraint info.Daniel Dunbar2009-05-041-1/+2
| | | | llvm-svn: 70835
* Make codegen for constructors work again.Anders Carlsson2009-05-031-3/+1
| | | | llvm-svn: 70785
* split ObjC and C++ Statements out into their own headers.Chris Lattner2009-04-261-0/+4
| | | | llvm-svn: 70105
* fix PR4067: [Linux kernel] cannot aggregate codegen stmtexpr as lvalue Chris Lattner2009-04-251-1/+2
| | | | llvm-svn: 70067
* the logic for computing __func__ and friends is really broken:Chris Lattner2009-04-231-2/+4
| | | | | | | | | the type assigned by sema (and is visible with sizeof(__func__) for example) has nothing to do with what codegen ends up producing. We should eventually add a method on PredefinedExpr to handle this. In the meantime, just set up some framework and add some fixme's. llvm-svn: 69872
* Make ObjCInterfaceDecl's const in some more places.Daniel Dunbar2009-04-221-1/+1
| | | | llvm-svn: 69775
* Kill ASTContext::[gs]etFieldForDecl, instead we just lookup thingsDaniel Dunbar2009-04-211-1/+0
| | | | | | | | when we need them -- which is exactly what some code was already doing! - No intended functionality change. llvm-svn: 69648
* Silence gcc warning.Eli Friedman2009-04-191-1/+1
| | | | llvm-svn: 69541
* Make CodeGenFunction::EmitCallArgs a template function that takes a generic ↵Anders Carlsson2009-04-181-6/+38
| | | | | | "Type Info" parameter. The type info parameter knows how to iterate over its arguments. llvm-svn: 69469
* Implement basic code generation of constructor calls. We can now compile:Anders Carlsson2009-04-171-0/+10
| | | | | | | | | | | | struct S { S(int, int); }; void f() { S s(10, 10); } llvm-svn: 69330
* Support code generation of 'this' exprsAnders Carlsson2009-04-141-0/+4
| | | | llvm-svn: 69050
* Remove asserts that weren't really useful, and that would fire in case the ↵Anders Carlsson2009-04-101-5/+0
| | | | | | CleanupEntries vector needed to be reallocated. llvm-svn: 68835
* Add code for emitting call arguments (not used yet).Anders Carlsson2009-04-081-0/+11
| | | | llvm-svn: 68639
* Add some basic support for generating C++ member functions.Anders Carlsson2009-04-041-0/+4
| | | | llvm-svn: 68425
* Add support for calling C++ member functions.Anders Carlsson2009-04-031-0/+1
| | | | llvm-svn: 68412
* Fix a subtle bug where the cleanup scope entries had a dangling block referenceDaniel Dunbar2009-04-011-0/+5
| | | | | | | | | - <rdar://problem/6732143> Crash when generating @synchronize for zero-cost exception - Thanks to Anders for helping track down the problem. llvm-svn: 68186
* remove some obsolete comments, use an AssertingVH.Chris Lattner2009-03-311-8/+5
| | | | llvm-svn: 68151
* Fixup codegen for block literals that bleed copy/dispose informationMike Stump2009-03-251-1/+2
| | | | | | from previous block literals. llvm-svn: 67696
* Support member reference on ?: of struct type.Daniel Dunbar2009-03-241-0/+1
| | | | llvm-svn: 67603
* Fix codegen for support for super inside block literal expressions.Mike Stump2009-03-201-1/+4
| | | | llvm-svn: 67406
* More super dot-syntax property implementationFariborz Jahanian2009-03-201-0/+2
| | | | | | | when there is actually a property declaration used in the dot-syntax. llvm-svn: 67391
* add codegen support for casting an element to a union.Chris Lattner2009-03-181-0/+1
| | | | | | | There are some more complex cases (_Complex and structs) that I'm still working on. llvm-svn: 67218
* Do up codegen for function static data and externs in functions in blockMike Stump2009-03-131-0/+1
| | | | | | literals. llvm-svn: 66984
* Codegen support for copy helpers for block literals.Mike Stump2009-03-071-21/+3
| | | | llvm-svn: 66319
* Pass the type of the block literal around to make required temporal ordering ↵Mike Stump2009-03-061-1/+1
| | | | | | of code clearer. llvm-svn: 66284
* prep work for copy/destroy helpers for block literals.Mike Stump2009-03-051-9/+3
| | | | llvm-svn: 66159
* Move more blocks CodeGenFunction code up and out.Mike Stump2009-03-041-23/+0
| | | | llvm-svn: 66049
* Move some of the CodeGenFunction blocks code up and out. NoMike Stump2009-03-041-3/+0
| | | | | | functionality change. llvm-svn: 66048
* Move more of blocks codegen out of CodeGenModule and into theMike Stump2009-03-041-1/+1
| | | | | | | | | BlockModule. No functionality change. This should help people that don't want to know anything about blocks not be confused by the overloaded use of the term block or nor want to see all the blocks goop. llvm-svn: 66042
* Start the migration of more of the blocks code out of sight for mostMike Stump2009-03-041-22/+2
| | | | | | people. De-duplicates BLOCK_NEEDS_FREE and friends. llvm-svn: 66034
* Improved ABI compliance for __block variables. No testcases yet as weMike Stump2009-03-041-0/+33
| | | | | | | still give an unsupported error for them due to the fact this is a work in progress. llvm-svn: 66007
* Do some blocks cleanup and simplification. Fix a crash, and add a test case.Anders Carlsson2009-03-011-0/+8
| | | | llvm-svn: 65746
* improve compatibility with the VC++'08 C++ compiler. Patch byChris Lattner2009-02-281-1/+1
| | | | | | Niklas Larsson! llvm-svn: 65706
* First cut CodeGen support for __block variables.Mike Stump2009-02-281-29/+12
| | | | llvm-svn: 65688
* Create a new TypeNodes.def file that enumerates all of the types,Douglas Gregor2009-02-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | giving them rough classifications (normal types, never-canonical types, always-dependent types, abstract type representations) and making it far easier to make sure that we've hit all of the cases when decoding types. Switched some switch() statements on the type class over to using this mechanism, and filtering out those things we don't care about. For example, CodeGen should never see always-dependent or non-canonical types, while debug info generation should never see always-dependent types. More switch() statements on the type class need to be moved over to using this approach, so that we'll get warnings when we add a new type then fail to account for it somewhere in the compiler. As part of this, some types have been renamed: TypeOfExpr -> TypeOfExprType FunctionTypeProto -> FunctionProtoType FunctionTypeNoProto -> FunctionNoProtoType There shouldn't be any functionality change... llvm-svn: 65591
* Add Type::hasPointerRepresentation predicate.Daniel Dunbar2009-02-261-4/+0
| | | | | | | | | - For types whose native representation is a pointer. - Use to replace ExprConstant.cpp:HasPointerEvalType, CodeGenFunction::isObjCPointerType. llvm-svn: 65569
* CodeGen support for copied BlockDeclRefExprs.Mike Stump2009-02-251-12/+32
| | | | llvm-svn: 65487
* Fold GeneraticStaticBlockVarDecl into callers.Daniel Dunbar2009-02-251-8/+0
| | | | | | - No functionality change. llvm-svn: 65470
* Pull COdeGenFunction::CreateStaticBlockVarDecl (just for creating theDaniel Dunbar2009-02-251-9/+17
| | | | | | | | global variable) out of GenerateStaticBlockVarDecl. - No intended functionality change. - Prep for some mild cleanups and PR3662. llvm-svn: 65466
* first wave of fixes for @encode sema support. This is part of PR3648.Chris Lattner2009-02-241-0/+1
| | | | | | | The big difference here is that (like string literal) @encode has array type, not pointer type. llvm-svn: 65391
* Prevent accidental copying of CodeGenFunction and CodeGenModule.Anders Carlsson2009-02-241-0/+2
| | | | llvm-svn: 65372
* Add low level support for generating invoke instead of calls.Daniel Dunbar2009-02-231-0/+11
| | | | | | - No functionality change. llvm-svn: 65325
* Copy some clenaups from Eli to code that I copied. :-)Mike Stump2009-02-221-6/+1
| | | | llvm-svn: 65286
* Cleanp code with some recent suggestions.Mike Stump2009-02-221-5/+10
| | | | llvm-svn: 65285
* Add CodeGen support for the helper for BlockDeclRefExprs. The easierMike Stump2009-02-211-4/+36
| | | | | | stuff is mostly done. Move BlockHasCopyDispose up. llvm-svn: 65242
* Set call attribute for direct calls (i.e. noreturn).Daniel Dunbar2009-02-201-5/+8
| | | | | | - Remove an unused variant of EmitCallExpr overload. llvm-svn: 65130
* Deox and Capitolize.Mike Stump2009-02-201-3/+3
| | | | llvm-svn: 65093
* Fixup spacing a little.Mike Stump2009-02-171-6/+6
| | | | llvm-svn: 64768
* Support IRgen of sqrt -> llvm.sqrt, pow -> llvm.pow.Daniel Dunbar2009-02-161-1/+2
| | | | | | | | | | | | | | | | - Define pow[lf]?, sqrt[lf]? as builtins. - Add -fmath-errno option which binds to LangOptions.MathErrno - Add new builtin flag Builtin::Context::isConstWithoutErrno for functions which can be marked as const if errno isn't respected for math functions. Sema automatically marks these functions as const when they are defined, if MathErrno=0. - IRgen uses const attribute on sqrt and pow library functions to decide if it can use the llvm intrinsic. llvm-svn: 64689
OpenPOWER on IntegriCloud