summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* 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
* In C++, allow us to emit a global as 'constant' even if it has classDouglas Gregor2011-05-071-7/+10
| | | | | | | type, so long as it is known to have a constant initializer and the class type is a POD class. Fixes <rdar://problem/9306265>. llvm-svn: 131060
* Revert r130717, which caused a regression (<rdar://problem/9402621>).Douglas Gregor2011-05-072-18/+4
| | | | llvm-svn: 131057
* Fix false positive warning about uninitialized variable.Cameron Esfahani2011-05-061-1/+1
| | | | llvm-svn: 131019
* Modify some deleted function methods to better reflect reality:Alexis Hunt2011-05-062-3/+3
| | | | | | | | | | | | | | | | | | | | - New isDefined() function checks for deletedness - isThisDeclarationADefinition checks for deletedness - New doesThisDeclarationHaveABody() does what isThisDeclarationADefinition() used to do - The IsDeleted bit is not propagated across redeclarations - isDeleted() now checks the canoncial declaration - New isDeletedAsWritten() does what it says on the tin. - isUserProvided() now correct (thanks Richard!) This fixes the bug that we weren't catching void foo() = delete; void foo() {} as being a redefinition. llvm-svn: 131013
* Don't emit nsw flags for vector operations; there's basically no benefit, ↵Eli Friedman2011-05-061-7/+4
| | | | | | and a lot of downside (like PR9850, which is about clang's xmmintrin.h making an unexpected transformation on an expression involving _mm_add_epi32). llvm-svn: 131000
* Add an implementation of thunks for varargs methods. The implementation is ↵Eli Friedman2011-05-063-46/+153
| | | | | | a bit messy, but it is correct as long as the method in question doesn't use indirect gotos. A couple of possible alternative implementations are outlined in FIXME's in this patch. rdar://problem/8077308 . llvm-svn: 130993
* Reset the emitted initializers.Axel Naumann2011-05-061-0/+2
| | | | | | This enables incremental codegen, where the initializer array can be removed from the module, such that only new initializers will be emitted and run. llvm-svn: 130986
* type of last arg of objc_assign_ivar is ptrdiff_t. Fariborz Jahanian2011-05-051-1/+5
| | | | | | // rdar://9362887 llvm-svn: 130956
* Implement support for C++0x alias templates.Richard Smith2011-05-052-0/+2
| | | | llvm-svn: 130953
* Do not drop uint128 on the floor.Devang Patel2011-05-051-0/+2
| | | | llvm-svn: 130929
* Preserve the full name of the file, so that '-c -o foo.pic.o' producesNick Lewycky2011-05-052-8/+8
| | | | | | foo.pic.gcno instead of foo.gcno. llvm-svn: 130899
* Pack ivar offsets together.Bill Wendling2011-05-041-1/+1
| | | | | | | | | | Ivar offsets for synthesized ivars are wrong, which could end up with a large number of dirty pages because of ivar fixups at runtime. When we pack all of the synthesized ivars into the same section, it limits the number of dirty pages created. Place them in the "__DATA,__objc_ivar" section. <rdar://problem/9374905> llvm-svn: 130870
* Record where the GCOV data files should be placed.Nick Lewycky2011-05-042-0/+24
| | | | llvm-svn: 130866
* Simplification noticed by Chris.Bill Wendling2011-05-041-3/+2
| | | | llvm-svn: 130864
* Convert the non-temporal store builtins to LLVM-native IR.Bill Wendling2011-05-041-0/+17
| | | | llvm-svn: 130830
* Ensure that destructors are properly inovked when an exception leavesAlexis Hunt2011-05-031-1/+27
| | | | | | | | | | the body of a delegating constructor call. This means that the delegating constructor implementation should be complete and correct, though there are some rough edges (diagnostic quality with the cycle detection and using a deleted destructor). llvm-svn: 130803
* Finish off rules for z-length bitfields in ms_structFariborz Jahanian2011-05-033-8/+4
| | | | | | structs. // rdar://8823265 llvm-svn: 130783
* Fix delegating constructors stylistic issues.Alexis Hunt2011-05-032-12/+21
| | | | | | Material bugfixes to come this afternoon. llvm-svn: 130782
* Function with internal linkage name do not have mangled name.Devang Patel2011-05-021-2/+1
| | | | llvm-svn: 130736
* Do not try to get mangled name of block helpers. Apply a stopgap measure to ↵Devang Patel2011-05-021-1/+3
| | | | | | fix SingleSource/UnitTests/block-copied-in-cxxobj compile time crash. llvm-svn: 130734
* Emit debug info for __destroy_helper_block_ and __copy_helper_block.Devang Patel2011-05-021-0/+8
| | | | llvm-svn: 130719
* Skip extra copy from aggregate where it isn't necessary; ↵Eli Friedman2011-05-022-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. llvm-svn: 130717
* Switch CallArgList from an std::pair to a new CallArg struct (which will ↵Eli Friedman2011-05-023-14/+21
| | | | | | eventually gain more members). Working towards modifying call emission to avoid unnecessary copies. llvm-svn: 130700
* Simplify code a bit by using CallArgList::add. No intended functionality ↵Eli Friedman2011-05-028-77/+55
| | | | | | change. llvm-svn: 130699
* More rule enforcement of zero bitfields for ms_struct.Fariborz Jahanian2011-05-023-4/+8
| | | | llvm-svn: 130696
* Remove unused variable spotted by GCC.Nick Lewycky2011-05-021-2/+1
| | | | | | | | | Devang, can we remove this call entirely? If I try that, "make check" passes but the call has a side-effect of ensuring that the block's context exists in the debug info. getContextDescriptor() is used in a void context for that side- effect elsewhere in this file. Please take a look! llvm-svn: 130679
* Remove dead variable, flagged by gcc's -Wunused-but-set-variable.Nick Lewycky2011-05-021-2/+0
| | | | llvm-svn: 130674
* Remove dead variable flagged by gcc's -Wunused-but-set-variable. NoNick Lewycky2011-05-021-1/+0
| | | | | | functionality change. llvm-svn: 130673
* Remove a dead variable flagged by gcc's -Wunused-but-set-variable. NoNick Lewycky2011-05-021-2/+0
| | | | | | functionality change. llvm-svn: 130672
* Fully implement delegating constructors!Alexis Hunt2011-05-013-4/+39
| | | | | | | | | | As far as I know, this implementation is complete but might be missing a few optimizations. Exceptions and virtual bases are handled correctly. Because I'm an optimist, the web page has appropriately been updated. If I'm wrong, feel free to downgrade its support categories. llvm-svn: 130642
* Implement -fno-dwarf2-cfi-asm.Rafael Espindola2011-04-301-0/+2
| | | | llvm-svn: 130616
* Tie constructor defintion with its declaration using AT_specification.Devang Patel2011-04-291-4/+9
| | | | llvm-svn: 130561
* Add -Oz option and use it to set the inline threshold to 25.Bob Wilson2011-04-291-1/+3
| | | | | | Radar 9333566. Patch by Chad Rosier! llvm-svn: 130554
* removes a meaningless comment.Fariborz Jahanian2011-04-291-3/+1
| | | | llvm-svn: 130550
* block variables on lhs need be ir-gen'ed after theFariborz Jahanian2011-04-291-1/+18
| | | | | | | | rhs when its 'forwarding' pointer may be modified in rhs evaluation as result of call to Block_copy. // rdar://9309454 llvm-svn: 130545
* Don't crash if the AST doesn't have a sensible ObjC id type.David Chisnall2011-04-291-4/+6
| | | | llvm-svn: 130500
OpenPOWER on IntegriCloud