aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-09-18Handle mangling of TemplateSpecializationType.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82189 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18Fixed a bug in generation of the new write-barriers when Fariborz Jahanian
array syntax is used to derefernce and assign to ivar pointee. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82183 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Ignore extern "C++" { } when mangling.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82146 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Revert r82123 for now.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82125 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Treat an unqualified RecordType as a RecordDecl when substituting.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82123 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Substitution for prefixes.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82122 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Substitute unscoped template names.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82119 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17IRgen/ObjC: Correctly construct the function info for variadic message sends.Daniel Dunbar
This fixes some bad -O0 codegen and the unnecessary clearing of al on entry to objc_msgSend for most message sends. <rdar://problem/7102824> [irgen] unnecessary xorb on calls to objc_msgSend on x86_64 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82118 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17IRgen/ObjC: Make the target method decl available to GenerateMessageSendSuper.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82117 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Add mangleSubstitution/addSubstitution variants that take a NamedDecl.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82116 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17When mangling function template specialization, mangle the type encoding of ↵Anders Carlsson
the original function template. Also, port mangle.cpp and function-template-specialization.cpp over to using FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82114 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Add new functions to the mangler for the <unscoped-name> and ↵Anders Carlsson
<unscoped-template-name> productions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82113 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Add basic substitution to the C++ mangler. It currently only looks at types.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82102 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-16patch for generating objc'2 objc_assign_ivar. WIP.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82090 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-16Starting patch to generate more specific API for objc'sFariborz Jahanian
GC. Currently, new API will be generated under clang-cc's -fobjc-newgc-api flag which will eventually become the default. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82082 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-16Removed a superfluous check before settingFariborz Jahanian
a flag (objc GC). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82052 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-16x86-64 ABI: If a type is a C++ record with either a non-trivial destructor ↵Anders Carlsson
or a non-trivial copy constructor, it should be passed in a pointer. Daniel, plz review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82050 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15Be sure to use the correct version instead of inventing the wrong one.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81924 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15Code generation of Conditional operators that are lvalues (but that aren't ↵Anders Carlsson
bitfields). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81867 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15Handle reinterpret_cast between integral types and pointer types.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81837 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15Codegen support for nullptr from C++0x.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81835 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14ARM/[A]APCS: Ignore empty records passed as arguments.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81798 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14Small fix to stop CGObjCGNU emitting symbols that break some versions of gas.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81778 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14Remove an unnecessary FunctionDecl parameter to the synthesizing functions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81759 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14Fix subtle bug in generating LLVM function declarations for builtin functions.Daniel Dunbar
The decl wasn't being passed down, which meant that function attributes were not being set correctly. This is particularly important for ARM, since it wants to override the calling convention. Instead we would emit the builtin with the wrong calling convention, and instcombine would come along and merrily shred all the calls to it. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81756 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14ARM/APCS: Don't treat structs w/ floating point types as "integer like".Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81748 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14If a function call returns a reference, don't bind it to a temporary.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81743 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14Implement CodeGenFunction::EmitCXXExprWithTemporariesLValue.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81738 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14Some minor clang/ARM/AAPCS tweaks.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81737 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14Add TargetInfo::getABI(), and base ARM APCS vs AAPCS choice on that.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81735 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14Handle delete where the class has a virtual destructor.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81733 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13Fix another byref bug. This should hopefully get QuickLookPlugins building ↵Anders Carlsson
successfully. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81681 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13ARM/APCS: Only "integer like" aggregates should be returned in r0 (followingDaniel Dunbar
gcc's interpretation of APCS' somewhat loose specification). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81671 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13Rework the way we determine whether an externally visible symbol isDouglas Gregor
generated for an inline function definition, taking into account C99 and GNU inline/extern inline semantics. This solution is simpler, cleaner, and fixes PR4536. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81670 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Don't use the PredefinedExpr string as the global variable name, these don'tDaniel Dunbar
make very nice symbols, just use the function name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81653 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12whitespace fixChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81644 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Update CMake files.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81631 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Add FIXME for alignments that won't be honored.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81620 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12We can't have ctors in the vtable (right Doug?) :-)Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81619 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Handle CK_DerivedToBase when emitting lvalue casts.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81614 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12When necessary, null check the base value in GetAddressCXXOfBaseClass.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81611 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Handle derived-to-base conversion in CGExprScalar::EmitCast, if the cast ↵Anders Carlsson
kind is CK_DerivedToBase. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81610 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Whoops, add CGCXXClass.cppAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81607 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Rename AddressCXXOfBaseClass to GetAddressCXXOfBaseClass. Add a ↵Anders Carlsson
NullCheckValue argument (currently unused). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81606 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Add CGCXXClass.cpp. and move CodeGenFunction::AddressCXXOfBaseClass there.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81604 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Add support for __block variables with alignment greater than __alignof(void *).Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81602 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12For __block variables, cache the LLVM types as well as which LLVM field ↵Anders Carlsson
where the variable is stored. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81599 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Stub out room for ARM APCS ABI implementation (and AAPCS_VFP, although you can'tDaniel Dunbar
hit this via command line options yet). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81595 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Formatting fixes.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81594 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Change CodeGenModule::ConstructTypeAttributes to return the calling conventionDaniel Dunbar
to use, and allow the ABI implementation to override the calling convention. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81593 91177308-0d34-0410-b5e6-96231b3b80d8