summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Reapply patch for adding support for address spaces and added a isVolatile ↵Mon P Wang2010-04-021-3/+11
| | | | | | field to memcpy, memmove, and memset. llvm-svn: 100193
* Minor include pruning.Benjamin Kramer2010-03-311-1/+0
| | | | llvm-svn: 100007
* Revert Mon Ping's 99930 due to broken llvm-gcc buildbots.Bob Wilson2010-03-301-11/+7
| | | | llvm-svn: 99949
* Added support for address spaces and added a isVolatile field to memcpy, ↵Mon P Wang2010-03-301-7/+11
| | | | | | memmove, and memset llvm-svn: 99930
* Remove the old vtable layout code.Anders Carlsson2010-03-301-10/+0
| | | | llvm-svn: 99869
* When given the magic class __cxxabiv1::__fundamental_type_info, produceRafael Espindola2010-03-271-0/+8
| | | | | | | | the typeinfo for the fundamental types. Fixes PR6685. llvm-svn: 99701
* Remove old thunks code.Anders Carlsson2010-03-241-11/+0
| | | | llvm-svn: 99374
* More thunks scaffolding.Anders Carlsson2010-03-231-0/+3
| | | | llvm-svn: 99294
* Rename CGVtableInfo to CodeGenVTables in preparation of adding another ↵Anders Carlsson2010-03-231-3/+3
| | | | | | VTableInfo class. llvm-svn: 99250
* C++: Add support for -fno-use-cxa-atexit.Daniel Dunbar2010-03-201-2/+13
| | | | | | | | - So much typing, so little gain... Also, rename the __cxx_global_initialization function just to match llvm-gcc. llvm-svn: 99039
* Change CodeGenModule to rely on the Module's symbol table instead ofJohn McCall2010-03-191-40/+17
| | | | | | | | | | | | | shadowing it in the GlobalDeclMap. Eliminates the string-uniquing requirement for mangled names, which should help C++ codegen times a little. Forces us to do string lookups instead of pointer lookups, which might hurt codegen times a little across the board. We'll see how it plays out. Removing the string-uniquing requirement implicitly fixes any bugs like PR6635 which arose from the fact that we had multiple uniquing tables for different kinds of identifiers. llvm-svn: 99012
* Give explicit template instantiations weak ODR linkage. FormerDouglas Gregor2010-03-131-1/+2
| | | | | | | | | iterations of this patch gave explicit template instantiation link-once ODR linkage, which permitted the back end to eliminate unused symbols. Weak ODR linkage still requires the symbols to be generated. llvm-svn: 98441
* Re-revert the explicit template instantiation linkage patch. I am beginning ↵Douglas Gregor2010-03-131-2/+1
| | | | | | to look incompetent llvm-svn: 98425
* Reinstate patch to turn explicit template instantiations into weak symbolsDouglas Gregor2010-03-131-1/+2
| | | | llvm-svn: 98424
* Revert the linkage change for explicit template instantiations; something is ↵Douglas Gregor2010-03-121-2/+1
| | | | | | amiss llvm-svn: 98332
* Give explicit template instantiations weak linkage (but don't deferDouglas Gregor2010-03-121-1/+2
| | | | | | them). Fixes PR6578. llvm-svn: 98328
* Delay codegen of vtables when handling implicit instantiations.Rafael Espindola2010-03-101-1/+3
| | | | | | This fixes PR6474. llvm-svn: 98123
* Implement __builtin_dwarf_sp_column for i386 (Darwin and not), x86-64 (all),John McCall2010-03-061-0/+1
| | | | | | | and ARM. Implement __builtin_init_dwarf_reg_size_table for i386 (both) and x86-64 (all). llvm-svn: 97859
* Fix PR6473.Rafael Espindola2010-03-041-0/+9
| | | | | | | | | Clang's support for weakref is now better than llvm-gcc's :-) We don't introduce a new symbol and we correctly mark undefined references weak only if there is no definition or regular undefined references in the same file. llvm-svn: 97733
* Revert changes r97693, r97700, and r97718.John McCall2010-03-041-7/+1
| | | | | | Our testing framework can't deal with disabled targets yet. llvm-svn: 97719
* Create a TargetMachine whenever we create a CodeGenAction. The codegen ofJohn McCall2010-03-041-1/+7
| | | | | | some builtins will rely on target knowledge. llvm-svn: 97693
* Perform two more constructor/destructor code-size optimizations:John McCall2010-02-231-0/+1
| | | | | | | | | | | | | | | | 1) emit base destructors as aliases to their unique base class destructors under some careful conditions. This is enabled for the same targets that can support complete-to-base aliases, i.e. not darwin. 2) Emit non-variadic complete constructors for classes with no virtual bases as calls to the base constructor. This is enabled on all targets and in theory can trigger in situations that the alias optimization can't (mostly involving virtual bases, mostly not yet supported). These are bundled together because I didn't think it worthwhile to split them, not because they really need to be. llvm-svn: 96842
* Re-introduce the ctor/dtor alias optimization, this time hidden behind aJohn McCall2010-02-191-4/+22
| | | | | | command-line option which defaults off. llvm-svn: 96649
* Revert the ctor/dtor alias optimization for now; the buildbots can detectJohn McCall2010-02-181-22/+4
| | | | | | some failure here that I can't. llvm-svn: 96612
* Emit complete constructors and destructors as aliases to base constructorsJohn McCall2010-02-171-4/+22
| | | | | | | | and destructors when the two entities are semantically identical, i.e. when the class has no virtual base classes. We only do this for linkage types for which aliases are supported, i.e. internal and external, i.e. not linkonce. llvm-svn: 96451
* Use the correct function info for constructors when applying function ↵Anders Carlsson2010-02-061-1/+1
| | | | | | attributes. Fixes PR6245. llvm-svn: 95474
* Move pointer to data member emission to CodeGenModule and use it in ↵Anders Carlsson2010-02-021-0/+2
| | | | | | CGExprConstant. Fixes PR5674. llvm-svn: 95063
* Some class related cleanup.Anders Carlsson2010-01-311-4/+5
| | | | llvm-svn: 94938
* Introduce CodeGenModule::GetTargetTypeStoreSize() to calculate the store sizeKen Dyck2010-01-261-0/+5
| | | | | | of LLVM types in character units. llvm-svn: 94542
* Created __builtin___NSStringMakeConstantString() builtin, which generates ↵David Chisnall2010-01-231-1/+4
| | | | | | constant Objective-C strings. llvm-svn: 94274
* Generalize target weirdness handling having proper layering in mind:Anton Korobeynikov2010-01-101-0/+3
| | | | | | | | | 1. Add helper class for sema checks for target attributes 2. Add helper class for codegen of target attributes As a proof-of-concept - implement msp430's 'interrupt' attribute. llvm-svn: 93118
* Fix for PR5967: Make const-marking for LLVM globals correct for cases requiringEli Friedman2010-01-081-2/+4
| | | | | | | run-time initialization, and emit run-time initializers aggresively to avoid ordering issues with deferred globals. llvm-svn: 92976
* Fix linkage for RTTI names by re-using the logic for computing theDouglas Gregor2010-01-061-1/+2
| | | | | | | | linkage of vtables. Before this, we were emitting RTTI names for template instantiations with strong external linkage rather than with weak ODR linkage. llvm-svn: 92857
* Fix marking of virtual members for nested classes whose first non-pure ↵Douglas Gregor2010-01-061-0/+4
| | | | | | virtual function has a body inlined in the class llvm-svn: 92855
* Move address points to CGVtableInfo, no functionality change.Anders Carlsson2010-01-021-5/+0
| | | | llvm-svn: 92420
* Work in progress for setting the vtable pointers for all bases correctly inEli Friedman2009-12-181-2/+2
| | | | | | | the constructor. This doesn't handle cases requiring the VTT at the moment, and generates unnecessary stores, but I think it's essentially correct. llvm-svn: 91731
* Rename GetAddrOfRTTI to GetAddrOfRTTIDescriptor. Remove the overload that ↵Anders Carlsson2009-12-171-6/+3
| | | | | | takes a CXXRecordDecl since we were just creating a QualType from it anyway. llvm-svn: 91590
* Use GetAddrOfRTTI everywhere and remove GenerateRTTI and GenerateRTTIRef. ↵Anders Carlsson2009-12-161-11/+0
| | | | | | With this change, we can now compile and link TableGen. llvm-svn: 91520
* Improve linkage of RTTI data structures. Introduce ↵Anders Carlsson2009-12-111-0/+7
| | | | | | CodeGenModule::GetAddrOfRTTI which figures out the right linkage of the RTTI information for the given type and whether it should be defined or not. I will migrate clients over to GetAddrOfRTTI in subsequent commits (with tests). llvm-svn: 91098
* 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
OpenPOWER on IntegriCloud