Chris Lattner
ab17fb2c98
fix the more complex cases by actually codegen'ing the right expr :)
...
llvm-svn: 67219
2009-03-18 18:30:44 +00:00
Chris Lattner
28bcf1a429
add codegen support for casting an element to a union.
...
There are some more complex cases (_Complex and structs)
that I'm still working on.
llvm-svn: 67218
2009-03-18 18:28:57 +00:00
Chris Lattner
63d06ab65a
teach codegen to handle noop casts as lvalues.
...
llvm-svn: 67164
2009-03-18 04:02:57 +00:00
Eli Friedman
e0a5b8b11f
Minor cleanup for choose expressions: add a helper that returns the
...
chosen sub-expression, rather than just evaluating the condition.
llvm-svn: 66018
2009-03-04 05:52:32 +00:00
Mike Stump
97d01d50d9
Improved ABI compliance for __block variables. No testcases yet as we
...
still give an unsupported error for them due to the fact this is a
work in progress.
llvm-svn: 66007
2009-03-04 03:23:46 +00:00
Mike Stump
0e425b8200
Push checking down, also, give the user a hit as to which part of the
...
block literal is causing the problem, instead of the vague reference
to the entire block literal.
llvm-svn: 65798
2009-03-02 03:04:42 +00:00
Mike Stump
1db7d04b71
First cut CodeGen support for __block variables.
...
llvm-svn: 65688
2009-02-28 09:07:16 +00:00
Chris Lattner
d7e7b8e411
first wave of fixes for @encode sema support. This is part of PR3648.
...
The big difference here is that (like string literal) @encode has
array type, not pointer type.
llvm-svn: 65391
2009-02-24 22:18:39 +00:00
Fariborz Jahanian
392124c78e
We should not generate __weak write barrier on indirect reference
...
of a pointer to object; This patch does this odd behavior according to
gcc.
llvm-svn: 65334
2009-02-23 18:59:50 +00:00
Fariborz Jahanian
0773533b27
More objc gc work. Match gcc's treatment of ivar access
...
true a local pointer to objective-c object in generating
write barriers.
llvm-svn: 65290
2009-02-22 18:40:18 +00:00
Fariborz Jahanian
a9fecf3f9e
local array of objects are non-gc'able.
...
llvm-svn: 65251
2009-02-21 23:37:19 +00:00
Fariborz Jahanian
10bec1099c
Handle case of none gc'able objects regardless of their
...
type.
llvm-svn: 65205
2009-02-21 00:30:43 +00:00
Daniel Dunbar
27032de34b
Shorten; no functionality change.
...
llvm-svn: 65145
2009-02-20 19:34:33 +00:00
Daniel Dunbar
cdbb5e336d
Set call attribute for direct calls (i.e. noreturn).
...
- Remove an unused variant of EmitCallExpr overload.
llvm-svn: 65130
2009-02-20 18:06:48 +00:00
Fariborz Jahanian
c86fb5ecb4
More objc gc's ir-gen fixes.
...
llvm-svn: 65097
2009-02-20 01:14:43 +00:00
Fariborz Jahanian
0f466c746f
More objc's gc ir-gen stuff.
...
llvm-svn: 65077
2009-02-19 23:36:06 +00:00
Fariborz Jahanian
3114e94e10
Generate the conservative objc gc's API for now.
...
llvm-svn: 65051
2009-02-19 18:29:24 +00:00
Fariborz Jahanian
83e3eea5fc
Some code simplification. ir gen for gc'able array
...
of objects in objc.
llvm-svn: 64992
2009-02-19 00:48:05 +00:00
Douglas Gregor
5f361c9f1e
Address Chris's comments regarding C++ name mangling.
...
llvm-svn: 64984
2009-02-18 23:53:56 +00:00
Fariborz Jahanian
9620769901
Some refactoring and simplificaiotn of objc's gc
...
ir gen.
llvm-svn: 64954
2009-02-18 21:49:28 +00:00
Fariborz Jahanian
9959eee95d
Start generating gc'able code using the new
...
objc gc type attributes.
llvm-svn: 64935
2009-02-18 18:52:41 +00:00
Fariborz Jahanian
257eac6d0c
Cleanup objc's gc attributes code no longer needed.
...
This make warn-weak-field.m to fail (subject of
a followup patch).
attr-objc-gc.m no passes.
llvm-svn: 64925
2009-02-18 17:52:36 +00:00
Daniel Dunbar
3d926cbf79
80-cols.
...
llvm-svn: 64779
2009-02-17 18:31:04 +00:00
Daniel Dunbar
8eb018ab9c
Support IRgen of sqrt -> llvm.sqrt, pow -> llvm.pow.
...
- 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
2009-02-16 22:43:43 +00:00
Chris Lattner
e084c01124
fix volatile handling with ExtVectorElementExpr, so that we
...
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
2009-02-16 22:25:49 +00:00