summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Support for -fno-constant-cfstrings option - wip.Fariborz Jahanian2010-04-221-0/+6
| | | | llvm-svn: 102112
* Add comment explaning the use of c99 inline in c++.Rafael Espindola2010-04-191-0/+4
| | | | llvm-svn: 101787
* Fix -Wcast-qual warnings.Dan Gohman2010-04-191-1/+1
| | | | llvm-svn: 101786
* If a method is virtual and the class key function is in another file, emit ↵Rafael Espindola2010-04-191-1/+8
| | | | | | | | the method as available_externally. Fixes PR6747 llvm-svn: 101757
* Vtable -> VTable renames across the board.Anders Carlsson2010-04-171-6/+6
| | | | llvm-svn: 101666
* unbreak tests.Chris Lattner2010-04-131-6/+6
| | | | llvm-svn: 101153
* minor cleanupsChris Lattner2010-04-131-26/+28
| | | | llvm-svn: 101151
* Fix use after free. Incrementing an use_iterator after its user is erased is ↵Benjamin Kramer2010-04-101-3/+4
| | | | | | unsafe. llvm-svn: 100926
* rely even less on CallInst internalsGabor Greif2010-04-101-7/+6
| | | | llvm-svn: 100919
* do not rely on CallInst interna, use CallSite to access argumentsGabor Greif2010-04-101-1/+3
| | | | llvm-svn: 100918
* Provide an extremely unsatisfactory diagnostic (instead of crashing) whenJohn McCall2010-04-091-1/+2
| | | | | | | mangling an unknown expression kind. Also conveniently tells the user what kind of expression they should add to the mangler! llvm-svn: 100907
* Eliminate excessive PCH deserialization caused by the search forDouglas Gregor2010-04-081-1/+0
| | | | | | | | | | | | | | | | | | | | | | __cxxabiv1::__fundamental_type_info in every translation unit. Previously, we would perform name lookup for __cxxabiv1::__fundamental_type_info at the end of IRGen for a each translation unit, to determine whether it was present. If so, we we produce type information for all of the fundamental types. However, this name lookup causes PCH deserialization of a significant part of the translation unit, which has a woeful impact on performance. With this change, we now look at each record type after we've generated its vtable to see if it is __cxxabiv1::__fundamental_type_info. If so, we generate type info for all of the fundamental types. This works because __cxxabiv1::__fundamental_type_info should always have a key function (typically the virtual destructor), that will be defined once in the support library. The fundamental type information will end up there. Fixes <rdar://problem/7840011>. llvm-svn: 100772
* Reapply patch for adding support for address spaces and added a isVolatile ↵Mon P Wang2010-04-041-14/+16
| | | | | | field to memcpy, memmove, and memset. llvm-svn: 100305
* Revert r100193 since it causes failures in objc in clangMon P Wang2010-04-021-16/+14
| | | | llvm-svn: 100200
* Reapply patch for adding support for address spaces and added a isVolatile ↵Mon P Wang2010-04-021-14/+16
| | | | | | field to memcpy, memmove, and memset. llvm-svn: 100193
* adjust to IRBuilder change and use faster DebugLoc apis.Chris Lattner2010-04-011-3/+3
| | | | llvm-svn: 100093
* use the new optimized debug info metadata accessors. InChris Lattner2010-03-311-2/+2
| | | | | | | | addition to the inherent win, this eliminates the pointless cost of going through the name -> mdkind stringmap that we were paying. llvm-svn: 99983
* Revert Mon Ping's 99930 due to broken llvm-gcc buildbots.Bob Wilson2010-03-301-16/+14
| | | | llvm-svn: 99949
* Added support for address spaces and added a isVolatile field to memcpy, ↵Mon P Wang2010-03-301-14/+16
| | | | | | memmove, and memset llvm-svn: 99930
* When given the magic class __cxxabiv1::__fundamental_type_info, produceRafael Espindola2010-03-271-0/+1
| | | | | | | | the typeinfo for the fundamental types. Fixes PR6685. llvm-svn: 99701
* revert 99311. Looks like it broke darwin bootstrap.Rafael Espindola2010-03-231-11/+2
| | | | llvm-svn: 99317
* Avoid producing implicit methods when we have a explicit template instantiationRafael Espindola2010-03-231-2/+11
| | | | | | declaration. llvm-svn: 99311
* Always emit associated thunks when emitting the function itself. Remove ↵Anders Carlsson2010-03-231-15/+4
| | | | | | getVtableAddressPoint, it's not used. llvm-svn: 99252
* Rename MaybeEmitVtable to EmitVTableRelatedData in preparation for making it ↵Anders Carlsson2010-03-231-1/+1
| | | | | | emit thunks as well. llvm-svn: 99251
* 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-0/+1
| | | | | | | | - 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-86/+72
| | | | | | | | | | | | | 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-7/+16
| | | | | | | | | 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-10/+8
| | | | | | to look incompetent llvm-svn: 98425
* Reinstate patch to turn explicit template instantiations into weak symbolsDouglas Gregor2010-03-131-8/+10
| | | | llvm-svn: 98424
* Revert the linkage change for explicit template instantiations; something is ↵Douglas Gregor2010-03-121-10/+8
| | | | | | amiss llvm-svn: 98332
* Give explicit template instantiations weak linkage (but don't deferDouglas Gregor2010-03-121-8/+10
| | | | | | them). Fixes PR6578. llvm-svn: 98328
* Delay codegen of vtables when handling implicit instantiations.Rafael Espindola2010-03-101-1/+9
| | | | | | This fixes PR6474. llvm-svn: 98123
* Add a message to these asserts.Benjamin Kramer2010-03-061-3/+3
| | | | llvm-svn: 97873
* Implement __builtin_dwarf_sp_column for i386 (Darwin and not), x86-64 (all),John McCall2010-03-061-0/+5
| | | | | | | 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/+47
| | | | | | | | | 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-4/+3
| | | | | | Our testing framework can't deal with disabled targets yet. llvm-svn: 97719
* Refactor local class name mangling and make itFariborz Jahanian2010-03-041-1/+1
| | | | | | ABI conforming. llvm-svn: 97702
* Create a TargetMachine whenever we create a CodeGenAction. The codegen ofJohn McCall2010-03-041-3/+4
| | | | | | some builtins will rely on target knowledge. llvm-svn: 97693
* During codegen assert that any copy assignment, destructor or constructor thatRafael Espindola2010-03-021-3/+9
| | | | | | | | we need to synthesize has been marked as used by Sema. Change Sema to avoid these asserts. llvm-svn: 97589
* Add support for the weakref attribute. We still produce "alias weak" as ↵Rafael Espindola2010-02-231-0/+1
| | | | | | llvm-gcc does, but are more strict on what uses of weakref we accept. llvm-svn: 96992
* Perform two more constructor/destructor code-size optimizations:John McCall2010-02-231-21/+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-12/+17
| | | | | | command-line option which defaults off. llvm-svn: 96649
* Revert the ctor/dtor alias optimization for now; the buildbots can detectJohn McCall2010-02-181-17/+12
| | | | | | some failure here that I can't. llvm-svn: 96612
* Emit complete constructors and destructors as aliases to base constructorsJohn McCall2010-02-171-12/+17
| | | | | | | | 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
* Remove use of 'std::string' from Attr objects, using instead a byteTed Kremenek2010-02-111-2/+2
| | | | | | | | | array allocated using the allocator in ASTContext. This addresses these strings getting leaked when using a BumpPtrAllocator (in ASTContext). Fixes: <rdar://problem/7636765> llvm-svn: 95853
* Emit global references with constant initializers as constants. Fixes PR5585.John McCall2010-02-081-1/+1
| | | | | | | The standard actually says that such references should have internal linkage, but gcc doesn't do that, so we probably can't get away with it. llvm-svn: 95577
* Improved handling of the visibility attribute. Declarations now inherit ↵Anders Carlsson2010-02-071-0/+4
| | | | | | | | their parent's visibility. (This is kind of a risky change, but I did a self-host build and everything appears to work fine!) llvm-svn: 95511
* Switch CodeGen's "is this variable declaration a definition?" logicDouglas Gregor2010-02-061-14/+1
| | | | | | | | | over to VarDecl::isThisDeclarationADefinition(), which handles variables declared with linkage specifications better (among other things). CMake 2.9 (from CVS) now builds with clang++ and is somewhat functional. llvm-svn: 95486
* Use the correct function info for constructors when applying function ↵Anders Carlsson2010-02-061-4/+5
| | | | | | attributes. Fixes PR6245. llvm-svn: 95474
OpenPOWER on IntegriCloud