aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
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
2010-03-11Correctly mangle address of member in template arguments. Fixes PR6460Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98254 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Rename getVirtualBaseOffsetIndex to getVirtualBaseOffsetOffset to reflect ↵Anders Carlsson
what it actually does. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98248 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11When possible, use the vbase offset offsets from the most derived class ↵Anders Carlsson
directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98247 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Keep track of, and dump, vbase offset offsets.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98245 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Fix tests.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98242 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Run the new vtable builder for construction vtables as well now. Note that ↵Anders Carlsson
we still don't use the data it generates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98239 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Support PPC-32 DWARF EH intrinisics. Thanks to rdivacky for his assistance.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98206 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10set alignment on static locals properly, patch by Arnaud de Grandmaison!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98204 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Fix calculation of whether a member function needs a thunk in construction ↵Anders Carlsson
vtables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98191 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10We were mistakenly marking morally virtual bases as being uninteresting. Fix ↵Anders Carlsson
this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98180 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Ignore non-interesting bases when emitting construction vtables.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98177 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Don't accidentally mark some functions in construction vtables as unused. ↵Anders Carlsson
Also land the test for a previous checkin, now that it's correct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98139 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Create a new InjectedClassNameType to represent bare-word references to the John McCall
injected class name of a class template or class template partial specialization. This is a non-canonical type; the canonical type is still a template specialization type. This becomes the TypeForDecl of the pattern declaration, which cleans up some amount of code (and complicates some other parts, but whatever). Fixes PR6326 and probably a few others, primarily by re-establishing a few invariants about TypeLoc sizes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98134 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10When building construction vtables, we need to check if a primary virtual ↵Anders Carlsson
base is actually a primary virtual base in the layout class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98131 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Improve vcall offset handling in construction vtables. With this we layout ↵Anders Carlsson
the construction vtables from the ABI examples correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98127 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Delay codegen of vtables when handling implicit instantiations.Rafael Espindola
This fixes PR6474. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98123 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Use SmallString instead of alloca.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98112 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09Fix file reference for derived and composite types. Now, dwarf writer uses ↵Devang Patel
strict verifier that ignores debug info for such types if their file info is unknown. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98096 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09More then one anonymous aggregates on one line creates chaos when MDNode ↵Devang Patel
uniquness is combined with RAUW operation. Right solution is to avoid using RAUW. This fixes PR 6554. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98083 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09Use getLast() instead of getBasename().Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98072 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09Start using DIFile. Corresponding llvm patch is r98020.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98021 91177308-0d34-0410-b5e6-96231b3b80d8