summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Zap unused UnaryOperator::OffsetOf.Eli Friedman2010-08-131-7/+0
| | | | llvm-svn: 110996
* Make use of __func__ in a block actually refer toFariborz Jahanian2010-08-131-6/+17
| | | | | | block's helper function. Fixes radar 7860965. llvm-svn: 110988
* Just disable the hidden-visibility optimization for now by hiding it behindJohn McCall2010-08-123-5/+16
| | | | | | | | a -cc1 option. The Darwin linker complains about mixed visibility when linking gcc-built objects with clang-built objects, and the optimization isn't really that valuable. Platforms with less ornery linkers can feel free to enable this. llvm-svn: 110979
* Implement RTTI generation for Objective C types. Fixes PR7864.John McCall2010-08-121-16/+73
| | | | llvm-svn: 110900
* Emit debug info for static const class member.Devang Patel2010-08-121-2/+25
| | | | llvm-svn: 110885
* Revise r110163: don't mark weak functions nounwind, because the optimizerJohn McCall2010-08-111-0/+4
| | | | | | treats that as a contract to be fulfilled by any replacements. llvm-svn: 110864
* Emit a stop point for delegate constructor call. This gives user a chance to ↵Devang Patel2010-08-111-0/+3
| | | | | | step into constructor body. llvm-svn: 110853
* When re-raising an exception after a cleanup, we need to call ↵John McCall2010-08-111-1/+1
| | | | | | | | | | | | | | | | | | _Unwind_Resume_or_Rethrow instead of _Unwind_Resume. With SJLJ exceptions, this is spelled "_Unwind_SjLj_Resume_or_Rethrow", not "_Unwind_SjLj_Resume", which has significantly different semantics. We should actually never be generating a call to _Unwind_SjLj_Resume directly; even if we were generating true cleanups (which we aren't because of the horrible hack), we should be calling __cxa_end_cleanup() on ARM. I haven't implemented this because there's little point as long as the HH is present. I believe this fixes <rdar://problem/8281377>. llvm-svn: 110851
* Work in progress for PR7864. Someone more familiar with ObjC++ needs to fillEli Friedman2010-08-111-3/+24
| | | | | | in the code after the "FIXME: Needs to be written". llvm-svn: 110849
* IRGen support for functions returning objc objectFariborz Jahanian2010-08-111-1/+1
| | | | | | types. Fixes PR7865. llvm-svn: 110832
* Fix a bug in @finally emission in both the fragile and non-fragile EH schemesJohn McCall2010-08-112-5/+26
| | | | | | | | | where we weren't accounting for the possibility that a @finally block might have internal cleanups and therefore might write to the cleanup destination slot. Fixes <rdar://problem/8293901>. llvm-svn: 110760
* SimplifyDevang Patel2010-08-101-2/+1
| | | | llvm-svn: 110716
* Slightly revised handling of mult-alt constraints, to avoid an assert, until ↵John Thompson2010-08-101-1/+9
| | | | | | we have the full fix. llvm-svn: 110706
* When initializing a static local, pop the guard-abort EH cleanup afterJohn McCall2010-08-101-0/+4
| | | | | | the variable is fully initialized. llvm-svn: 110704
* Do not use DIGlobalVariable to emit debugging information for enums.Devang Patel2010-08-101-0/+4
| | | | llvm-svn: 110697
* Simplify code and add comments, in code that generate debug info for ↵Devang Patel2010-08-105-18/+15
| | | | | | constant integer globals, based on Chris's feedback. llvm-svn: 110694
* Even if a constant's evaluated value is used, emit debug info for the ↵Devang Patel2010-08-105-1/+32
| | | | | | constant variable. llvm-svn: 110660
* Support ObjC implementation decls for PCH.Argyrios Kyrtzidis2010-08-091-4/+20
| | | | | | Strictly speaking, implementations don't go in headers but there's no law against it. llvm-svn: 110567
* Thread local variables aren't considered common linkage.Eric Christopher2010-08-081-1/+2
| | | | llvm-svn: 110530
* Allow reference binding of a reference of Objective-C object type toDouglas Gregor2010-08-072-2/+13
| | | | | | | | an lvalue of another, compatible Objective-C object type (e.g., a subclass). Introduce a new initialization sequence step kind to describe this binding, along with a new cast kind. Fixes PR7741. llvm-svn: 110513
* Inline a special case of EmitAggregateCopy into EmitNullInitializationJohn McCall2010-08-071-27/+41
| | | | | | | | | to avoid the awesome-but-wrong-in-this-case assertion in the canon EAC. Fixes PR7834. Also fix a subtle address-space bug in the memset path. llvm-svn: 110511
* Store inheritance paths after CastExprs instead of inside them.John McCall2010-08-078-32/+46
| | | | | | | | | | | | | | | This takes some trickery since CastExpr has subclasses (and indeed, is abstract). Also, smoosh the CastKind into the bitfield from Expr. Drops two words of storage from Expr in the common case of expressions which don't need inheritance paths. Avoids a separate allocation and another word of overhead in cases needing inheritance paths. Also has the advantage of not leaking memory, since destructors for AST nodes are never run. llvm-svn: 110507
* Correct -ftrapv to trap on errors, instead of calling theChris Lattner2010-08-071-43/+10
| | | | | | | | | | | | | | | | __overflow_handler entrypoint that David Chisnall made up. Calling __overflow_handler is not part of the contract of -ftrapv provided by GCC, and should never have been checked in in the first place. According to: http://permalink.gmane.org/gmane.comp.compilers.clang.devel/8699 David is using this for some of arbitrary precision integer stuff or something, which is not an appropriate thing to implement on this. llvm-svn: 110490
* Initialize variable to work around warning; unfortunately, there isn't anyEli Friedman2010-08-061-3/+3
| | | | | | way to tell gcc "really, values outside the enum aren't valid". llvm-svn: 110450
* Finishing up block variable layout API by supporting Fariborz Jahanian2010-08-061-8/+10
| | | | | | | union type variables and their nesting inside other aggregate types. llvm-svn: 110448
* vdup_lane was missingNate Begeman2010-08-062-2/+11
| | | | | | <rdar://problem/8278732> llvm-svn: 110420
* Attempt to fix uninitialized value warning reported on cfe-commits.Eli Friedman2010-08-061-2/+1
| | | | llvm-svn: 110418
* Don't crash when mangling empty anonymous unions. We never actually *need*John McCall2010-08-051-1/+5
| | | | | | | these, but it's convenient to mangle them when deferring them (in the 99.99% case where it's not an anonymous union, of course). llvm-svn: 110381
* Add support for block imported struct variable layout info.Fariborz Jahanian2010-08-051-2/+10
| | | | | | (objc gc and blocks in NeXt runtime). llvm-svn: 110377
* It turns out that linkers (at least, the Darwin linker) don't necessarilyJohn McCall2010-08-052-16/+19
| | | | | | | | | | | do the right thing with mixed-visibility symbols, so disable the visibility optimization where that's possible, i.e. with template classes (since it's possible that an arbitrary template might be subject to an explicit instantiation elsewhere). 447.dealII actually does this. I've put the code under an option that's currently not hooked up to anything. llvm-svn: 110374
* Argument evaluation order is not guaranteed. Split these out to force an order.John McCall2010-08-051-6/+7
| | | | llvm-svn: 110354
* Fix a major bug with -ftrapv and ++/--. Patch by David Keaton!John McCall2010-08-051-1/+2
| | | | llvm-svn: 110347
* For now skip over aggregate non-byref block variables.Fariborz Jahanian2010-08-051-1/+4
| | | | | | (objc gc specific). llvm-svn: 110340
* Trying to unbreak buildbot.Fariborz Jahanian2010-08-051-1/+2
| | | | llvm-svn: 110339
* Add IRGen support for non-constant OffsetOfExpr.Eli Friedman2010-08-051-14/+90
| | | | llvm-svn: 110326
* Implement #pragma GCC visibility.Eli Friedman2010-08-051-2/+4
| | | | llvm-svn: 110315
* Clean up of my last patch.Fariborz Jahanian2010-08-051-13/+16
| | | | llvm-svn: 110290
* Block variable layout bitmap API generation.Fariborz Jahanian2010-08-041-80/+136
| | | | llvm-svn: 110287
* Extend the visibility-hidden optimization to linkonce_odr thunks forJohn McCall2010-08-041-1/+51
| | | | | | | | | functions with in-line definitions, since such thunks will be emitted at any use of the function. Completes the feature work for rdar://problem/7523229. llvm-svn: 110285
* More objc block variable layout info. work.Fariborz Jahanian2010-08-043-9/+26
| | | | llvm-svn: 110239
* Some early work for providing block layout info. Fariborz Jahanian2010-08-045-40/+57
| | | | | | for objective-c/c++ blocks (NeXt runtime). llvm-svn: 110213
* Emit standard-library RTTI with external linkage, not weak_odr.John McCall2010-08-044-45/+90
| | | | | | | | | | Apply hidden visibility to most RTTI; libstdc++ does not rely on exact pointer equality for the type info (just the type info names). Apply the same optimization to RTTI that we do to vtables. Fixes PR5962. llvm-svn: 110192
* Extend the hidden-visibility vtables optimization to template classes thatJohn McCall2010-08-041-10/+26
| | | | | | haven't been explicitly instantiated. llvm-svn: 110189
* Some more correctness fixes and code-size optimizations for fragile-ABIJohn McCall2010-08-041-80/+93
| | | | | | | | | | | ObjC exceptions: - don't enter a try for the catch blocks unless there's a finally - put the setjmp buffer in the locals set for liveness reasons - dump the sync object into an alloca in the locals set for liveness reasons Some of this can go away if the backend starts to properly calculate liveness in the presence of setjmp (which would also be a *much* stabler solution). llvm-svn: 110188
* Do a very simple pass over every function we emit to infer whether we canJohn McCall2010-08-031-0/+18
| | | | | | | mark it nounwind based on whether it contains any non-nounwind calls. <rdar://problem/8087431> llvm-svn: 110163
* Add support for VFP status & control operations for ARM.Nate Begeman2010-08-031-3/+19
| | | | llvm-svn: 110153
* Emit weak vtables of non-template classes with hidden visibility.John McCall2010-08-031-0/+16
| | | | llvm-svn: 110107
* Further adjustments to -Wglobal-constructors; works for references and directJohn McCall2010-08-021-2/+2
| | | | | | initializations now. llvm-svn: 110063
* Fix fragile-ABI ObjC exceptions in the presence of optimization withJohn McCall2010-07-311-3/+165
| | | | | | | | | the magic of inline assembly. Essentially we use read and write hazards on the set of local variables to force flushing locals to memory immediately before any protected calls and to inhibit optimizing locals across the setjmp->catch edge. Fixes rdar://problem/8160285 llvm-svn: 109960
* Emit global destructors even if the destroyed object has no initializers or hasJohn McCall2010-07-301-7/+3
| | | | | | | | an initializer requiring temporary object disposal. Fixes rdar:://problem/8246444. llvm-svn: 109849
OpenPOWER on IntegriCloud