summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Add code for emitting C++ destructors. Not used yet.Anders Carlsson2009-05-293-0/+14
| | | | llvm-svn: 72591
* Create a new PrintingPolicy class, which we pass down through the ASTDouglas Gregor2009-05-291-1/+3
| | | | | | | | | printing logic to help customize the output. For now, we use this rather than a special flag to suppress the "struct" when printing "struct X" and to print the Boolean type as "bool" in C++ but "_Bool" in C. llvm-svn: 72590
* Re-add a slightly more general version of the check from r72578; it is Eli Friedman2009-05-291-0/+2
| | | | | | actually necessary in some obscure cases. llvm-svn: 72585
* Oops, the testcase I was thinking of is supposed to error out. IMike Stump2009-05-291-2/+0
| | | | | | tried other things that might trip, but they all worked. llvm-svn: 72584
* Fixup codegen for composition of vla types using a normal array type.Mike Stump2009-05-291-0/+2
| | | | llvm-svn: 72578
* Fixup the rest of the trivial cases of the codegen of volatile. IfMike Stump2009-05-295-56/+196
| | | | | | | any body can spot codegen bugs with volatile, or knows of any in the bug database, let me know. llvm-svn: 72572
* PR4281: Fix bogus CodeGen assertion. The issue is that Eli Friedman2009-05-281-8/+5
| | | | | | | getUnqualifiedType() doesn't strip off all qualifiers for non-canonical types. llvm-svn: 72552
* Not setting all the fields is confusing...Mike Stump2009-05-281-0/+3
| | | | llvm-svn: 72506
* Fix a use-of-undefined, IRgen expects the RValue for "void" to be a scalar ↵Daniel Dunbar2009-05-271-2/+2
| | | | | | RValue. llvm-svn: 72504
* No write-barrier for initializations.Fariborz Jahanian2009-05-271-0/+2
| | | | llvm-svn: 72492
* Change a confusing variable name.Fariborz Jahanian2009-05-271-3/+3
| | | | llvm-svn: 72491
* IRgen support for calls to functions that return references to aggregate ↵Anders Carlsson2009-05-271-0/+5
| | | | | | exressions. llvm-svn: 72479
* Fix up constant expression handling to deal with the address Eli Friedman2009-05-271-15/+3
| | | | | | of a reference correctly. llvm-svn: 72463
* Add IRGen support for local variables of reference type.Eli Friedman2009-05-271-6/+4
| | | | llvm-svn: 72462
* Add IRGen support for return statements in functions with reference Eli Friedman2009-05-271-0/+4
| | | | | | type. llvm-svn: 72459
* Handle operator call expressions where the callee is a member function.Anders Carlsson2009-05-273-0/+27
| | | | llvm-svn: 72458
* Functions that return references can be rvalues as well.Anders Carlsson2009-05-272-0/+6
| | | | llvm-svn: 72457
* Add support for emitting calls to functions that return references (as ↵Anders Carlsson2009-05-271-1/+10
| | | | | | lvalues only for now) llvm-svn: 72449
* Fix typo. I also fixed the hard to read case differences, so that noMike Stump2009-05-271-3/+3
| | | | | | one else is tempted to copy the style, incorrectly. llvm-svn: 72448
* Rename an EmitCallExpr function to EmitCall to make it clear that it doesn't ↵Anders Carlsson2009-05-273-16/+14
| | | | | | emit an expr. llvm-svn: 72446
* Fixup codegen for volatile structs in the trivial cases (a a=a and a=a=a).Mike Stump2009-05-264-23/+29
| | | | llvm-svn: 72439
* Use .data() instead of &...[0].Daniel Dunbar2009-05-261-5/+5
| | | | | | - Just SmallVectors this time. llvm-svn: 72432
* Esnure that if we have a volatile structure as the destination, thatMike Stump2009-05-261-3/+6
| | | | | | we actually have a destination. llvm-svn: 72429
* When trying to pass an argument on the stack, assume LLVM will do the rightDaniel Dunbar2009-05-261-3/+19
| | | | | | | | | | | | | thing for non-aggregate types. - Otherwise we unnecessarily pin values to the stack and currently end up triggering a backend bug in one case. - This loose cooperation with LLVM to implement the ABI is pretty ugly. - <rdar://problem/6918722> [irgen] clang miscompile of many pointer varargs on x86-64 llvm-svn: 72419
* Handle the edge case of a weak function with incomplete type correctly. Eli Friedman2009-05-262-8/+12
| | | | | | Found by code inspection; I haven't seen this in real-world code. llvm-svn: 72408
* Propagate volatile for implicit property refernces.Mike Stump2009-05-231-3/+2
| | | | llvm-svn: 72353
* Propagate volatile around for property references.Mike Stump2009-05-231-3/+2
| | | | llvm-svn: 72352
* 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
OpenPOWER on IntegriCloud