summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.h
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* 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
OpenPOWER on IntegriCloud