summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Support IRgen of sqrt -> llvm.sqrt, pow -> llvm.pow.Daniel Dunbar2009-02-163-3/+33
| | | | | | | | | | | | | | | | - Define pow[lf]?, sqrt[lf]? as builtins. - Add -fmath-errno option which binds to LangOptions.MathErrno - Add new builtin flag Builtin::Context::isConstWithoutErrno for functions which can be marked as const if errno isn't respected for math functions. Sema automatically marks these functions as const when they are defined, if MathErrno=0. - IRgen uses const attribute on sqrt and pow library functions to decide if it can use the llvm intrinsic. llvm-svn: 64689
* fix volatile handling with ExtVectorElementExpr, so that weChris Lattner2009-02-162-10/+13
| | | | | | | | | | | emit two volatile loads for: typedef __attribute__(( ext_vector_type(4) )) float float4; float test(volatile float4 *P) { return P->x+P->y; } llvm-svn: 64683
* introduce and use a new ExtVectorElementExpr::isArrow method, at Eli's ↵Chris Lattner2009-02-161-4/+5
| | | | | | suggestion llvm-svn: 64681
* Fix IRgen of __builtin_memset.Daniel Dunbar2009-02-161-1/+2
| | | | | | - Fix test case to not only have negative tests. llvm-svn: 64674
* enhance ExtVectorElementExpr to allow V->xxyy to work like (*V).xxyyChris Lattner2009-02-161-8/+12
| | | | llvm-svn: 64667
* assert/ErrorUnsupported in unimplemented stub functions instead ofDaniel Dunbar2009-02-161-16/+25
| | | | | | miscompiling. llvm-svn: 64647
* Obj-C non-fragile ABI: Fix types of a few globals; these were notDaniel Dunbar2009-02-151-20/+26
| | | | | | creating valid LLVM structures (although they work fined). llvm-svn: 64580
* Use getNameAsCString instead of getNameAsString and reflow the type.Mike Stump2009-02-143-7/+7
| | | | | | Thanks Anders. llvm-svn: 64571
OpenPOWER on IntegriCloud