summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Implement a new type node, UnaryTransformType, designed to represent aAlexis Hunt2011-05-241-0/+4
| | | | | | | | type that turns one type into another. This is used as the basis to implement __underlying_type properly - with TypeSourceInfo and proper behavior in the face of templates. llvm-svn: 132017
* Fix bug introduced with r131930.David Chisnall2011-05-231-1/+2
| | | | llvm-svn: 131935
* Don't omit retain / release / autorelease message sends in hybrid GC mode.David Chisnall2011-05-231-2/+2
| | | | llvm-svn: 131932
* Fix some problems where functions must be bitcast but we're expecting a ↵David Chisnall2011-05-233-17/+20
| | | | | | | | llvm::Function of the right type. PR9994. llvm-svn: 131930
* make the x86-32 backend specify a byval alignment, even when theChris Lattner2011-05-221-1/+1
| | | | | | | code generator will do it. With this patch, clang compiles the example in PR9794 to not have an alloca temporary. llvm-svn: 131881
* Fix x86-64 byval passing to specify the alignment even when the codeChris Lattner2011-05-221-7/+4
| | | | | | | generator will give it something sufficient. This is important because the mid-level optimizer doesn't know what alignment is required otherwise. llvm-svn: 131879
* Provide the runtime with information about the GC compile options (GNU runtimes)David Chisnall2011-05-221-4/+18
| | | | llvm-svn: 131877
* fix 80 col violationChris Lattner2011-05-221-1/+2
| | | | llvm-svn: 131870
* adjust to mainline api change.Chris Lattner2011-05-211-11/+9
| | | | llvm-svn: 131815
* switch clang off StandardPasses.h onto PassManagerBuilder.hChris Lattner2011-05-211-36/+30
| | | | llvm-svn: 131808
* Fix the clang part of PR7952: rewrite the specialization of isa<> in DeclBase,Eli Friedman2011-05-211-1/+1
| | | | | | and stop abusing the multi-level dereference isa<> used to allow. llvm-svn: 131804
* Introduce Type::isSignedIntegerOrEnumerationType() andDouglas Gregor2011-05-206-21/+22
| | | | | | | | | | | | | Type::isUnsignedIntegerOrEnumerationType(), which are like Type::isSignedIntegerType() and Type::isUnsignedIntegerType() but also consider the underlying type of a C++0x scoped enumeration type. Audited all callers to the existing functions, switching those that need to also handle scoped enumeration types (e.g., those that deal with constant values) over to the new functions. Fixes PR9923 / <rdar://problem/9447851>. llvm-svn: 131735
* Fix location of setter/getter synthesized for a property.Devang Patel2011-05-192-8/+10
| | | | llvm-svn: 131701
* Make __builtin_shufflevector and -ftrapv work correctly together. PR9945.Eli Friedman2011-05-191-11/+5
| | | | llvm-svn: 131611
* Add ARMTargetCodeGenInfo::initDwarfEHRegSizeTable() defining 16 32bit regs.Roman Divacky2011-05-181-0/+16
| | | | llvm-svn: 131558
* Conditionalize the use of 4.4 or 4.2 format based on the target.Bill Wendling2011-05-171-4/+6
| | | | | | <rdar://problem/8107317> llvm-svn: 131504
* Code cleanup of my last patch.Fariborz Jahanian2011-05-171-13/+8
| | | | llvm-svn: 131499
* Patch to fix IR-gen crash generating structure ABI which implementsFariborz Jahanian2011-05-174-16/+35
| | | | | | | user specified string class via -fconstant-string-class option. pr9914. llvm-svn: 131496
* For calls returning first-class aggregates, store by element instead of ↵Eli Friedman2011-05-171-2/+25
| | | | | | creating aggregate stores in common cases. This is more friendly to fast-isel. llvm-svn: 131490
* Revert r131434, my commit disabling the complete-object constructorJohn McCall2011-05-171-2/+1
| | | | | | | optimization for abstract classes; there was a misunderstanding, and it turns out that there are no kexts which rely on this. llvm-svn: 131489
* Revert r131447, see if it fixes the buildbot.Argyrios Kyrtzidis2011-05-171-2/+5
| | | | llvm-svn: 131450
* Inside isEmptyRecord function, for CXXRecordDecl just check the isEmpty bit.Argyrios Kyrtzidis2011-05-171-5/+2
| | | | llvm-svn: 131447
* Set up appropriate context for member function.Devang Patel2011-05-171-0/+3
| | | | | | Radar 9440721 llvm-svn: 131441
* Fix crash on C++ code when compiling with -finstrument-functions.Ted Kremenek2011-05-161-1/+1
| | | | llvm-svn: 131435
* Emit complete-object constructors for abstract classes in kext mode forJohn McCall2011-05-161-1/+2
| | | | | | reasons that honestly really, really need to be looked into. llvm-svn: 131434
* Fix another regression from the "skip vtable pointer initialization"Anders Carlsson2011-05-163-2/+4
| | | | | | | optimization. Make sure to require a vtable when trying to get the address of a VTT, otherwise we would never end up emitting the VTT. llvm-svn: 131400
* Don't actually emit calls to the reserved global placement new and deleteJohn McCall2011-05-161-28/+18
| | | | | | | | | operators; their semantics are guaranteed by the language. If someone wants to argue that freestanding compiles shouldn't recognize this, I might be convinceable. llvm-svn: 131395
* Re-enable the fix for PR9181 now that all the edge cases are handled.Anders Carlsson2011-05-151-18/+70
| | | | llvm-svn: 131385
* The array-size operand to a new-expression is not necessarily a size_t.John McCall2011-05-151-140/+209
| | | | | | | It can be larger, it can be smaller, it can be signed, whatever. Handle all the crazy cases with grace and spirit. llvm-svn: 131378
* Make CGF.getContext() inlinable, because it's trivial, and optimizeJohn McCall2011-05-152-8/+36
| | | | | | hasAggregateLLVMType. llvm-svn: 131375
* More killing of std::vector.John McCall2011-05-152-40/+41
| | | | llvm-svn: 131374
* Use arrays and SmallVectors instead of std::vectors when building functionJohn McCall2011-05-155-193/+148
| | | | | | | types. Also, cache a translation of 'void' in CGM and provide a ptrdiff_t alias. No functionality change. llvm-svn: 131373
* Disable the optimization until the bug noticed by Sean Hunt has been fixed.Anders Carlsson2011-05-151-0/+4
| | | | llvm-svn: 131372
* When emitting the destructor for a class with a vtable, if we can determineAnders Carlsson2011-05-142-13/+35
| | | | | | | | | | that the destructor body is trivial and that all member variables also have either trivial destructors or trivial destructor bodies, we don't need to initialize the vtable pointers since no virtual member functions will be called on the destructor. Fixes PR9181. llvm-svn: 131368
* Only perform the null-initialization of an aggregate result of a messageJohn McCall2011-05-141-16/+50
| | | | | | | | | send if the receiver is null. Normally it's not worthwhile to check this, but avoiding the null-initialization is nice, and this also avoids nasty problems where the null-initialization is visible within the call because we use an aliased result buffer. rdar://problem/9402992 llvm-svn: 131366
* Objective-C vtables are not taking the world by storm; call themJohn McCall2011-05-141-121/+139
| | | | | | | | | out as "v-table" message sends and stop calling normal messages "legacy" message sends. Also, fix some comments to reveal the true state of affairs. llvm-svn: 131335
* Reorganize this method to avoid multiple calls for computing CGFunctionInfoJohn McCall2011-05-131-77/+109
| | | | | | and to decrease the amount of effort in appending strings. llvm-svn: 131323
* SimplifyJoerg Sonnenberger2011-05-131-1/+1
| | | | llvm-svn: 131321
* Bug 8765: Honor assembler labels for builtins. Ensure that the label isJoerg Sonnenberger2011-05-131-4/+14
| | | | | | | mangled to avoid doing it twice for platforms that use prefixes like Darwin. llvm-svn: 131311
* Remove the 'unaligned load' builtins now that they're no longer used in the ↵Bill Wendling2011-05-131-13/+0
| | | | | | *mmintrin.h files. llvm-svn: 131300
* Produce UTF-8 strings with -fconstant-string-classFariborz Jahanian2011-05-131-21/+15
| | | | | | -fno-constant-cfstrings. Patch by Jonathan Schleifer. llvm-svn: 131298
* When determining whether we can make a declaration into a globalDouglas Gregor2011-05-132-19/+4
| | | | | | | constant, also consider whether it's a class type that has any mutable fields. If so, it can't be a global constant. llvm-svn: 131276
* Doug convinced me that DW_AT_APPLE_objc_complete_type is more appropriate name.Devang Patel2011-05-121-1/+1
| | | | | | s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g llvm-svn: 131245
* Do not add AT_APPLE_objc_class_extension attribute if @implementation is not ↵Devang Patel2011-05-121-2/+1
| | | | | | seen. llvm-svn: 131242
* Use DW_AT_APPLE_objc_class_extension attribute to identify interfaces that ↵Devang Patel2011-05-121-1/+6
| | | | | | | | represent class extension. Radar 9423077. llvm-svn: 131239
* LLVM doesn't always optimize away the four loads from this:Bill Wendling2011-05-121-0/+2
| | | | | | | | | | (__m128){ p[0], p[1], p[2], p[3] } which produces really bad code. This could be done in instcombine, but it's probably better to do it in the front-end instead. <rdar://problem/9424836> llvm-svn: 131237
* Make this code more resilient against catch variables which need cleanups.John McCall2011-05-121-3/+4
| | | | llvm-svn: 131215
* Rename "hasTrivialConstructor" to "hasTrivialDefaultConstructor" andAlexis Hunt2011-05-093-3/+3
| | | | | | | modify the semantics slightly to accomodate default constructors (I hope). llvm-svn: 131087
* Move code to emit the callee of an CXXOperatorCallExpr out into a separate ↵Anders Carlsson2011-05-083-12/+137
| | | | | | function in CGClass.cpp llvm-svn: 131075
* Don't emit complete constructors for abstract classes. Also, don't emitAnders Carlsson2011-05-081-2/+9
| | | | | | | complete destructors for abstract classes unless the destructor is virtual and thus needs to be in the vtable. llvm-svn: 131068
OpenPOWER on IntegriCloud