Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3f8e5dd898 
								
							 
						 
						
							
							
								
								strength reduce this call away.  
							
							 
							
							... 
							
							
							
							llvm-svn: 92253 
							
						 
						
							2009-12-29 07:49:13 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5e124bf913 
								
							 
						 
						
							
							
								
								this form of SetDebugLocation is about to go away, add some #includes that  
							
							 
							
							... 
							
							
							
							are about to not come in implicitly.
llvm-svn: 92228 
							
						 
						
							2009-12-28 21:44:41 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								2e06e8bbcc 
								
							 
						 
						
							
							
								
								Some small improvements to dead code elimination; helps a bit on  
							
							 
							
							... 
							
							
							
							LLVM-Code-Symbols test.
llvm-svn: 92152 
							
						 
						
							2009-12-25 05:29:40 +00:00  
						
					 
				
					
						
							
							
								 
								Jeffrey Yasskin
							
						 
						
							 
							
							
							
							
								
							
							
								1615d45daa 
								
							 
						 
						
							
							
								
								Un-namespace-qualify llvm_unreachable. It's a macro, so the qualification gave  
							
							 
							
							... 
							
							
							
							no extra safety anyway.
llvm-svn: 91207 
							
						 
						
							2009-12-12 05:05:38 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								b095e15af4 
								
							 
						 
						
							
							
								
								Fix for PR5714: make sure globals that will be modified aren't marked const.  
							
							 
							
							... 
							
							
							
							llvm-svn: 91156 
							
						 
						
							2009-12-11 21:23:03 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								b11118bd0b 
								
							 
						 
						
							
							
								
								Random string-related cleanups.  
							
							 
							
							... 
							
							
							
							llvm-svn: 91119 
							
						 
						
							2009-12-11 13:33:18 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								781161dc55 
								
							 
						 
						
							
							
								
								Make sure that explicitly instantiated functions get the right linkage.  
							
							 
							
							... 
							
							
							
							llvm-svn: 91069 
							
						 
						
							2009-12-10 22:25:34 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								4f678f3de1 
								
							 
						 
						
							
							
								
								Fix for PR5709: use the computed type of the declaration instead of the  
							
							 
							
							... 
							
							
							
							type of the builtin when generating the function declaration for a builtin
library call.
llvm-svn: 90936 
							
						 
						
							2009-12-09 03:05:59 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								f2c79b6b9c 
								
							 
						 
						
							
							
								
								Misc key function fixes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90831 
							
						 
						
							2009-12-08 03:56:49 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								31bc3ad275 
								
							 
						 
						
							
							
								
								A bunch more thunk fixes from misc testing.  
							
							 
							
							... 
							
							
							
							(Yes, I do intend to commit some tests for this.)
llvm-svn: 90818 
							
						 
						
							2009-12-07 23:56:34 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								8174f2c23c 
								
							 
						 
						
							
							
								
								Work-in-progess rewrite of thunks: move thunk generation outside of vtable  
							
							 
							
							... 
							
							
							
							generation, and make sure we generate thunks when the function is defined
rather than when the vtable is defined.
llvm-svn: 90722 
							
						 
						
							2009-12-06 22:01:30 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								3efc6e6f46 
								
							 
						 
						
							
							
								
								Add rudimentary support for member pointers to CGDebugInfo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90711 
							
						 
						
							2009-12-06 18:00:51 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								a30e1750cd 
								
							 
						 
						
							
							
								
								Don't emit explicit specializations of static member variable declarations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90624 
							
						 
						
							2009-12-04 23:50:01 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								b1d3f7c909 
								
							 
						 
						
							
							
								
								Have ASTRecordLayout keep track of the key function, in preparation of fixing a synthetic ctor/dtor bug.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90168 
							
						 
						
							2009-11-30 23:41:22 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								2c11cd156e 
								
							 
						 
						
							
							
								
								Don't try to generate common globals for C++ files, instead of depending on the FE to set NoCommon, and simplify CodeGenOptions initialization.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90119 
							
						 
						
							2009-11-30 08:40:34 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								84a7e347bf 
								
							 
						 
						
							
							
								
								Simplify and fix up the handling of implicit constructors, copy assignment  
							
							 
							
							... 
							
							
							
							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 
							
						 
						
							2009-11-26 07:40:08 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								8a5f75ed5d 
								
							 
						 
						
							
							
								
								Use new getLinkage() method to correctly compute whether a variable has  
							
							 
							
							... 
							
							
							
							internal linkage.  Fixes PR5433.
llvm-svn: 89931 
							
						 
						
							2009-11-26 02:52:12 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								0ade9715f2 
								
							 
						 
						
							
							
								
								Ignore constructor member templates in CodeGenModule::EmitTopLevelDecl.  
							
							 
							
							... 
							
							
							
							llvm-svn: 89737 
							
						 
						
							2009-11-24 05:16:24 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								e949e6cced 
								
							 
						 
						
							
							
								
								Mangler: Lift shouldMangleDeclName predicate out of CXXNameMangler::mangle.  
							
							 
							
							... 
							
							
							
							- Sometimes we have to mangle things we wouldn't normally (e.g., because they appear in a template expression).
 - This also tidies up the predicate to be more obvious what is getting mangled.
llvm-svn: 89555 
							
						 
						
							2009-11-21 09:14:52 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								e128dd18ab 
								
							 
						 
						
							
							
								
								IRgen: Switch the C++ mangler interfaces to take the SmallVector to write into,  
							
							 
							
							... 
							
							
							
							instead of requiring clients to make a raw_svector_ostream, which is just an
implementation detail.
llvm-svn: 89548 
							
						 
						
							2009-11-21 09:06:22 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								ef5d75afeb 
								
							 
						 
						
							
							
								
								Sink free mangle* methods into MangleContext.  
							
							 
							
							... 
							
							
							
							llvm-svn: 89547 
							
						 
						
							2009-11-21 09:06:10 +00:00  
						
					 
				
					
						
							
							
								 
								Alexis Hunt
							
						 
						
							 
							
							
							
							
								
							
							
								96d5c76498 
								
							 
						 
						
							
							
								
								Added rudimentary C++0x attribute support.  
							
							 
							
							... 
							
							
							
							The following attributes are currently supported in C++0x attribute
lists (and in GNU ones as well):
 - align() - semantics believed to be conformant to n3000, except for
   redeclarations and what entities it may apply to
 - final - semantics believed to be conformant to CWG issue 817's proposed
   wording, except for redeclarations
 - noreturn - semantics believed to be conformant to n3000, except for
   redeclarations
 - carries_dependency - currently ignored (this is an optimization hint)
llvm-svn: 89543 
							
						 
						
							2009-11-21 08:43:09 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								a7a1b7e780 
								
							 
						 
						
							
							
								
								Fixup key function calculations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 89412 
							
						 
						
							2009-11-20 00:02:19 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								1a139f8fb5 
								
							 
						 
						
							
							
								
								Improve instantiation control for rtti data and allow key functions to  
							
							 
							
							... 
							
							
							
							instantiate a class.  WIP.
llvm-svn: 89289 
							
						 
						
							2009-11-19 01:08:19 +00:00  
						
					 
				
					
						
							
							
								 
								John McCall
							
						 
						
							 
							
							
							
							
								
							
							
								1e9de059cc 
								
							 
						 
						
							
							
								
								Skip over shadow using decls during codegen.  
							
							 
							
							... 
							
							
							
							llvm-svn: 89079 
							
						 
						
							2009-11-17 09:33:40 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								0d82fa66a5 
								
							 
						 
						
							
							
								
								The ssp and sspreq function attributes should only be applied to function definitions, not declarations or calls.  
							
							 
							
							... 
							
							
							
							llvm-svn: 88915 
							
						 
						
							2009-11-16 16:56:03 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								49ddc5fb94 
								
							 
						 
						
							
							
								
								Make GetAddrOfConstantStringFromLiteral return a constant of the correct type.  
							
							 
							
							... 
							
							
							
							This doesn't have any visible effects at the moment because normally the
implicit cast code forces the type to the expected type.
llvm-svn: 88896 
							
						 
						
							2009-11-16 05:55:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chandler Carruth
							
						 
						
							 
							
							
							
							
								
							
							
								bc55fe26c6 
								
							 
						 
						
							
							
								
								Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library.  
							
							 
							
							... 
							
							
							
							This resolves the layering violation where CodeGen depended on Frontend.
llvm-svn: 86998 
							
						 
						
							2009-11-12 17:24:48 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								cc522d9ab3 
								
							 
						 
						
							
							
								
								Rearrange function to avoid recursive use-after-free.  
							
							 
							
							... 
							
							
							
							llvm-svn: 86516 
							
						 
						
							2009-11-09 05:07:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								15275e55ce 
								
							 
						 
						
							
							
								
								add missing #include  
							
							 
							
							... 
							
							
							
							llvm-svn: 86368 
							
						 
						
							2009-11-07 09:22:46 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								4127b8ef97 
								
							 
						 
						
							
							
								
								Added support for static variables which require  
							
							 
							
							... 
							
							
							
							initialization before main. Fixes pr5396.
llvm-svn: 86145 
							
						 
						
							2009-11-05 18:03:03 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								b7e5c847c4 
								
							 
						 
						
							
							
								
								Implement proper linkage for explicit instantiation declarations of  
							
							 
							
							... 
							
							
							
							inlined functions. For example, given
  template<typename T>
  class string {
    unsigned Len;
  public:
    unsigned size() const { return Len; }
  };
  extern template class string<char>;
we now give the instantiation of string<char>::size
available_externally linkage (if it is ever instantiated!), as
permitted by the C++0x standard.
      
llvm-svn: 85340 
							
						 
						
							2009-10-27 23:26:40 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								583dcafce4 
								
							 
						 
						
							
							
								
								Introduce FunctionDecl::isInlined() to tell whether a function should  
							
							 
							
							... 
							
							
							
							be inlined.
llvm-svn: 85307 
							
						 
						
							2009-10-27 21:11:48 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								35b5753e17 
								
							 
						 
						
							
							
								
								Rename FunctionDecl::isInline/setInline to  
							
							 
							
							... 
							
							
							
							FunctionDecl::isInlineSpecified/setInlineSpecified.
llvm-svn: 85305 
							
						 
						
							2009-10-27 21:01:01 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								29295bff61 
								
							 
						 
						
							
							
								
								Add a PrettyStackTraceDecl in CodeGenModule::EmitGlobalDefinition.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85237 
							
						 
						
							2009-10-27 14:32:27 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								e0105ad38b 
								
							 
						 
						
							
							
								
								assert -> llvm_unreachable  
							
							 
							
							... 
							
							
							
							llvm-svn: 85125 
							
						 
						
							2009-10-26 16:27:58 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								2c422dc9ca 
								
							 
						 
						
							
							
								
								Move clients to use IdentifierInfo::getNameStart() instead of getName()  
							
							 
							
							... 
							
							
							
							llvm-svn: 84436 
							
						 
						
							2009-10-18 20:26:12 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								819c3ddda8 
								
							 
						 
						
							
							
								
								Fix a thinko that John pointed out  
							
							 
							
							... 
							
							
							
							llvm-svn: 84142 
							
						 
						
							2009-10-14 21:36:34 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								3cc3cdeea9 
								
							 
						 
						
							
							
								
								Give explicit and implicit instantiations of static data members of  
							
							 
							
							... 
							
							
							
							class templates the proper linkage. 
Daniel, please look over the CodeGenModule bits.
llvm-svn: 84140 
							
						 
						
							2009-10-14 21:29:40 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								f33cfaf760 
								
							 
						 
						
							
							
								
								Copy metadata associated with CI  
							
							 
							
							... 
							
							
							
							llvm-svn: 84114 
							
						 
						
							2009-10-14 17:03:29 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4f8a2e22c0 
								
							 
						 
						
							
							
								
								fix some cfstring related issues:  
							
							 
							
							... 
							
							
							
							1) -fwritable-string does affect the non-utf16 version of cfstrings
   just not the utf16 ones.
2) utf16 strings should always be marked constant, as the __TEXT segment
   is readonly.
3) The name of the global doesn't matter, remove it from TargetInfo.
4) Trust the asmprinter to drop cstrings into the right section, like llvmgcc does now.
This fixes rdar://7115750
llvm-svn: 84077 
							
						 
						
							2009-10-14 05:55:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								734351d214 
								
							 
						 
						
							
							
								
								unbreak test/CodeGen/builtins.c, reverting Devang's change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 84075 
							
						 
						
							2009-10-14 05:49:21 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								3b3f0f6b65 
								
							 
						 
						
							
							
								
								Check void type before using replaceAllUsesWith().  
							
							 
							
							... 
							
							
							
							llvm-svn: 84050 
							
						 
						
							2009-10-13 22:59:11 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								9f73552852 
								
							 
						 
						
							
							
								
								Remove extra white space line.  
							
							 
							
							... 
							
							
							
							llvm-svn: 83979 
							
						 
						
							2009-10-13 17:02:38 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								7468489deb 
								
							 
						 
						
							
							
								
								Do not check use_empty() before invoking replaceAllUsesWith().  
							
							 
							
							... 
							
							
							
							Let replaceAllUsesWith() adjust VHs even though there are no uses.
llvm-svn: 83978 
							
						 
						
							2009-10-13 17:02:04 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								abd5b90e4c 
								
							 
						 
						
							
							
								
								Simplify pointer creation with the new Type::getInt*Ptr methods.  
							
							 
							
							... 
							
							
							
							llvm-svn: 83964 
							
						 
						
							2009-10-13 10:07:13 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								2bb27f53e0 
								
							 
						 
						
							
							
								
								Move the vtable builder to CGVtable.cpp, general cleanup.  
							
							 
							
							... 
							
							
							
							llvm-svn: 83798 
							
						 
						
							2009-10-11 22:13:54 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								a18ed9b113 
								
							 
						 
						
							
							
								
								If a global initializer has a non-trivial constructor or destructor, we never want to defer generation of it, even if it is declared static.  
							
							 
							
							... 
							
							
							
							With this change we're finally able to compile and run the (infamous)
#include <string>
#include <iostream>
int main(int argc, char **argv) {
  std::cout << "Hello, World" << std::endl;
}
$ clang hello.cpp -lstdc++ -o hello
$ ./hello 
Hello, World
llvm-svn: 83559 
							
						 
						
							2009-10-08 17:28:59 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								ff971e8bf4 
								
							 
						 
						
							
							
								
								Add a MangleContext and pass it to all mangle functions. It will be used for keeping state, such as identifiers assigned to anonymous structs as well as scope encoding.  
							
							 
							
							... 
							
							
							
							llvm-svn: 83442 
							
						 
						
							2009-10-07 01:06:45 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								916c006735 
								
							 
						 
						
							
							
								
								Fix thinko and simplify.  
							
							 
							
							... 
							
							
							
							llvm-svn: 83342 
							
						 
						
							2009-10-05 23:08:21 +00:00