summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Fix IRgen of constant expressions referring to external/staticDaniel Dunbar2009-02-241-5/+8
| | | | | | | variables. - PR3657. llvm-svn: 65381
* Some initial Obj-C zero cost EH support.Daniel Dunbar2009-02-241-5/+134
| | | | | | | | | - Only handles cases with @try with no @catch blocks, and there are a number of problems with the implementation. Nevertheless, this is good enough to handled @synchronized correctly, and some other basic uses. llvm-svn: 65378
* Add a note about an IRgen optimization opportunity.Daniel Dunbar2009-02-241-1/+7
| | | | llvm-svn: 65376
* Prevent accidental copying of CodeGenFunction and CodeGenModule.Anders Carlsson2009-02-242-0/+5
| | | | llvm-svn: 65372
* Pass the CodeGenModule object to GenerateBlockFunction, instead of *this ↵Anders Carlsson2009-02-241-6/+1
| | | | | | | | (which will call the copy constructor). Also, since we're creating a new CodeGenFunction object for each block function, we don't need to clear the BreakContinueStack. llvm-svn: 65371
* Ensure that we can't break or continue out of a block.Mike Stump2009-02-241-0/+5
| | | | llvm-svn: 65370
* Fix two @synchronized bugs found by inspection: the expression to sychronize ↵Daniel Dunbar2009-02-241-40/+32
| | | | | | | | | on should only be evaluated once, and it is evaluated outside the cleanup scope. Also, lift SyncEnter and SyncExit up in nervous anticipation of x86-64 zero cost EH. llvm-svn: 65362
* Improve merging of function declarations. Specifically:Douglas Gregor2009-02-241-1/+1
| | | | | | | | | | | | | | | | - When we are declaring a function in local scope, we can merge with a visible declaration from an outer scope if that declaration refers to an entity with linkage. This behavior now works in C++ and properly ignores entities without linkage. - Diagnose the use of "static" on a function declaration in local scope. - Diagnose the declaration of a static function after a non-static declaration of the same function. - Propagate the storage specifier to a function declaration from a prior declaration (PR3425) - Don't name-mangle "main" llvm-svn: 65360
* We should not generate __weak write barrier on indirect referenceFariborz Jahanian2009-02-231-3/+12
| | | | | | | of a pointer to object; This patch does this odd behavior according to gcc. llvm-svn: 65334
* Add low level support for generating invoke instead of calls.Daniel Dunbar2009-02-233-16/+46
| | | | | | - No functionality change. llvm-svn: 65325
* Make sure to reset the DidCallStackSave variable before emitting a compound ↵Anders Carlsson2009-02-221-0/+1
| | | | | | statement. Fixes PR3649. llvm-svn: 65291
* More objc gc work. Match gcc's treatment of ivar accessFariborz Jahanian2009-02-221-1/+1
| | | | | | | true a local pointer to objective-c object in generating write barriers. llvm-svn: 65290
* Copy some clenaups from Eli to code that I copied. :-)Mike Stump2009-02-221-6/+1
| | | | llvm-svn: 65286
* Cleanp code with some recent suggestions.Mike Stump2009-02-223-21/+12
| | | | llvm-svn: 65285
* x86_64 ABI: Actually, we can always pass things we want to pass inDaniel Dunbar2009-02-221-10/+2
| | | | | | | memory using Indirect; this was a holdover from when CGCall wasn't as robust. llvm-svn: 65278
* Eliminate a bunch of code which should be dead.Eli Friedman2009-02-221-194/+5
| | | | llvm-svn: 65267
* x86_64 ABI: Make sure to pass vectors that we want to pass in memoryDaniel Dunbar2009-02-221-1/+1
| | | | | | | | | as byval. Otherwise LLVM will have its own opinion about where to put things. We now pass all gcc dg.compat tests on x86_64. llvm-svn: 65266
* x86_64 ABI: Pass 32-bit vectors as Integer to match gcc. We don't careDaniel Dunbar2009-02-221-1/+16
| | | | | | about these much but <2 x i16> shows up in the gcc test suite. llvm-svn: 65264
* x86_64 ABI: Classify <1 x i64> as INTEGER (match gcc not llvm-gcc).Daniel Dunbar2009-02-221-6/+12
| | | | | | | Also, make sure to pass <1 x i64> as i64 (not <1 x i64>, which doesn't quite work yet in the backend). llvm-svn: 65262
* 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
OpenPOWER on IntegriCloud