Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Track volatile aggregate copies better. I'm hoping someone else will decide | Mike Stump | 2009-05-23 | 2 | -4/+11 | |
| | | | | | | how to get the backend to know that the operation is volatile. llvm-svn: 72348 | |||||
* | Fix thinko, and implement aggregate volatile reads. | Mike Stump | 2009-05-23 | 1 | -4/+9 | |
| | | | | llvm-svn: 72347 | |||||
* | More volatile fixes. Can't testcase these yet as ultimately volatile | Mike Stump | 2009-05-23 | 2 | -3/+3 | |
| | | | | | | is still ignored. llvm-svn: 72344 | |||||
* | Collapse a few FIXMEs together and refactor to make fixing the code easier. | Mike Stump | 2009-05-23 | 1 | -46/+31 | |
| | | | | llvm-svn: 72342 | |||||
* | Add support for volatile RValues. | Mike Stump | 2009-05-23 | 1 | -3/+8 | |
| | | | | llvm-svn: 72341 | |||||
* | One step to fixing up codegen for a=b, where a is a volatile struct. | Mike Stump | 2009-05-23 | 1 | -1/+13 | |
| | | | | llvm-svn: 72315 | |||||
* | Initialize Obj-C GC attributes when emitting BlockDeclRefExprs. | Daniel Dunbar | 2009-05-23 | 1 | -1/+3 | |
| | | | | | | - Otherwise we may incorrectly miss generation of some write barriers. llvm-svn: 72313 | |||||
* | Fix typo. | Mike Stump | 2009-05-23 | 1 | -1/+1 | |
| | | | | llvm-svn: 72308 | |||||
* | This patch adds support for sender-aware dispatch in Objective-C for the GNU ↵ | Fariborz Jahanian | 2009-05-22 | 1 | -6/+27 | |
| | | | | | | | | | | runtime, when compiled with -fobjc-sender-dependent-dispatch. This is used in AOP, COP, implementing object planes, and a few other things. Patch by David Chisnall. llvm-svn: 72275 | |||||
* | Fixup codegen for __block int i; i += rhs();. Should also slightly | Mike Stump | 2009-05-22 | 1 | -4/+5 | |
| | | | | | | improve codegen in some cases. llvm-svn: 72273 | |||||
* | x86_64 ABI: Account for sret parameters consuming an integer register. | Daniel Dunbar | 2009-05-22 | 1 | -0/+5 | |
| | | | | | | - PR4242. llvm-svn: 72268 | |||||
* | Targets like PIC16 generate Static decls for automatic variables, emit the ↵ | Sanjiv Gupta | 2009-05-22 | 1 | -1/+4 | |
| | | | | | | appropriate debug descriptor as well in that case. llvm-svn: 72261 | |||||
* | Set correct calling convention even if there is a bitcast in the way. | Torok Edwin | 2009-05-22 | 1 | -1/+1 | |
| | | | | | | This attempts to fix PR4239. llvm-svn: 72251 | |||||
* | Fixup blocks codegen for { __block i; i = rhs(); }, we want the rhs | Mike Stump | 2009-05-21 | 1 | -1/+3 | |
| | | | | | | | evaluated first. This can also improve codegen just a bit as we might have another register to play with for the evaluation of the rhs. llvm-svn: 72226 | |||||
* | Use v.data() instead of &v[0] when SmallVector v might be empty. | Jay Foad | 2009-05-21 | 4 | -6/+6 | |
| | | | | llvm-svn: 72210 | |||||
* | Minor refactoring. Uses an existing API to lookup a class method. | Fariborz Jahanian | 2009-05-21 | 1 | -11/+3 | |
| | | | | llvm-svn: 72203 | |||||
* | This patch provides preliminary support for non-fragile instance variables ↵ | Fariborz Jahanian | 2009-05-20 | 1 | -3/+74 | |
| | | | | | | | | | | | | on the GNU runtime. It currently requires a patches to GNU libobjc (and so is not enabled by default) which are currently being tested and reviewed by GNUstep before being pushed upstream. This patch does not allow support for synthesized ivars, but does provide the infrastructure needed for supporting them. Patch by David Chisnall llvm-svn: 72175 | |||||
* | Handle the remaining unhandled cases in EmitReferenceBindingToExpr. | Eli Friedman | 2009-05-20 | 1 | -15/+18 | |
| | | | | | | | | It would be nice if someone could write an ObjC++ testcase for the case of passing a property returning a struct to a function taking a const reference. llvm-svn: 72159 | |||||
* | irgen for references to complex rvales (Very important...) | Anders Carlsson | 2009-05-20 | 1 | -1/+7 | |
| | | | | llvm-svn: 72157 | |||||
* | Create a temporary if the lvalue is a bitfield. Reported by Eli. | Anders Carlsson | 2009-05-20 | 1 | -1/+1 | |
| | | | | llvm-svn: 72155 | |||||
* | Add support for binding references to scalar rvalues. | Anders Carlsson | 2009-05-20 | 1 | -0/+8 | |
| | | | | llvm-svn: 72153 | |||||
* | Bind references to lvalues correctly. | Anders Carlsson | 2009-05-20 | 1 | -0/+6 | |
| | | | | llvm-svn: 72150 | |||||
* | Add EmitReferenceBindingToExpr. Have EmitCallArg use it for now. Doesn't ↵ | Anders Carlsson | 2009-05-20 | 4 | -1/+14 | |
| | | | | | | support anything but at least we don't crash ;) llvm-svn: 72147 | |||||
* | Improve support for irgen of references. | Anders Carlsson | 2009-05-19 | 1 | -4/+10 | |
| | | | | llvm-svn: 72133 | |||||
* | Only do the bitcast in EmitStoreOfScalar if the type is a boolean. | Anders Carlsson | 2009-05-19 | 1 | -15/+12 | |
| | | | | llvm-svn: 72125 | |||||
* | Pass the destination QualType to EmitStoreOfScalar. No functionality change. | Anders Carlsson | 2009-05-19 | 4 | -9/+10 | |
| | | | | llvm-svn: 72118 | |||||
* | Don't always zext the result of the not unary operator to an int. | Anders Carlsson | 2009-05-19 | 1 | -2/+2 | |
| | | | | llvm-svn: 72117 | |||||
* | Have AggExprEmitter::VisitCXXConstructExpr make new variables if necessary. ↵ | Anders Carlsson | 2009-05-19 | 2 | -2/+22 | |
| | | | | | | Stub out VisitCXXExprWithTemporaries. llvm-svn: 72103 | |||||
* | Clean up some unnecessary includes. | Eli Friedman | 2009-05-19 | 1 | -2/+0 | |
| | | | | llvm-svn: 72101 | |||||
* | This patch allows clang to generate code for declared properties on the GNU ↵ | Fariborz Jahanian | 2009-05-19 | 1 | -2/+28 | |
| | | | | | | | | runtime. As with @synchronized, this requires some extra functions that are included with other libraries (not with the GNU runtime itself) and so will cause linker errors when these are not present. Patch by David Chisnall. llvm-svn: 72079 | |||||
* | Debug info: Initialize runtime language field correctly for Objective-C | Daniel Dunbar | 2009-05-18 | 1 | -1/+1 | |
| | | | | | | interface types. llvm-svn: 72036 | |||||
* | Since we miscompile many cases when declaring a variable with a reference ↵ | Anders Carlsson | 2009-05-18 | 1 | -0/+10 | |
| | | | | | | type, make them unsupported for now. llvm-svn: 72034 | |||||
* | Remove an unused builtin. | Anders Carlsson | 2009-05-18 | 1 | -4/+0 | |
| | | | | llvm-svn: 72033 | |||||
* | Add 'cmp' SSE builtins and get rid of a bunch of other builtins. | Anders Carlsson | 2009-05-18 | 1 | -154/+14 | |
| | | | | llvm-svn: 72032 | |||||
* | Add support for converting member pointer types to LLVM types. Also mangle ↵ | Anders Carlsson | 2009-05-17 | 2 | -7/+19 | |
| | | | | | | pointer to member functions correctly and add tests. llvm-svn: 71981 | |||||
* | This patch fixes two bugs in the GNU Objective-C runtime implementation. ↵ | Fariborz Jahanian | 2009-05-17 | 1 | -14/+34 | |
| | | | | | | | | One is a case in rethrowing exceptions where the C types don't match correctly (I already sent this patch to Daniel Dunbar, who found the bug, so it may have already been committed). The other fixes the case properties so that the methods generated as property accessors are added to the class structure correctly. Patch by David Chisnall. llvm-svn: 71980 | |||||
* | extern "C" should preserve the 'extern' qualifier for VarDecls. Fixes 6853728. | Anders Carlsson | 2009-05-16 | 1 | -2/+3 | |
| | | | | llvm-svn: 71957 | |||||
* | Reflow some comments. | Mike Stump | 2009-05-16 | 13 | -157/+142 | |
| | | | | llvm-svn: 71937 | |||||
* | Classes with "+load" methods need to go in the non-lazy class list (or | Daniel Dunbar | 2009-05-15 | 1 | -10/+40 | |
| | | | | | | else the method will not be found by the runtime at class load time). llvm-svn: 71904 | |||||
* | Factor code for adding module-level class lists into separate method. | Daniel Dunbar | 2009-05-15 | 1 | -43/+43 | |
| | | | | | | - No functionality change. llvm-svn: 71898 | |||||
* | A C++ member function always has either weak linkage (if it's inline or ↵ | Anders Carlsson | 2009-05-15 | 1 | -0/+8 | |
| | | | | | | defined inline) or strong linkage (other cases). llvm-svn: 71873 | |||||
* | Name mangling for class template specializations and template arguments. | Anders Carlsson | 2009-05-15 | 1 | -2/+64 | |
| | | | | llvm-svn: 71861 | |||||
* | Fixup debug information for the location information for __block | Mike Stump | 2009-05-15 | 1 | -2/+4 | |
| | | | | | | | | | | | | | | | | | | | | variables. For this to work, the backend needs to handle more complex forms for locations. A typical utterance would be: %forwarding = getelementptr %0* %use_by_ref, i32 0, i32 1 ; <i8**> [#uses=1] %0 = load i8** %forwarding ; <i8*> [#uses=1] %1 = bitcast i8* %0 to %0* ; <%0*> [#uses=1] %x = getelementptr %0* %1, i32 0, i32 4 ; <i32*> [#uses=1] %2 = bitcast i32* %x to { }* ; <{ }*> [#uses=1] call void @llvm.dbg.declare({ }* %2, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to { }*)) Presently when selection finds something it doesn't understand, it just avoids generating any information, which is safe, just incomplete. Radar 6867696 llvm-svn: 71824 | |||||
* | Skip the asm prefix when storing the name in block info. | Daniel Dunbar | 2009-05-14 | 1 | -2/+6 | |
| | | | | | | | | | | | - Otherwise we emit internal names with embedded '\01' characters, which confuses some tools. - Ideally all the code which wants to get a "display name" for the given function should follow one code path, but this should be a monotonic improvement for now. llvm-svn: 71774 | |||||
* | Enhance debug information for block literals. Radar 6867696 | Mike Stump | 2009-05-14 | 2 | -2/+135 | |
| | | | | llvm-svn: 71763 | |||||
* | We need to specify the "linkage name" to the subprogram now that we | Daniel Dunbar | 2009-05-14 | 1 | -1/+5 | |
| | | | | | | | emit the correct "display name". I suspect we need more work here, see FIXME for example. llvm-svn: 71761 | |||||
* | Make sure not to include the LLVM asm prefix in function names for | Daniel Dunbar | 2009-05-13 | 1 | -0/+4 | |
| | | | | | | debug info. llvm-svn: 71736 | |||||
* | ABI handling: Fix invalid assertion, it is possible for a valid | Daniel Dunbar | 2009-05-13 | 1 | -6/+16 | |
| | | | | | | | | coercion to be specified which truncates padding bits. It would be nice to still have the assert, but we don't have any API call for the unpadding size of a type yet. llvm-svn: 71695 | |||||
* | Removed 4-letter :) word in comment. | Fariborz Jahanian | 2009-05-13 | 1 | -8/+8 | |
| | | | | | | Used simple array for Selector build. llvm-svn: 71674 | |||||
* | implement __sync_synchronize and __sync_lock_release, | Chris Lattner | 2009-05-13 | 1 | -3/+15 | |
| | | | | | | rdar://6880573 llvm-svn: 71637 |