summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Last part of PR3254: use the same alignment computation in Sema and Eli Friedman2009-02-221-4/+1
| | | | | | | CodeGen. I'm not sure whether this actually makes any visible difference, but it's better to be consistent anyway. llvm-svn: 65259
* local array of objects are non-gc'able.Fariborz Jahanian2009-02-211-2/+6
| | | | llvm-svn: 65251
* More work to integrate newly added ObjCQualifiedClassType into the type system.Steve Naroff2009-02-211-0/+1
| | | | | | This is necessary 'plumbing' to fix <rdar://problem/6497631> Message lookup is sometimes different than gcc's. llvm-svn: 65248
* The blocks ABI is wrong, add a FIXME.Mike Stump2009-02-211-0/+3
| | | | llvm-svn: 65243
* Add CodeGen support for the helper for BlockDeclRefExprs. The easierMike Stump2009-02-214-26/+125
| | | | | | stuff is mostly done. Move BlockHasCopyDispose up. llvm-svn: 65242
* Handle case of none gc'able objects regardless of theirFariborz Jahanian2009-02-212-5/+20
| | | | | | type. llvm-svn: 65205
* Emit extern_weak when needed.Daniel Dunbar2009-02-211-5/+10
| | | | | | - PR3629. llvm-svn: 65203
* We must always mangle attribute overloadable functions; even if in aDaniel Dunbar2009-02-201-5/+5
| | | | | | | system header. - Prevents a codegen crash when anything used anything in tgmath! :) llvm-svn: 65200
* Add some IRgen improvement notes.Daniel Dunbar2009-02-201-0/+17
| | | | llvm-svn: 65146
* Shorten; no functionality change.Daniel Dunbar2009-02-201-8/+6
| | | | llvm-svn: 65145
* Take advantage of noreturn attribute to add unreachable instruction &Daniel Dunbar2009-02-201-0/+12
| | | | | | | clear insertion point. The rest of IRgen should theoretically take advantage of this to avoid emitting dead code. Theory != Practice. llvm-svn: 65141
* remove some more methods from objc decls, using the iteratorChris Lattner2009-02-201-6/+5
| | | | | | interfaces more consistently. llvm-svn: 65138
* Set call attribute for direct calls (i.e. noreturn).Daniel Dunbar2009-02-203-26/+26
| | | | | | - Remove an unused variant of EmitCallExpr overload. llvm-svn: 65130
* switch ObjCMethodDecl's parameter list from being explicitly managed to an ↵Chris Lattner2009-02-201-1/+1
| | | | | | ObjCList. llvm-svn: 65114
* Initialize the Init variable to something reasonable when we emit an Eli Friedman2009-02-201-1/+4
| | | | | | error, so we don't crash. llvm-svn: 65099
* More objc gc's ir-gen fixes.Fariborz Jahanian2009-02-201-3/+8
| | | | llvm-svn: 65097
* Deox and Capitolize.Mike Stump2009-02-201-3/+3
| | | | llvm-svn: 65093
* Fix spacing.Mike Stump2009-02-201-1/+1
| | | | llvm-svn: 65089
* More objc's gc ir-gen stuff.Fariborz Jahanian2009-02-192-37/+37
| | | | llvm-svn: 65077
* Add enough checking to ensure that non-constant block literals don'tMike Stump2009-02-191-1/+5
| | | | | | | appear to be constant. I'll probably redo this and throw it all away later once we have codegen for BlockDeclRefExprs. llvm-svn: 65070
* Remove IRgen constant emission assumption that LValue APValue resultsDaniel Dunbar2009-02-191-15/+31
| | | | | | | | | only occur for pointer types; they are also possible for integer types now. - No intended functionality change, IntExprEvaluate doesn't return LValue results yet. llvm-svn: 65066
* Add irgen support for the noinline attribute.Anders Carlsson2009-02-191-0/+3
| | | | llvm-svn: 65056
* Generate the conservative objc gc's API for now.Fariborz Jahanian2009-02-191-0/+7
| | | | llvm-svn: 65051
* Don't emit K&R unprototyped function definitions as varargs.Daniel Dunbar2009-02-192-14/+37
| | | | | | - <rdar://problem/6584606> clang/x86-64 - too many reg saves llvm-svn: 65032
* Emission of global variable initialializer was broken in rareDaniel Dunbar2009-02-191-1/+23
| | | | | | | | | | | situation where a tentative decl was emitted *after* the actual initialization. This occurs in some rare situations with static decls. - PR3613. - I'm not particularly happy with this fix, but I don't see a simpler or more elegant solution yet. llvm-svn: 65018
* More codegen for blocks. The type of block literals should be better.Mike Stump2009-02-194-12/+61
| | | | | | The size calculation is improved. llvm-svn: 64994
* Some code simplification. ir gen for gc'able arrayFariborz Jahanian2009-02-192-14/+17
| | | | | | of objects in objc. llvm-svn: 64992
* Address Chris's comments regarding C++ name mangling.Douglas Gregor2009-02-187-45/+64
| | | | llvm-svn: 64984
* Add anti-FIXME.Daniel Dunbar2009-02-181-1/+4
| | | | llvm-svn: 64969
* i386 ABI: Offset computation in va_arg was incorrect for sizeof(Ty)>4.Daniel Dunbar2009-02-181-6/+3
| | | | | | We are down to only failing gcc.dg/compat/vector-[12] (8 tests total). llvm-svn: 64967
* x86_64 ABI: Fix thinko in computation of bound for "passed in SSE regs" test.Daniel Dunbar2009-02-181-1/+1
| | | | | | Two more gcc/x86_64 failures down. llvm-svn: 64963
* rip out __builtin_overloadChris Lattner2009-02-183-27/+0
| | | | llvm-svn: 64961
* x86_64 ABI: "is passed in regs" computation for va_arg was broken forDaniel Dunbar2009-02-181-1/+1
| | | | | | | | things passed in mixed registers. This knocks out 8 x86_64 failures. llvm-svn: 64958
* Some refactoring and simplificaiotn of objc's gcFariborz Jahanian2009-02-181-17/+10
| | | | | | ir gen. llvm-svn: 64954
* Simplify.Daniel Dunbar2009-02-181-2/+1
| | | | llvm-svn: 64944
* Start generating gc'able code using the newFariborz Jahanian2009-02-181-25/+16
| | | | | | objc gc type attributes. llvm-svn: 64935
* Cleanup objc's gc attributes code no longer needed.Fariborz Jahanian2009-02-181-2/+10
| | | | | | | | This make warn-weak-field.m to fail (subject of a followup patch). attr-objc-gc.m no passes. llvm-svn: 64925
* x86_64 ABI: Two bug fixes.Daniel Dunbar2009-02-181-4/+36
| | | | | | | | | | | | | | | | | | 1. Return of _Complex long double used wrong type. 2. va_arg of types passed in two SSE registers didn't account for extra space in register save area. Down to 18 failures on gcc/compat/x86_64. Combined 32/64 results are: -- === gcc Summary === # of expected passes 1292 # of unexpected failures 34 # of unsupported tests 2 -- llvm-svn: 64880
* Avoid getNameAsCString when the decl doesn't have a name.Mike Stump2009-02-171-2/+3
| | | | | | Build of the parm list with the iterator, not end(). llvm-svn: 64851
* Remove some redundant Decl -> Decl castings.Argyrios Kyrtzidis2009-02-171-5/+1
| | | | llvm-svn: 64804
* Change EmitConstantExpr to allow failure.Daniel Dunbar2009-02-173-21/+49
| | | | | | | | | | | | | | IRgen no longer relies on isConstantInitializer, instead we just try to emit the constant. If that fails then in C we emit an error unsupported (this occurs when Sema accepted something that it doesn't know how to fold, and IRgen doesn't know how to emit) and in C++ we emit a guarded initializer. This ends up handling a few more cases, because IRgen was actually able to emit some of the constants Sema accepts but can't Evaluate(). For example, PR3398. llvm-svn: 64780
* 80-cols.Daniel Dunbar2009-02-171-9/+11
| | | | llvm-svn: 64779
* Renamed ASQualType to ExtQualType to reflect its moreFariborz Jahanian2009-02-172-3/+3
| | | | | | | general use; as for, objc2's gc type attributes. No change in functionality. llvm-svn: 64778
* Be sure to initialize Name.Mike Stump2009-02-171-1/+1
| | | | llvm-svn: 64769
* Fixup spacing a little.Mike Stump2009-02-171-6/+6
| | | | llvm-svn: 64768
* x86_64 ABI: Fix assert on return of _Complex long double.Daniel Dunbar2009-02-171-5/+6
| | | | llvm-svn: 64756
* x86_64 ABI: Implement classification for bit-fields.Daniel Dunbar2009-02-171-2/+26
| | | | llvm-svn: 64727
* x86_64 ABI: Handle va_arg arguments with alignment > 8.Daniel Dunbar2009-02-161-4/+15
| | | | llvm-svn: 64701
* Add support for throwing exceptions to the nonfragile ABIAnders Carlsson2009-02-161-15/+34
| | | | llvm-svn: 64692
* Added implementation of objc2's gc API calls forFariborz Jahanian2009-02-161-16/+70
| | | | | | nonfragile abi. llvm-svn: 64690
OpenPOWER on IntegriCloud