summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Track volatile aggregate copies better. I'm hoping someone else will decideMike Stump2009-05-232-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 Stump2009-05-231-4/+9
| | | | llvm-svn: 72347
* More volatile fixes. Can't testcase these yet as ultimately volatileMike Stump2009-05-232-3/+3
| | | | | | is still ignored. llvm-svn: 72344
* Collapse a few FIXMEs together and refactor to make fixing the code easier.Mike Stump2009-05-231-46/+31
| | | | llvm-svn: 72342
* Add support for volatile RValues.Mike Stump2009-05-231-3/+8
| | | | llvm-svn: 72341
* One step to fixing up codegen for a=b, where a is a volatile struct.Mike Stump2009-05-231-1/+13
| | | | llvm-svn: 72315
* Initialize Obj-C GC attributes when emitting BlockDeclRefExprs.Daniel Dunbar2009-05-231-1/+3
| | | | | | - Otherwise we may incorrectly miss generation of some write barriers. llvm-svn: 72313
* Fix typo.Mike Stump2009-05-231-1/+1
| | | | llvm-svn: 72308
* This patch adds support for sender-aware dispatch in Objective-C for the GNU ↵Fariborz Jahanian2009-05-221-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 slightlyMike Stump2009-05-221-4/+5
| | | | | | improve codegen in some cases. llvm-svn: 72273
* x86_64 ABI: Account for sret parameters consuming an integer register.Daniel Dunbar2009-05-221-0/+5
| | | | | | - PR4242. llvm-svn: 72268
* Targets like PIC16 generate Static decls for automatic variables, emit the ↵Sanjiv Gupta2009-05-221-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 Edwin2009-05-221-1/+1
| | | | | | This attempts to fix PR4239. llvm-svn: 72251
* Fixup blocks codegen for { __block i; i = rhs(); }, we want the rhsMike Stump2009-05-211-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 Foad2009-05-214-6/+6
| | | | llvm-svn: 72210
* Minor refactoring. Uses an existing API to lookup a class method.Fariborz Jahanian2009-05-211-11/+3
| | | | llvm-svn: 72203
* This patch provides preliminary support for non-fragile instance variables ↵Fariborz Jahanian2009-05-201-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 Friedman2009-05-201-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 Carlsson2009-05-201-1/+7
| | | | llvm-svn: 72157
* Create a temporary if the lvalue is a bitfield. Reported by Eli.Anders Carlsson2009-05-201-1/+1
| | | | llvm-svn: 72155
* Add support for binding references to scalar rvalues.Anders Carlsson2009-05-201-0/+8
| | | | llvm-svn: 72153
* Bind references to lvalues correctly.Anders Carlsson2009-05-201-0/+6
| | | | llvm-svn: 72150
* Add EmitReferenceBindingToExpr. Have EmitCallArg use it for now. Doesn't ↵Anders Carlsson2009-05-204-1/+14
| | | | | | support anything but at least we don't crash ;) llvm-svn: 72147
* Improve support for irgen of references.Anders Carlsson2009-05-191-4/+10
| | | | llvm-svn: 72133
* Only do the bitcast in EmitStoreOfScalar if the type is a boolean.Anders Carlsson2009-05-191-15/+12
| | | | llvm-svn: 72125
* Pass the destination QualType to EmitStoreOfScalar. No functionality change.Anders Carlsson2009-05-194-9/+10
| | | | llvm-svn: 72118
* Don't always zext the result of the not unary operator to an int.Anders Carlsson2009-05-191-2/+2
| | | | llvm-svn: 72117
* Have AggExprEmitter::VisitCXXConstructExpr make new variables if necessary. ↵Anders Carlsson2009-05-192-2/+22
| | | | | | Stub out VisitCXXExprWithTemporaries. llvm-svn: 72103
* Clean up some unnecessary includes.Eli Friedman2009-05-191-2/+0
| | | | llvm-svn: 72101
* This patch allows clang to generate code for declared properties on the GNU ↵Fariborz Jahanian2009-05-191-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-CDaniel Dunbar2009-05-181-1/+1
| | | | | | interface types. llvm-svn: 72036
* Since we miscompile many cases when declaring a variable with a reference ↵Anders Carlsson2009-05-181-0/+10
| | | | | | type, make them unsupported for now. llvm-svn: 72034
* Remove an unused builtin.Anders Carlsson2009-05-181-4/+0
| | | | llvm-svn: 72033
* Add 'cmp' SSE builtins and get rid of a bunch of other builtins.Anders Carlsson2009-05-181-154/+14
| | | | llvm-svn: 72032
* Add support for converting member pointer types to LLVM types. Also mangle ↵Anders Carlsson2009-05-172-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 Jahanian2009-05-171-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 Carlsson2009-05-161-2/+3
| | | | llvm-svn: 71957
* Reflow some comments.Mike Stump2009-05-1613-157/+142
| | | | llvm-svn: 71937
* Classes with "+load" methods need to go in the non-lazy class list (orDaniel Dunbar2009-05-151-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 Dunbar2009-05-151-43/+43
| | | | | | - No functionality change. llvm-svn: 71898
* A C++ member function always has either weak linkage (if it's inline or ↵Anders Carlsson2009-05-151-0/+8
| | | | | | defined inline) or strong linkage (other cases). llvm-svn: 71873
* Name mangling for class template specializations and template arguments.Anders Carlsson2009-05-151-2/+64
| | | | llvm-svn: 71861
* Fixup debug information for the location information for __blockMike Stump2009-05-151-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 Dunbar2009-05-141-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 6867696Mike Stump2009-05-142-2/+135
| | | | llvm-svn: 71763
* We need to specify the "linkage name" to the subprogram now that weDaniel Dunbar2009-05-141-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 forDaniel Dunbar2009-05-131-0/+4
| | | | | | debug info. llvm-svn: 71736
* ABI handling: Fix invalid assertion, it is possible for a validDaniel Dunbar2009-05-131-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 Jahanian2009-05-131-8/+8
| | | | | | Used simple array for Selector build. llvm-svn: 71674
* implement __sync_synchronize and __sync_lock_release,Chris Lattner2009-05-131-3/+15
| | | | | | rdar://6880573 llvm-svn: 71637
OpenPOWER on IntegriCloud