aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2010-02-14Build fix.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96140 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Baby steps towards teaching FinalOverriders about virtual bases.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96139 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Don't try to layout construction vtables for now.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96138 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Improve support for non-virtual 'this' pointer adjustments. With this, it ↵Anders Carlsson
should be possible to use the new vtable layout code for all class hierarchies that do not involve virtual bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96137 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Add basic support for simple non-virtual 'this' pointer adjustments.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96136 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Add support for very simple non-virtual this adjustments in the ↵Anders Carlsson
FinalOverriders class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96133 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Cleanup; remove some duplicated code.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96131 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Assert if we encounter this adjustments.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96125 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Start laying out secondary vtables.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96123 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Merge base offsets and dump them.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96121 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Don't make return adjustments for pure virtual member functions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96120 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Handle virtual bases in return adjustment types.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96119 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Handle virtual bases in ComputeBaseOffset.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96117 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13More work on covariant return types. We now handle non-virtual adjustments fine.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96114 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Emit the 'alignstack' LLVM function attribute when we encounter a functionCharles Davis
marked 'force_align_arg_pointer'. Almost there; now all I need to do is finish up the backend. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96100 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Fix think-o, attributes can't come *within* the type of the variable.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96099 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Silence unused variable warning in a build without assertions.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96098 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Remove dead {include, semicolon, variable}.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96087 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Use a different name for this iterator. MSVC and clang++ didn't like "I" in ↵Benjamin Kramer
the same scope twice. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96086 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13More work on return type adjustments in the new vtable builder.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96070 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Switch the standard DeclarationName comparator to be a tri-valued comparator.John McCall
Use that while fixing a nasty misuse of qsort in vtable codegen which, somehow, has not actually caused a crash. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96062 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13if-0 out printf.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96052 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12Fix a refacto that broke the clang-on-clang build.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95994 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12Start stubbing out more of the covariant thunk support.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95990 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12Keep track of whether a final overrider needs a return type adjustment.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95985 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12Move overrider out into a separate struct.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95984 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12Keep track of the address points for all primary bases, and add the ability ↵Anders Carlsson
to dump multiple address points for a single offset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95970 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12Fix a bug causing an assertion when a covariant return type differed fromJohn McCall
an overriden type only by reduced qualification. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95968 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12More work on vtable layout. We can now layout vtables with primary bases.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95965 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12When dumping vtables, dump whether a virtual member function is pure or not.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95963 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12More work on the final overriders.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95954 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12Do not ignore anonymous records.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95953 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12Cache new compile unit.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95952 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11Stub out the final overriders class.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95922 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11Use getAs instead of cast/dyn_cast on types. (I'm sure Doug will appreciate ↵Anders Carlsson
this). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95911 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11Move two functions to the top. No functionality change.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95908 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11More vtable layout dumper improvements. Handle destructors, dump the ↵Anders Carlsson
complete function type of the member functions (using PredefinedExpr::ComputeName. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95887 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11Keep track of, and dump, vtable address points.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95874 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11Check in the beginnings of my new vtable layout builder idea.Anders Carlsson
Right now, it's off by default but can be tested by passing -fdump-vtable-layouts to clang -cc1. This option will cause all vtables that will normally be emitted as part of codegen to also be dumped using the new layout code. I've also added a very simple new vtable layout test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95865 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11Remove use of 'std::string' from Attr objects, using instead a byteTed Kremenek
array allocated using the allocator in ASTContext. This addresses these strings getting leaked when using a BumpPtrAllocator (in ASTContext). Fixes: <rdar://problem/7636765> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95853 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11Eliminate a bunch of unnecessary ASTContexts from members functions ofDouglas Gregor
Decl subclasses. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95841 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11Eliminate the ASTContext parameter from RecordDecl::getDefinition()Douglas Gregor
and CXXRecordDecl::getDefinition(); it's totally unnecessary. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95836 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10Generate the objc_read_weak API when callingFariborz Jahanian
a __weak block. Fixes radar 7628591. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95822 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10hopefully silence a warning on the clang-i386-darwin9 tester.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95812 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10Switch to using -fsjlj-exceptions instead of hard-coding it. Notably, this fixesDaniel Dunbar
calls to the UnwindResumeOrRethrow function for C++/Obj-C exception handling, for Darwin ARM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95787 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10Refactor code that generates debug info for variables that has BlocksAttr.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95786 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10Use current location as the location of compiler generated arguments, e.g. ↵Devang Patel
self, _cmd etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95743 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-09StringRefize two random methods, remove a dead variable and a weird ↵Benjamin Kramer
constructor call. This maybe fixes some of the errors GCC 4.5 gives on this code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95684 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-09Fix virtual bases' debug info.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95678 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-09Mark implicit "this" argument as an artificial argument.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95673 91177308-0d34-0410-b5e6-96231b3b80d8