aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-11-23Teach CodeGenFunction::EmitDecl to ignore Using and UsingShadow decls.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89633 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-22x86_64, PR5582: Layout bases for C++ records.Daniel Dunbar
- Ideally we would have an single iteration interface for this, but this works for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89632 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-22Use EmitStoreOfScalar when copying the scalar to the space allocated by 'new'.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89613 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Support emitting aggregate class initializers. Fixes PR5581.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89569 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21This patch implements objective-c's 'SEL' type as a built-inFariborz Jahanian
type and fixes a long-standing code gen. crash reported in at least two PRs and a radar. (radar 7405040 and pr5025). There are couple of remaining issues that I would like for Ted. and Doug to look at: Ted, please look at failure in Analysis/MissingDealloc.m. I have temporarily added an expected-warning to make the test pass. This tests has a declaration of 'SEL' type which may not co-exist with the new changes. Doug, please look at a FIXME in PCHWriter.cpp/PCHReader.cpp. I think the changes which I have ifdef'ed out are correct. They need be considered for in a few Indexer/PCH test cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89561 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Mangler: Sketch mangling for TemplateArgument::Declaration kind.Daniel Dunbar
- Several important FIXMEs related to whether arguments are expressions or external names, and the mangling of extern "C" names (c.f., PR5522). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89556 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Mangler: Lift shouldMangleDeclName predicate out of CXXNameMangler::mangle.Daniel Dunbar
- 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89555 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Mangler: Strengthen invariants, MangleContext::mangleName should only be ↵Daniel Dunbar
called on var or function decls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89554 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Mangler: Inline a bunch of functions into their sole caller, not that I ↵Daniel Dunbar
don't love typing for typings sake, but... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89553 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Remove dead variable.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89551 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Mangler: Split isStdNamespace for when the caller already has a NamespaceDecl.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89550 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21IRgen: Eliminate CXXNameMangler::mangleCXX{C,D}tor.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89549 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21IRgen: Switch the C++ mangler interfaces to take the SmallVector to write into,Daniel Dunbar
instead of requiring clients to make a raw_svector_ostream, which is just an implementation detail. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89548 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Sink free mangle* methods into MangleContext.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89547 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Delete trailing space.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89545 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Added rudimentary C++0x attribute support.Sean Hunt
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) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89543 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Checkpoint current work. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89513 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Fix lifetime of conditional temporaries. Patch by Victor Zverovich!Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89467 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Fixed crash when using undefined protocols (GNU runtime).David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89457 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Fix a couple minor memory leaks.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89450 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Implement throw d, where d is a class type that requires copyMike Stump
construction. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89442 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Handle throw d, where d is a class type but only has a trivial copyMike Stump
constructor. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89438 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Add suport for throw;. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89424 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Fix rtti generation for throws. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89420 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Simplify rtti building code a little. Prep for reuse for throw rttiMike Stump
generation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89416 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Fixup key function calculations.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89412 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Draw a brighter line between "unresolved" expressions, where we have done theJohn McCall
appropriate lookup and simply can't resolve the referrent yet, and "dependent scope" expressions, where we can't do the lookup yet because the entity we need to look into is a dependent type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89402 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Fixup address point computations. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89386 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Refine vtable, rtti and rtti name instantiation so that they followMike Stump
the key function. All the code is wired up, but won't work yet, as I had to turn off key function calculation as it doesn't work yet. Also, we refine visibility of the vtable, rtti and rtti name to match the class, as well as as arrange for all the symbols to be internal for anonymous namespace entities. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89309 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19This doesn't work yet.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89307 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Improve instantiation control for rtti data and allow key functions toMike Stump
instantiate a class. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89289 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Refine linkage on thunks. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89287 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Reflow to fit 80-col.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89222 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Trim whitespace.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89219 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Minor cleanup to member pointer handling.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89201 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Clean up EmitPointerToDataMemberBinaryExpr a bit.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89197 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Set up vtable visibility appropriately.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89193 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Propagate hidden to the _ZTS symbols appropriately. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89191 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Add an assertion to catch bad calls to EmitCallArgs.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89190 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Be sure to set visibility for ZTI symbols for classes from the class.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89186 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Make _ZTI symbols hidden. This speeds up the dynamic linker.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89185 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Missing piece of r89173.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89174 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Refactor emitting call to delete operator into common function EmitDeleteCall.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89173 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Fix one last gotcha with typeid.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89172 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Cleanup.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89166 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add rtti support for arrays, functiond without prototypes, vectors andMike Stump
enums. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89165 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add rtti info for function prototypes and refactor. This allowsMike Stump
pointer to member functions to work. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89161 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17This patch finalizes implementatin of weak_importFariborz Jahanian
objective-c2 classes (radar 6815425). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89157 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add rtti support for pointer to data members.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89155 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17More cases for weak_import objective-c2 classes.Fariborz Jahanian
(still radar 6815425). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89152 91177308-0d34-0410-b5e6-96231b3b80d8