Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use CharUnits for alignment of UTF16 string in GetAddrOfConstantCFString(). | Ken Dyck | 2010-01-26 | 1 | -2/+2 |
| | | | | llvm-svn: 94564 | ||||
* | Use the right definition when emitting a global variable. Fixes PR5564. | Anders Carlsson | 2010-01-26 | 1 | -3/+5 |
| | | | | llvm-svn: 94555 | ||||
* | Introduce CodeGenModule::GetTargetTypeStoreSize() to calculate the store size | Ken Dyck | 2010-01-26 | 1 | -0/+6 |
| | | | | | | of LLVM types in character units. llvm-svn: 94542 | ||||
* | If a global variable has an initializer with side effects, it can never be ↵ | Anders Carlsson | 2010-01-26 | 1 | -3/+2 |
| | | | | | | deferred (even if it's in an anonymous namespace). llvm-svn: 94525 | ||||
* | Created __builtin___NSStringMakeConstantString() builtin, which generates ↵ | David Chisnall | 2010-01-23 | 1 | -0/+9 |
| | | | | | | constant Objective-C strings. llvm-svn: 94274 | ||||
* | Generalize target weirdness handling having proper layering in mind: | Anton Korobeynikov | 2010-01-10 | 1 | -2/+6 |
| | | | | | | | | | 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 | ||||
* | revert r92749, which is just dead code. | Chris Lattner | 2010-01-09 | 1 | -10/+0 |
| | | | | llvm-svn: 93074 | ||||
* | Fix for PR5967: Make const-marking for LLVM globals correct for cases requiring | Eli Friedman | 2010-01-08 | 1 | -5/+5 |
| | | | | | | | 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 the | Douglas Gregor | 2010-01-06 | 1 | -24/+21 |
| | | | | | | | | 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 Gregor | 2010-01-06 | 1 | -0/+54 |
| | | | | | | virtual function has a body inlined in the class llvm-svn: 92855 | ||||
* | Improve key-function computation for templates. In particular: | Douglas Gregor | 2010-01-05 | 1 | -1/+2 |
| | | | | | | | | | | | | | | | | - All classes can have a key function; templates don't change that. non-template classes when computing the key function. - We always mark all of the virtual member functions of class template instantiations. - The vtable for an instantiation of a class template has weak linkage. We could probably use available_externally linkage for vtables of classes instantiated by explicit instantiation declarations (extern templates), but GCC doesn't do this and I'm not 100% that the ABI permits it. llvm-svn: 92753 | ||||
* | Add code to skip the emission of available externally functions at -O0. WIP. | Mike Stump | 2010-01-05 | 1 | -0/+10 |
| | | | | llvm-svn: 92749 | ||||
* | strength reduce this call away. | Chris Lattner | 2009-12-29 | 1 | -1/+2 |
| | | | | llvm-svn: 92253 | ||||
* | this form of SetDebugLocation is about to go away, add some #includes that | Chris Lattner | 2009-12-28 | 1 | -3/+2 |
| | | | | | | are about to not come in implicitly. llvm-svn: 92228 | ||||
* | Some small improvements to dead code elimination; helps a bit on | Eli Friedman | 2009-12-25 | 1 | -1/+1 |
| | | | | | | LLVM-Code-Symbols test. llvm-svn: 92152 | ||||
* | Un-namespace-qualify llvm_unreachable. It's a macro, so the qualification gave | Jeffrey Yasskin | 2009-12-12 | 1 | -1/+1 |
| | | | | | | no extra safety anyway. llvm-svn: 91207 | ||||
* | Fix for PR5714: make sure globals that will be modified aren't marked const. | Eli Friedman | 2009-12-11 | 1 | -5/+13 |
| | | | | llvm-svn: 91156 | ||||
* | Random string-related cleanups. | Benjamin Kramer | 2009-12-11 | 1 | -3/+2 |
| | | | | llvm-svn: 91119 | ||||
* | Make sure that explicitly instantiated functions get the right linkage. | Anders Carlsson | 2009-12-10 | 1 | -3/+12 |
| | | | | llvm-svn: 91069 | ||||
* | Fix for PR5709: use the computed type of the declaration instead of the | Eli Friedman | 2009-12-09 | 1 | -6/+1 |
| | | | | | | | type of the builtin when generating the function declaration for a builtin library call. llvm-svn: 90936 | ||||
* | Misc key function fixes. | Eli Friedman | 2009-12-08 | 1 | -0/+10 |
| | | | | llvm-svn: 90831 | ||||
* | A bunch more thunk fixes from misc testing. | Eli Friedman | 2009-12-07 | 1 | -1/+7 |
| | | | | | | (Yes, I do intend to commit some tests for this.) llvm-svn: 90818 | ||||
* | Work-in-progess rewrite of thunks: move thunk generation outside of vtable | Eli Friedman | 2009-12-06 | 1 | -1/+6 |
| | | | | | | | generation, and make sure we generate thunks when the function is defined rather than when the vtable is defined. llvm-svn: 90722 | ||||
* | Add rudimentary support for member pointers to CGDebugInfo. | Anders Carlsson | 2009-12-06 | 1 | -1/+1 |
| | | | | llvm-svn: 90711 | ||||
* | Don't emit explicit specializations of static member variable declarations. | Anders Carlsson | 2009-12-04 | 1 | -5/+11 |
| | | | | llvm-svn: 90624 | ||||
* | Have ASTRecordLayout keep track of the key function, in preparation of ↵ | Anders Carlsson | 2009-11-30 | 1 | -12/+4 |
| | | | | | | fixing a synthetic ctor/dtor bug. llvm-svn: 90168 | ||||
* | Don't try to generate common globals for C++ files, instead of depending on ↵ | Daniel Dunbar | 2009-11-30 | 1 | -1/+1 |
| | | | | | | the FE to set NoCommon, and simplify CodeGenOptions initialization. llvm-svn: 90119 | ||||
* | Simplify and fix up the handling of implicit constructors, copy assignment | Eli Friedman | 2009-11-26 | 1 | -130/+7 |
| | | | | | | | | 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 | ||||
* | Use new getLinkage() method to correctly compute whether a variable has | Eli Friedman | 2009-11-26 | 1 | -4/+3 |
| | | | | | | internal linkage. Fixes PR5433. llvm-svn: 89931 | ||||
* | Ignore constructor member templates in CodeGenModule::EmitTopLevelDecl. | Anders Carlsson | 2009-11-24 | 1 | -0/+4 |
| | | | | llvm-svn: 89737 | ||||
* | Mangler: Lift shouldMangleDeclName predicate out of CXXNameMangler::mangle. | Daniel Dunbar | 2009-11-21 | 1 | -7/+2 |
| | | | | | | | | - 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 | ||||
* | IRgen: Switch the C++ mangler interfaces to take the SmallVector to write into, | Daniel Dunbar | 2009-11-21 | 1 | -2/+1 |
| | | | | | | | instead of requiring clients to make a raw_svector_ostream, which is just an implementation detail. llvm-svn: 89548 | ||||
* | Sink free mangle* methods into MangleContext. | Daniel Dunbar | 2009-11-21 | 1 | -1/+1 |
| | | | | llvm-svn: 89547 | ||||
* | Added rudimentary C++0x attribute support. | Alexis Hunt | 2009-11-21 | 1 | -2/+6 |
| | | | | | | | | | | | | | | 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 | ||||
* | Fixup key function calculations. | Mike Stump | 2009-11-20 | 1 | -1/+3 |
| | | | | llvm-svn: 89412 | ||||
* | Improve instantiation control for rtti data and allow key functions to | Mike Stump | 2009-11-19 | 1 | -0/+10 |
| | | | | | | instantiate a class. WIP. llvm-svn: 89289 | ||||
* | Skip over shadow using decls during codegen. | John McCall | 2009-11-17 | 1 | -0/+1 |
| | | | | llvm-svn: 89079 | ||||
* | The ssp and sspreq function attributes should only be applied to function ↵ | Anders Carlsson | 2009-11-16 | 1 | -0/+5 |
| | | | | | | definitions, not declarations or calls. llvm-svn: 88915 | ||||
* | Make GetAddrOfConstantStringFromLiteral return a constant of the correct type. | Eli Friedman | 2009-11-16 | 1 | -1/+8 |
| | | | | | | | 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 | ||||
* | Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library. | Chandler Carruth | 2009-11-12 | 1 | -5/+5 |
| | | | | | | This resolves the layering violation where CodeGen depended on Frontend. llvm-svn: 86998 | ||||
* | Rearrange function to avoid recursive use-after-free. | Eli Friedman | 2009-11-09 | 1 | -17/+18 |
| | | | | llvm-svn: 86516 | ||||
* | add missing #include | Chris Lattner | 2009-11-07 | 1 | -0/+1 |
| | | | | llvm-svn: 86368 | ||||
* | Added support for static variables which require | Fariborz Jahanian | 2009-11-05 | 1 | -4/+9 |
| | | | | | | initialization before main. Fixes pr5396. llvm-svn: 86145 | ||||
* | Implement proper linkage for explicit instantiation declarations of | Douglas Gregor | 2009-10-27 | 1 | -14/+14 |
| | | | | | | | | | | | | | | | | | | | | | 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 | ||||
* | Introduce FunctionDecl::isInlined() to tell whether a function should | Douglas Gregor | 2009-10-27 | 1 | -2/+2 |
| | | | | | | be inlined. llvm-svn: 85307 | ||||
* | Rename FunctionDecl::isInline/setInline to | Douglas Gregor | 2009-10-27 | 1 | -2/+2 |
| | | | | | | FunctionDecl::isInlineSpecified/setInlineSpecified. llvm-svn: 85305 | ||||
* | Add a PrettyStackTraceDecl in CodeGenModule::EmitGlobalDefinition. | Anders Carlsson | 2009-10-27 | 1 | -0/+4 |
| | | | | llvm-svn: 85237 | ||||
* | assert -> llvm_unreachable | Douglas Gregor | 2009-10-26 | 1 | -1/+1 |
| | | | | llvm-svn: 85125 | ||||
* | Move clients to use IdentifierInfo::getNameStart() instead of getName() | Daniel Dunbar | 2009-10-18 | 1 | -4/+4 |
| | | | | llvm-svn: 84436 | ||||
* | Fix a thinko that John pointed out | Douglas Gregor | 2009-10-14 | 1 | -3/+1 |
| | | | | llvm-svn: 84142 |