summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix another type mismatch.David Chisnall2011-05-281-2/+2
| | | | llvm-svn: 132259
* Fix missing cast.David Chisnall2011-05-281-5/+7
| | | | llvm-svn: 132258
* Add support for ARM ldrexd/strexd builtinsBruno Cardoso Lopes2011-05-281-0/+35
| | | | llvm-svn: 132249
* Add unnamed_addr to internal globals which are only used as an operand to ↵Eli Friedman2011-05-271-0/+1
| | | | | | memcpy. (Spotted by looking at IR.) llvm-svn: 132226
* Match llvm-gcc's string literals alignment by forcing alignment on string ↵Eli Friedman2011-05-271-0/+1
| | | | | | literals to 1. This can significantly impact the size of the string data, and as far as I know, the alignment doesn't help performance. rdar://9078969 . llvm-svn: 132223
* Back out r132209; it's breaking nightly tests.Eli Friedman2011-05-272-81/+51
| | | | llvm-svn: 132219
* Implement a new, much improved version of the cleanup hack. We just needJohn McCall2011-05-272-51/+81
| | | | | | | | to be careful to emit landing pads that are always prepared to handle a cleanup path. This is correct mostly because of the fix to the LLVM inliner, r132200. llvm-svn: 132209
* Objective-C doesn't consider the use of incomplete types as methodDouglas Gregor2011-05-271-2/+23
| | | | | | | | | | | | | | parameter types to be ill-formed. However, it relies on the completeness of method parameter types when producing metadata, e.g., for a protocol, leading IR generating to crash in such cases. Since there's no real way to tighten down the semantics of Objective-C here without breaking existing code, do something safe but lame: suppress the generation of metadata when this happens. Fixes <rdar://problem/9123036>. llvm-svn: 132171
* Skip extra copy from aggregate where it isn't necessary; ↵Eli Friedman2011-05-262-4/+18
| | | | | | | | rdar://problem/8139919 . This shouldn't make much of a difference at -O3, but should substantially reduce the number of generated memcpy's at -O0. Originally r130717, but was backed out due to an ObjC regression. llvm-svn: 132102
* Remove bitcast to incorrect type.David Chisnall2011-05-251-1/+1
| | | | llvm-svn: 132077
* Update for llvm api change.Rafael Espindola2011-05-252-1/+3
| | | | llvm-svn: 132034
* 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
OpenPOWER on IntegriCloud