summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.h
Commit message (Collapse)AuthorAgeFilesLines
...
* More synthesis of copy constructors. Work in progress.Fariborz Jahanian2009-08-071-0/+1
| | | | llvm-svn: 78402
* Update for LLVM API change.Owen Anderson2009-08-051-1/+1
| | | | llvm-svn: 78259
* Add code to setup the vtable pointer in the constructor. Work in progress.Mike Stump2009-07-311-1/+1
| | | | llvm-svn: 77699
* Update for LLVM API change, and contextify a bunch of related stuff.Owen Anderson2009-07-141-1/+3
| | | | llvm-svn: 75705
* Update for LLVM API change.Owen Anderson2009-07-131-0/+3
| | | | llvm-svn: 75446
* Improve code generation for function template specializations:Douglas Gregor2009-06-291-1/+2
| | | | | | | | | | | | | | | | - Track implicit instantiations vs. the not-yet-supported explicit specializations - Give implicit instantiations of function templates (and member functions of class templates) linkonce_odr linkage. - Improve name mangling for function template specializations, including the template arguments of the instantiation and the return type of the function. Note that our name-mangling is improved, but not correct: we still don't mangle substitutions, although the manglings we produce can be demangled. llvm-svn: 74466
* Handle the edge case of a weak function with incomplete type correctly. Eli Friedman2009-05-261-2/+3
| | | | | | Found by code inspection; I haven't seen this in real-world code. llvm-svn: 72408
* push GlobalDecl through enough of the CodeGenModule interfacesChris Lattner2009-05-121-39/+39
| | | | | | | | | to allow us to support generation of deferred ctors/dtors. It looks like codegen isn't emitting a call to the dtor in member-functions.cpp:test2, but when it does, its body should get emitted. llvm-svn: 71594
* Refactor global decls to hold either a regular Decl or a CXXConstructorDecl ↵Anders Carlsson2009-05-051-4/+39
| | | | | | + ctor type or a CXXDestructorDecl + dtor type. llvm-svn: 70962
* Explictly track tentative definitions within Sema, then hand thoseDouglas Gregor2009-04-211-9/+2
| | | | | | | | | | | | | | | tentative definitions off to the ASTConsumer at the end of the translation unit. Eliminate CodeGen's internal tracking of tentative definitions, and instead hook into ASTConsumer::CompleteTentativeDefinition. Also, tweak the definition-deferal logic for C++, where there are no tentative definitions. Fixes <rdar://problem/6808352>, and will make it much easier for precompiled headers to cope with tentative definitions in the future. llvm-svn: 69681
* Add support for generating (very basic) C++ destructors. These aren't called ↵Anders Carlsson2009-04-171-0/+16
| | | | | | by anything yet. llvm-svn: 69343
* Attributes on block functions were not being set.Daniel Dunbar2009-04-171-2/+6
| | | | | | | - <rdar://problem/6800351> clang not producing correct large struct return code for Blocks llvm-svn: 69337
* Add GetAddrOfCXXConstructor and use it.Anders Carlsson2009-04-161-0/+5
| | | | llvm-svn: 69328
* Defer generation of tentative definitions.Daniel Dunbar2009-04-151-0/+9
| | | | | | | | | | | | | | - PR3980. - <rdar://problem/6762287> [irgen] crash when generating tentative definition of incomplete structure - This also avoids creating common definitions for things which are later overwritten. - XFAIL'ed external-defs.c, it isn't completing types properly yet. llvm-svn: 69231
* Start attempting to generate code for C++ ctors.Anders Carlsson2009-04-151-1/+19
| | | | llvm-svn: 69168
* remove dead enumChris Lattner2009-04-141-1/+0
| | | | llvm-svn: 69070
* Fix PR3988: extern inline functions get strong symbol definitions inChris Lattner2009-04-141-2/+1
| | | | | | | | C99 mode. This is a regression from an earlier patch of mine. This also simplifies the linkage enums a bit. llvm-svn: 69069
* implement codegen support for __attribute((__gnuc_inline__)),Chris Lattner2009-04-141-1/+3
| | | | | | | | pulling some attribute munging stuff into GetLinkageForFunction. This should fix PR3986 llvm-svn: 69045
* Refactor how attributes are set on values.Daniel Dunbar2009-04-141-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | - Pull out SetCommonAttributes, which handles the things common to aliases, methods, functions, and variables. - Pull out SetLLVMFunctionAttributesForDefinition, which handles the LLVM attributes which we only want to apply to a definition (like noinline and alwaysinline). - Kill SetGVDeclarationAttributes (inlined into SetFunctionAttributes and specialized). - Kill SetFunctionAttributesForDefinition (inlined into sole caller). - Inline SetGVDefinitionAttributes into SetMethodAttributes and specialize. - Rename SetGVDefinitionAttributes to SetFunctionDefinitionAttributes. This is supposed to be a no functionality change commit, but I may have made a mistake. llvm-svn: 69036
* Split SetGlobalValueAttributes into definition/declaration halves.Daniel Dunbar2009-04-141-5/+8
| | | | | | - No functionality change. llvm-svn: 69035
* Rename (one) SetFunctionAttributes to SetLLVMFunctionAttributes toDaniel Dunbar2009-04-141-3/+8
| | | | | | | disambiguate it. - No functionality change. llvm-svn: 69034
* add a new enum type for linkage, no functionality change.Chris Lattner2009-04-141-4/+9
| | | | llvm-svn: 69028
* Clean up handling of visibility.Daniel Dunbar2009-04-141-0/+8
| | | | llvm-svn: 69027
* Minor work related to removing the assumption that value initialization Eli Friedman2009-04-131-0/+5
| | | | | | implies an all-zero bit pattern. llvm-svn: 68994
* Add a destination type argument to EmitConstantExpr. This will be used for ↵Anders Carlsson2009-04-081-1/+2
| | | | | | when the destination has a reference type. (No functionality change yet) llvm-svn: 68593
* Emit code for linkage specifications.Anders Carlsson2009-04-021-0/+1
| | | | llvm-svn: 68300
* More "prep" work for handling UTF16 CFString.Steve Naroff2009-04-011-1/+1
| | | | | | Patch by Jean-Daniel Dupas. Thanks! llvm-svn: 68203
* move trivial forwarding function inline.Chris Lattner2009-04-011-1/+4
| | | | llvm-svn: 68176
* Implement code generation of namespaces and add mangling tests.Anders Carlsson2009-04-011-1/+2
| | | | llvm-svn: 68170
* Change UsedArray to be a vector of WeakVH to fix a dangling pointer problem ↵Chris Lattner2009-03-311-1/+2
| | | | | | | | that occurs when attribute(used) and asm renaming are used together. llvm-svn: 68155
* Do not emit debug information for variables while generating optimized code. ↵Devang Patel2009-03-271-0/+1
| | | | | | The llvm optimizer and code generator are not yet ready to support optimized code debugging. llvm-svn: 67876
* most of this is plumbing to get CompileOptions down into Chris Lattner2009-03-261-8/+7
| | | | | | | CodeGenModule. Once there, add a new NoCommon option to it and implement -fno-common. llvm-svn: 67735
* switch getBuiltinLibFunction to use the new GetOrCreateLLVMFunction Chris Lattner2009-03-221-5/+0
| | | | | | | | functionality, fixing a crash on the attached testcase. Eliminate the BuiltinFunctions cache, as it can contain dangling pointers. This fixes a bunch of valgrind errors on test/CodeGen/builtins.c llvm-svn: 67484
* emit aliases as the definitions fly by, don't bother deferring untilChris Lattner2009-03-221-6/+1
| | | | | | the end of the module. llvm-svn: 67482
* pull "runtime globals" into the same framework as other functions/global ↵Chris Lattner2009-03-221-16/+15
| | | | | | | | variables. No intended functionality change. llvm-svn: 67478
* now that all the decl reference and creation stuff is going through twoChris Lattner2009-03-211-7/+15
| | | | | | | very simple places, reimplement the deferred decl emission logic to not be O(N^2), fixing PR3810. llvm-svn: 67447
* fix a crash that could occur when a variable declaration became aChris Lattner2009-03-211-1/+1
| | | | | | function definition. llvm-svn: 67446
* simplify and cleanup global variable creation stuff to all go through oneChris Lattner2009-03-211-2/+5
| | | | | | code path. llvm-svn: 67445
* simplify management of llvm::Function creation to all go throughChris Lattner2009-03-211-12/+5
| | | | | | GetAddrOfFunction. This is simpler and more efficient. llvm-svn: 67444
* code cleanups, rename EmitForwardFunctionDefinition -> Chris Lattner2009-03-211-4/+4
| | | | | | | CreateFunctionPrototypeIR, though my next patch will eliminate it entirely. llvm-svn: 67443
* simplify some more code.Chris Lattner2009-03-211-1/+1
| | | | llvm-svn: 67439
* simplify and comment some code better. Make BindRuntimeGlobalsChris Lattner2009-03-211-1/+4
| | | | | | more optimistic that it will work (optimizing for the common case). llvm-svn: 67438
* IRgen support for alias of global variable.Daniel Dunbar2009-03-191-1/+1
| | | | | | - PR3818. llvm-svn: 67297
* Backout r66408, we don't want handling of globals to rely on theDaniel Dunbar2009-03-091-16/+13
| | | | | | | module symbol table. The root problem inspiring this was fixed in r66316 (and again in r66506). llvm-svn: 66512
* Be sure to never create two functions with the same name, instead arrange toMike Stump2009-03-091-13/+16
| | | | | | reuse the prior one. llvm-svn: 66408
* Some struct/class mismatch fixes, to silence MSVC warnings.Sebastian Redl2009-03-071-1/+1
| | | | llvm-svn: 66335
* (LLVM svn up) Generalize RuntimeFunctions to RuntimeGlobals and addDaniel Dunbar2009-03-061-5/+10
| | | | | | | | | | | | | | CodeGenModule::CreateRuntimeVariable. - No real functionality change; although we now assert on silly things like: -- int objc_exception_throw; void f0() { @throw(@"A"); } -- instead of accepting it. llvm-svn: 66292
* Move more of the blocks code up and out.Mike Stump2009-03-041-2/+0
| | | | llvm-svn: 66046
* Move more of blocks codegen out of CodeGenModule and into theMike Stump2009-03-041-24/+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-10/+2
| | | | | | people. De-duplicates BLOCK_NEEDS_FREE and friends. llvm-svn: 66034
OpenPOWER on IntegriCloud