summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Add overidding for methods for vtable building for the secondaryMike Stump2009-09-041-0/+4
| | | | | | vtables. Add thunk generation. WIP. llvm-svn: 81014
* Cleanups. Move GenerateRtti to CodeGenModule.Mike Stump2009-08-181-0/+3
| | | | llvm-svn: 79372
* Patch toward synthesizing non-trivial destructors. WIPFariborz Jahanian2009-08-161-0/+1
| | | | llvm-svn: 79199
* Patch to force synthesis of copy assignment operatorFariborz Jahanian2009-08-131-0/+1
| | | | | | | | function in the order according to c++03. ir-gen for copy assignment in the trivial case and the first test case. llvm-svn: 78938
* LLVMContext is a class now.Benjamin Kramer2009-08-111-1/+1
| | | | llvm-svn: 78691
* Add support for global initializers.Anders Carlsson2009-08-081-0/+7
| | | | llvm-svn: 78515
* 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
OpenPOWER on IntegriCloud