summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.h
Commit message (Collapse)AuthorAgeFilesLines
* Work-in-progess rewrite of thunks: move thunk generation outside of vtableEli Friedman2009-12-061-0/+7
| | | | | | | generation, and make sure we generate thunks when the function is defined rather than when the vtable is defined. llvm-svn: 90722
* Set the correct linkage for VTTs as well.Anders Carlsson2009-12-061-4/+3
| | | | llvm-svn: 90689
* Make GenerateVtable a private member function of CGVtableInfo.Anders Carlsson2009-12-061-9/+0
| | | | llvm-svn: 90684
* Minor cleanup.Eli Friedman2009-12-031-1/+1
| | | | llvm-svn: 90411
* Add support for thunking dtors. Oh why does this make my head hurt?Mike Stump2009-12-031-2/+2
| | | | llvm-svn: 90409
* Add CodeGenModule::ComputeThunkAdjustment, which Eli wrote.Anders Carlsson2009-12-031-1/+6
| | | | llvm-svn: 90401
* Change rtti/Rtti to RTTI, as it is an acronym.Mike Stump2009-12-021-6/+6
| | | | llvm-svn: 90334
* Simplify and fix up the handling of implicit constructors, copy assignmentEli Friedman2009-11-261-3/+0
| | | | | | | | operators, and destructors. Avoids generating declarations/definitions of trivial constructors/destructors, and makes sure the trivial copy assignment operator is generated when necessary. llvm-svn: 89943
* Add a CovariantThunkAdjustment struct that represents the adjustments needed ↵Anders Carlsson2009-11-261-3/+3
| | | | | | for a covariant thunk. llvm-svn: 89933
* Add a ThunkAdjustment struct which holds a non-virtual and a virtual ↵Anders Carlsson2009-11-261-3/+4
| | | | | | adjustment offset. Start using it. General cleanup in Mangle.cpp. llvm-svn: 89925
* Simplify rtti building code a little. Prep for reuse for throw rttiMike Stump2009-11-201-1/+1
| | | | | | generation. llvm-svn: 89416
* Add typeid for the builtin types. WIP.Mike Stump2009-11-171-0/+3
| | | | llvm-svn: 89028
* Finisgh off rest of class_type_info rtti generation.Mike Stump2009-11-141-0/+3
| | | | llvm-svn: 88823
* Move GlobalDecl to its own file. Also add DenseMapInfo traits.Anders Carlsson2009-11-131-39/+1
| | | | llvm-svn: 87081
* Allow the tracking of address points for construction vtables as well.Mike Stump2009-11-131-2/+3
| | | | llvm-svn: 87063
* Fix the offset calculations for non-virtual bases with overrides.Mike Stump2009-11-121-3/+11
| | | | | | | | | Refine the VTT entries for virtual bases to refer to the complete object's vtable instead of constructor vtables. Refine the AddressPoint calculations for VTT entries for virtual bases. llvm-svn: 87021
* "Attach debug info with llvm instructions" mode was enabled a month ago. ↵Devang Patel2009-11-121-2/+0
| | | | | | Now make it permanent and remove old way of inserting intrinsics to encode debug info for locations and types. llvm-svn: 87007
* Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library.Chandler Carruth2009-11-121-4/+4
| | | | | | This resolves the layering violation where CodeGen depended on Frontend. llvm-svn: 86998
* Push ctor vtable construction down further. WIP.Mike Stump2009-11-111-1/+3
| | | | llvm-svn: 86878
* Add vtable caching to prevent multiple vtables for the same class fromMike Stump2009-11-101-0/+6
| | | | | | | | being generated. Add the most derived vtable pointer to the VTT. llvm-svn: 86671
* Added support for static variables which requireFariborz Jahanian2009-11-051-1/+1
| | | | | | initialization before main. Fixes pr5396. llvm-svn: 86145
* Enable "debug info attached to an instruction" mode.Devang Patel2009-10-121-0/+2
| | | | llvm-svn: 83928
* Move the vtable builder to CGVtable.cpp, general cleanup.Anders Carlsson2009-10-111-3/+5
| | | | llvm-svn: 83798
* Add a MangleContext and pass it to all mangle functions. It will be used for ↵Anders Carlsson2009-10-071-1/+5
| | | | | | keeping state, such as identifiers assigned to anonymous structs as well as scope encoding. llvm-svn: 83442
* Move some functions from CodeGenFunctions to CodeGenModule so they can be ↵Anders Carlsson2009-10-031-0/+8
| | | | | | used by CGExprConstant. llvm-svn: 83263
* Fix subtle bug in generating LLVM function declarations for builtin functions.Daniel Dunbar2009-09-141-1/+2
| | | | | | | | | | The decl wasn't being passed down, which meant that function attributes were not being set correctly. This is particularly important for ARM, since it wants to override the calling convention. Instead we would emit the builtin with the wrong calling convention, and instcombine would come along and merrily shred all the calls to it. :) llvm-svn: 81756
* whitespace fixChris Lattner2009-09-121-1/+1
| | | | llvm-svn: 81644
* Change CodeGenModule::ConstructTypeAttributes to return the calling conventionDaniel Dunbar2009-09-121-1/+11
| | | | | | to use, and allow the ABI implementation to override the calling convention. llvm-svn: 81593
* Add basic covariant thunk generation support. WIP.Mike Stump2009-09-111-0/+4
| | | | llvm-svn: 81585
* Pass GlobalDecls to GenerateCode and StartFunction.Anders Carlsson2009-09-111-6/+7
| | | | llvm-svn: 81485
* Add stricter GlobalDecl constructors.Anders Carlsson2009-09-101-7/+15
| | | | llvm-svn: 81480
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-27/+27
| | | | llvm-svn: 81346
* Install thunks later to fixup overrides. Track space taken by vbaseMike Stump2009-09-051-2/+2
| | | | | | offsets better for thunk refinements. Cleanups. WIP. llvm-svn: 81067
* 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
OpenPOWER on IntegriCloud