aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2011-05-13Produce UTF-8 strings with -fconstant-string-classFariborz Jahanian
-fno-constant-cfstrings. Patch by Jonathan Schleifer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131298 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-13When determining whether we can make a declaration into a globalDouglas Gregor
constant, also consider whether it's a class type that has any mutable fields. If so, it can't be a global constant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131276 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-12Doug convinced me that DW_AT_APPLE_objc_complete_type is more appropriate name.Devang Patel
s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131245 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-12Do not add AT_APPLE_objc_class_extension attribute if @implementation is not ↵Devang Patel
seen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131242 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-12Use DW_AT_APPLE_objc_class_extension attribute to identify interfaces that ↵Devang Patel
represent class extension. Radar 9423077. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131239 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-12LLVM doesn't always optimize away the four loads from this:Bill Wendling
(__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> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131237 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-12Make this code more resilient against catch variables which need cleanups.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131215 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-09Rename "hasTrivialConstructor" to "hasTrivialDefaultConstructor" andSean Hunt
modify the semantics slightly to accomodate default constructors (I hope). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131087 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-08Move code to emit the callee of an CXXOperatorCallExpr out into a separate ↵Anders Carlsson
function in CGClass.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131075 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-08Don't emit complete constructors for abstract classes. Also, don't emitAnders Carlsson
complete destructors for abstract classes unless the destructor is virtual and thus needs to be in the vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131068 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-07In C++, allow us to emit a global as 'constant' even if it has classDouglas Gregor
type, so long as it is known to have a constant initializer and the class type is a POD class. Fixes <rdar://problem/9306265>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131060 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-07Revert r130717, which caused a regression (<rdar://problem/9402621>).Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131057 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-06Fix false positive warning about uninitialized variable.Cameron Esfahani
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131019 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-06Modify some deleted function methods to better reflect reality:Sean Hunt
- 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131013 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-06Don't emit nsw flags for vector operations; there's basically no benefit, ↵Eli Friedman
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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131000 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-06Add an implementation of thunks for varargs methods. The implementation is ↵Eli Friedman
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 . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130993 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-06Reset the emitted initializers.Axel Naumann
This enables incremental codegen, where the initializer array can be removed from the module, such that only new initializers will be emitted and run. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130986 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-05type of last arg of objc_assign_ivar is ptrdiff_t. Fariborz Jahanian
// rdar://9362887 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130956 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-05Implement support for C++0x alias templates.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130953 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-05Do not drop uint128 on the floor.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130929 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-05Preserve the full name of the file, so that '-c -o foo.pic.o' producesNick Lewycky
foo.pic.gcno instead of foo.gcno. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130899 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-04Pack ivar offsets together.Bill Wendling
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> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130870 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-04Record where the GCOV data files should be placed.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130866 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-04Simplification noticed by Chris.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130864 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-04Convert the non-temporal store builtins to LLVM-native IR.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130830 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-03Ensure that destructors are properly inovked when an exception leavesSean Hunt
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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130803 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-03Finish off rules for z-length bitfields in ms_structFariborz Jahanian
structs. // rdar://8823265 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130783 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-03Fix delegating constructors stylistic issues.Sean Hunt
Material bugfixes to come this afternoon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130782 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Function with internal linkage name do not have mangled name.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130736 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Do not try to get mangled name of block helpers. Apply a stopgap measure to ↵Devang Patel
fix SingleSource/UnitTests/block-copied-in-cxxobj compile time crash. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130734 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Emit debug info for __destroy_helper_block_ and __copy_helper_block.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130719 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Skip extra copy from aggregate where it isn't necessary; ↵Eli Friedman
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130717 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Switch CallArgList from an std::pair to a new CallArg struct (which will ↵Eli Friedman
eventually gain more members). Working towards modifying call emission to avoid unnecessary copies. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130700 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Simplify code a bit by using CallArgList::add. No intended functionality ↵Eli Friedman
change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130699 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02More rule enforcement of zero bitfields for ms_struct.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130696 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Remove unused variable spotted by GCC.Nick Lewycky
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! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130679 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Remove dead variable, flagged by gcc's -Wunused-but-set-variable.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130674 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Remove dead variable flagged by gcc's -Wunused-but-set-variable. NoNick Lewycky
functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130673 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Remove a dead variable flagged by gcc's -Wunused-but-set-variable. NoNick Lewycky
functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130672 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-01Fully implement delegating constructors!Sean Hunt
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130642 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-30Implement -fno-dwarf2-cfi-asm.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130616 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29Tie constructor defintion with its declaration using AT_specification.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130561 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29Add -Oz option and use it to set the inline threshold to 25.Bob Wilson
Radar 9333566. Patch by Chad Rosier! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130554 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29removes a meaningless comment.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130550 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29block variables on lhs need be ir-gen'ed after theFariborz Jahanian
rhs when its 'forwarding' pointer may be modified in rhs evaluation as result of call to Block_copy. // rdar://9309454 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130545 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29Don't crash if the AST doesn't have a sensible ObjC id type.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130500 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Fixes debug info generation problem for ms_struct structs.Fariborz Jahanian
// rdar://8823265 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130458 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Cut down unnecessary zero'ing when value-initializing arrays of C++ objects.Argyrios Kyrtzidis
-C++ objects with user-declared constructor don't need zero'ing. -We can zero-initialize arrays of C++ objects in "bulk" now, in which case don't zero-initialize each object again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130453 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28ms_struct patch for initialization and field access irgen.Fariborz Jahanian
// rdar://8823265 - wip. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130451 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Raise ARM byval minimum size from 32 to 64, addressing a performanceStuart Hastings
regression in mason. rdar://problem/7662569 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130444 91177308-0d34-0410-b5e6-96231b3b80d8