Mike Stump
ec3cbfe8c6
Fixup codegen for volatile structs in the trivial cases (a a=a and a=a=a).
...
llvm-svn: 72439
2009-05-26 22:03:21 +00:00
Mike Stump
25306cacc6
Esnure that if we have a volatile structure as the destination, that
...
we actually have a destination.
llvm-svn: 72429
2009-05-26 18:57:45 +00:00
Mike Stump
b9f2518626
Propagate volatile for implicit property refernces.
...
llvm-svn: 72353
2009-05-23 23:52:31 +00:00
Mike Stump
9afc476d4a
Propagate volatile around for property references.
...
llvm-svn: 72352
2009-05-23 23:48:13 +00:00
Mike Stump
5e9e61b8d2
Track volatile aggregate copies better. I'm hoping someone else will decide
...
how to get the backend to know that the operation is volatile.
llvm-svn: 72348
2009-05-23 22:29:41 +00:00
Mike Stump
332ec2ce81
Fix thinko, and implement aggregate volatile reads.
...
llvm-svn: 72347
2009-05-23 22:01:27 +00:00
Mike Stump
23abd46b79
More volatile fixes. Can't testcase these yet as ultimately volatile
...
is still ignored.
llvm-svn: 72344
2009-05-23 21:40:07 +00:00
Mike Stump
ca9fc09c61
Collapse a few FIXMEs together and refactor to make fixing the code easier.
...
llvm-svn: 72342
2009-05-23 20:28:01 +00:00
Mike Stump
8673657275
One step to fixing up codegen for a=b, where a is a volatile struct.
...
llvm-svn: 72315
2009-05-23 04:13:59 +00:00
Mike Stump
a35af82429
Fix typo.
...
llvm-svn: 72308
2009-05-23 02:02:29 +00:00
Anders Carlsson
c82b86dfaa
Have AggExprEmitter::VisitCXXConstructExpr make new variables if necessary. Stub out VisitCXXExprWithTemporaries.
...
llvm-svn: 72103
2009-05-19 04:48:36 +00:00
Mike Stump
18bb9284ff
Reflow some comments.
...
llvm-svn: 71937
2009-05-16 07:57:57 +00:00
Anders Carlsson
1619a5041c
Make codegen for constructors work again.
...
llvm-svn: 70785
2009-05-03 17:47:16 +00:00
Chris Lattner
a4185c543e
fix PR4067: [Linux kernel] cannot aggregate codegen stmtexpr as lvalue
...
llvm-svn: 70067
2009-04-25 19:35:26 +00:00
Chris Lattner
2f343dd5c8
fix PR4026: Clang can't codegen __func__ without implicit cast
...
llvm-svn: 69747
2009-04-21 23:00:09 +00:00
Anders Carlsson
b7f8f594f3
Implement basic code generation of constructor calls. We can now compile:
...
struct S {
S(int, int);
};
void f() {
S s(10, 10);
}
llvm-svn: 69330
2009-04-17 00:06:03 +00:00
Eli Friedman
20bb5e02a5
Minor work related to removing the assumption that value initialization
...
implies an all-zero bit pattern.
llvm-svn: 68994
2009-04-13 21:47:26 +00:00
Douglas Gregor
bcced4ec31
Propagate the ASTContext to various AST traversal and lookup functions.
...
No functionality change (really).
llvm-svn: 68726
2009-04-09 21:40:53 +00:00
Eli Friedman
9127aa1caf
Minor cleanup.
...
llvm-svn: 67896
2009-03-28 03:10:45 +00:00
Eli Friedman
d6a7b72944
Remove dead code.
...
llvm-svn: 67477
2009-03-22 20:54:47 +00:00
Mike Stump
bc7d67ce08
Add codegen support for aggregate BlockDeclRefExprs.
...
llvm-svn: 67207
2009-03-18 15:54:29 +00:00
Chris Lattner
ca05dfef65
brain thinking memcpy, fingers thinking memset :)
...
llvm-svn: 65701
2009-02-28 18:31:01 +00:00
Chris Lattner
3ef668c27a
after going around in circles a few times, finally cave and emit structure
...
copies with memcpy instead of memmove. This matches what GCC does and if it
causes a problem with a particular libc we can always fix it with a target
hook.
llvm-svn: 65699
2009-02-28 18:18:58 +00:00
Chris Lattner
d7cfc246f6
rip out __builtin_overload
...
llvm-svn: 64961
2009-02-18 22:14:55 +00:00
Daniel Dunbar
e9fcadd2a6
Use EmitVAListRef instead of EmitLValue directly to handle array decay
...
case on x86_64.
llvm-svn: 64333
2009-02-11 22:25:55 +00:00