aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-11-10Minor optimization to skip null check in generated code where it isn'tEli Friedman
necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86741 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Fix for PR5454: make sure to use the right block as the predecessor in theEli Friedman
generated PHI node for the null check of a new operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86738 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10This patch implements Code gen. for destruction ofFariborz Jahanian
global array of objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86701 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Only generate a VTT for classes that need a VTT.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86699 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Add vtable caching to prevent multiple vtables for the same class fromMike Stump
being generated. Add the most derived vtable pointer to the VTT. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86671 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Be sure to clear out VCall when we clear out VCalls.Mike Stump
Start implementing VTTs. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86650 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Finish off mangling for the VTT.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86647 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Add mangling for the construction vtable.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86643 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Fix clang's use of DenseMap iterators after r86636 fixed their constness.Jeffrey Yasskin
Patch by Victor Zverovich! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86638 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Enable the use of the new llvm objectsize intrinsic.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86607 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Make sure that Type::getAs<ArrayType>() (or Type::getAs<subclass ofDouglas Gregor
ArrayType>()) does not instantiate. Update all callers that used this unsafe feature to use the appropriate ASTContext::getAs*ArrayType method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86596 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Rearrange function to avoid recursive use-after-free.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86516 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Explicitly note that pre-inc/dec lvalues are not supported yet, so that itEli Friedman
doesn't crash. (Such expressions are valid in C++, but not in C.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86513 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Rename areAllFields32Or64BitBasicType to canExpandIndirectArgument to closer ↵Daniel Dunbar
match what it is semantically used for. Also, fix a major bug where fields from a C++ struct might be dropped -- the expand action doesn't handle them correctly yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86502 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Unify the codepaths used to verify base and member initializers for explicitlyEli Friedman
and implicitly defined constructors. This has a number of benefits: 1. Less code. 2. Explicit and implicit constructors get the same diagnostics. 3. The AST explicitly contains constructor calls from implicit default constructors. This allows handing some cases that previously weren't handled correctly in IRGen without any additional code. Specifically, implicit default constructors containing calls to constructors with default arguments are now handled correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86500 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-08Add clarifying parens.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86457 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Handle member expressions where the member declaration is actually a static ↵Anders Carlsson
variable. Fixes PR5392. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86414 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07More LValue related code cleanup.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86413 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07More cleanup, the code is much easier to follow now.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86412 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Reduce nesting, no functionality change.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86411 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07We only need to call SetObjCNonGC for local variables. No functionality change.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86410 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Change EmitPointerToDataMemberLValue to take a FieldDecl. No intended ↵Anders Carlsson
functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86407 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07add missing #includeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86368 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Always mangle functions with special names. Fixes PR5420.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86350 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07When looking up and adding substitutions to the substitution table, make ↵Anders Carlsson
sure to always use the canonical declaration. With tihs change, FileCheck compiles and links but crashes during startup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86339 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Revert r86315 and add Type::FixedWidthInt to the FIXME cases.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86320 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Do not assert if debug info for certain type is not generated.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86315 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Do not emit linkage name for global variables. It confuses gdb, because it ↵Devang Patel
picks up AT_MIPS_linkage_name and ignores AT_name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86308 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Refine the non-virtual this adjustment. Optimize out virtual thisMike Stump
adjustments of zero. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86300 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Prevent a code gen. crash on empty unions - pr5408.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86287 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Simplify the debug info code, handle lvalue references and template ↵Anders Carlsson
specializations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86277 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06This patch fixes code gen. part of pr5333 (ConversionFariborz Jahanian
using elipsis conversion). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86276 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Handle QualifiedNameType and SubstTemplateTypeParmType types in ↵Anders Carlsson
CGDebugInfo::CreateTypeNode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86274 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Don't assert when trying to generate debug info for vector types. This needs ↵Anders Carlsson
to be fixed eventually... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86268 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06update comment, pointed out by GaborChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86263 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06indirectbr seems to work! Rip out the old code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86256 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Instead of returning a null DIType for unhandled types, assert.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86254 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06If a member variable of reference type is bound to a temporary in its member ↵Anders Carlsson
initializer it needs to be destroyed at the end of the constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86230 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06If a member initializer create temporaries we need to destroy them. Fixes ↵Anders Carlsson
PR5077. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86225 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06More cleanup.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86224 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Cleanup ctor/dtor emission.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86222 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Handle ParenExprs in mangleExpression.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86218 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Refine the vcall for a function that is defined in a virtual baseMike Stump
class that is overridden in a base that isn't morally virtual. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86217 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05Enable debug info for global variables at -O1+Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86156 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05Added support for static variables which requireFariborz Jahanian
initialization before main. Fixes pr5396. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86145 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05References can't be zero; omit zero check for return value adjustmentsMike Stump
in covariant thunks that return references. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86121 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05Refine covariant return value adjustments for thunks when nullMike Stump
pointers are returned. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86120 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-04Add code gen for pointer-to-member function inFariborz Jahanian
ctor's initializer. Fixes pr5178. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86040 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-04This patch extends CleanupScope to support destructionFariborz Jahanian
of array objects on block exit. Patch is by Anders Calrsson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86032 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-04Store the unresolved class type in MemberPointerType's Class field,Douglas Gregor
from Peter Collingbourne! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86030 91177308-0d34-0410-b5e6-96231b3b80d8