aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2010-03-23Avoid producing implicit methods when we have a explicit template instantiationRafael Espindola
declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99311 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23Code gen for compound assignment of complexFariborz Jahanian
types using property syntax to access setter/getters. (also radar 7351147). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99307 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23More work on thunks - don't assert if there's a variable with the same name ↵Anders Carlsson
as the thunk already. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99303 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23Patch to implement code gen. use of compound assignent onFariborz Jahanian
properties of complex type. Radar 7351147. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99299 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23More thunks scaffolding.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99294 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23More work on thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99287 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23Move ThunkInfo as well.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99280 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23Move ReturnAdjustment and ThisAdjustment out into CGVtable.hAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99279 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23Use the canonical destructor, which fixes the self-host build. Thanks to Eli ↵Anders Carlsson
for noticing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99260 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23Baby steps towards making thunks be emitted from the new vtable layout code.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99254 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23Some renames.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99253 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23Always emit associated thunks when emitting the function itself. Remove ↵Anders Carlsson
getVtableAddressPoint, it's not used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99252 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23Rename MaybeEmitVtable to EmitVTableRelatedData in preparation for making it ↵Anders Carlsson
emit thunks as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99251 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23Rename CGVtableInfo to CodeGenVTables in preparation of adding another ↵Anders Carlsson
VTableInfo class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99250 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22Comment the reasons for the strange little dance we do with the main file ↵Douglas Gregor
name for debug information git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99215 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22More work on thunks; almost there now.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99199 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22Add less than operators to ThisAdjustment, ReturnAdjustment and ThunkInfo. ↵Anders Carlsson
Sort the thunks before dumping them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99184 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22Improve dumping of thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99181 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22We want to add all thunks, not just 'this' adjustment thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99177 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-21AddThunk should take a const reference.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99140 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-21Fix PR6648 by not creating a temporary with the type of aRafael Espindola
CXXExprWithTemporaries. Not emitting the expression as an aggregate might be the right thing to do, but is orthogonal. Emitting it as an scalar expression will still try to create a temporary for the incomplete type of the CXXExprWithTemporaries and fail. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99134 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Fixed synthesizing properties declared in properties (GNU runtime).David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99077 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20IRgen: Wrap atomic intrinsics with memory barriers, to ensure we honor the ↵Daniel Dunbar
semantics. - This should be conservatively correct, we eventually should have target hooks for platforms that are less strict. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99050 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20C++: Add support for -fno-use-cxa-atexit.Daniel Dunbar
- So much typing, so little gain... Also, rename the __cxx_global_initialization function just to match llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99039 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20IRgen: Inline GenerateCXXGlobal[VarDecl]InitFunc into sole caller.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99038 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Change CodeGenModule to rely on the Module's symbol table instead ofJohn McCall
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99012 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Try to improve computation of the main file name for debugDouglas Gregor
information, to address recent gdb failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98959 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18For debug information, get the main file name from the source managerDouglas Gregor
rather than from the -main-file-name flag, since the source manager has proper path information. Fixes <rdar://problem/7769538>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98898 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Replace some SmallVectors with arrays.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98833 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18When dumping vtables, also dump the thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98799 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17More work on thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98765 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Correctly mangle dependent TypenameType.Rafael Espindola
Fixes PR6625. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98707 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13Fixed copy-and-paste error causing categories to contain the protocols ↵David Chisnall
declared on the class, not the protocols declared on the category. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98455 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13Give explicit template instantiations weak ODR linkage. FormerDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98441 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13Use raw_ostream instead of sprintf.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98438 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13Use SmallString instead of SmallVectorKovarththanan Rajaratnam
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98436 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13Re-revert the explicit template instantiation linkage patch. I am beginning ↵Douglas Gregor
to look incompetent git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98425 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13Reinstate patch to turn explicit template instantiations into weak symbolsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98424 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12Allow users to set CPPFLAGS and CXXFLAGS on the make command line.Jeffrey Yasskin
Tested: make CPPFLAGS=-m64 CXXFLAGS=-m64 -j8 && (cd tools/clang;make test) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98399 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12Fix a rare corner case bug which exposed a serious block API generationFariborz Jahanian
when initialized variable is a byref block variable and is referenced recursively in the initializer (you guessed it, it is block implementation of fibonacci number). Fix, on the other hand is trvial, by generating the API for byref variable before API for its initializer. We will have this test added to our internal test suite as a clang-style test is not possible due to very convoluted IR sequence. Fixes radar 7745514. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98393 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12If main file name is empty then use "<unknown>".Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98385 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12More this adjustment simplification.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98333 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12Revert the linkage change for explicit template instantiations; something is ↵Douglas Gregor
amiss git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98332 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12Remove OldOffset.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98331 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12Remove debug output.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98330 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12Begin simplifying handling of thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98329 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12Give explicit template instantiations weak linkage (but don't deferDouglas Gregor
them). Fixes PR6578. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98328 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Keep track of Record context to ensure that record elements are properly ↵Devang Patel
nested in debug info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98283 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11fix PR6433, crash on va_arg of typedef.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98264 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Use the new vtable layout code for computing virtual base offset offsets.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98257 91177308-0d34-0410-b5e6-96231b3b80d8