Commit Graph

291 Commits

Author SHA1 Message Date
John McCall
e020724c3d Distinguish between assignment and initialization, and fix
some problems with the data pointer of function types.

Swift SVN r1220
2012-03-16 19:02:25 +00:00
John McCall
d76aaea2b6 Remove the outdated RValue concept; no functionality change.
Swift SVN r1216
2012-03-16 09:26:39 +00:00
John McCall
8831d35de1 The data pointer is also reference-counted.
Swift SVN r1215
2012-03-16 09:26:36 +00:00
John McCall
1f118dbda6 Basic support for Builtin.ObjectPointer as a completely
opaque type.  Also some rudimentary support for retain/release.

Swift SVN r1214
2012-03-16 09:26:32 +00:00
Eli Friedman
2c4cc01fee Make sure we consistently assign LLVM IR names to both function parameters and allocas created for those parameters. <rdar://problem/10934320>.
Swift SVN r1211
2012-03-15 00:04:07 +00:00
Eli Friedman
d466059220 Add support for IRGen for $0 etc.
Swift SVN r1210
2012-03-14 23:00:07 +00:00
Eli Friedman
a6a27d8cf3 Very basic support for closures in IRGen. Support for closures with arguments is next.
Swift SVN r1209
2012-03-14 00:10:37 +00:00
John McCall
803cff8113 Correctly emit references to oneof elements that carry no data.
These translate to implicit calls to the injection function.

Swift SVN r1116
2012-02-16 03:01:08 +00:00
John McCall
cd4c7f7818 Implement the emission of oneof injection functions. As always,
oneofs other than enums and singletons are not really implemented.

Swift SVN r1115
2012-02-16 01:57:08 +00:00
John McCall
d0f4d86f3e Use LValueType everywhere instead of the l-value value kind.
Kill off TypeJudgement.  Various fixes and improvements.



Swift SVN r1107
2012-02-06 22:47:08 +00:00
John McCall
ce7780af04 I don't think we're really getting anything out of ArgDecl
at the moment.  We can put it back if I'm wrong.



Swift SVN r1100
2012-01-26 02:08:52 +00:00
John McCall
b85ddcb34a IR generation for curried functions. For now, parameters
are stored in a malloc'ed buffer that gets leaked.



Swift SVN r1092
2012-01-19 23:29:49 +00:00
John McCall
b7e0b0ee06 Now that TupleTypeElts tell us directly what ArgDecls
are bound, bind ArgDecls correctly in uncurried functions.



Swift SVN r1080
2012-01-18 07:39:57 +00:00
John McCall
9c63d1e7e6 Fix a bug with curried function emission and teach the mangler
to differentiate uncurried and curried function types.



Swift SVN r1059
2012-01-17 08:08:47 +00:00
John McCall
0e638a02ea IR generation for plus func references. I'm not convinced
that we should permit these references, really.



Swift SVN r1025
2012-01-12 21:27:26 +00:00
John McCall
286abfc5f7 Mostly kill off RValue. More tomorrow. :)
Swift SVN r1020
2012-01-12 10:18:40 +00:00
John McCall
885783ab76 Start switching things over to using explosions.
Swift SVN r1014
2012-01-12 07:05:49 +00:00
John McCall
c7bcadf450 On further reflection and use, the concept of an RValue is not actually
very useful;  it is much more interesting to divide r-value emission
into "to arguments" and "to memory" models.  To that end, introduce a
new structure for holding an "exploded" r-value.



Swift SVN r1006
2012-01-11 23:59:57 +00:00
John McCall
632b979188 Skeletal IR gen support for ExtensionDecl.
Swift SVN r981
2011-12-23 00:30:24 +00:00
John McCall
6bb1b947d8 Emit initializers of global variables as global constructors.
This isn't the actor model for globals, but is certainly still a
valid model.



Swift SVN r975
2011-12-22 23:35:41 +00:00
John McCall
9b7fb0c227 New l-value representation.
Swift SVN r956
2011-12-22 05:28:33 +00:00
John McCall
b69d5f95cd Implement tuple shuffles.
Swift SVN r890
2011-11-18 10:10:21 +00:00
John McCall
de3c3ff04d Build an implicit expression to record the conversion
of a oneof to its underlying type.  Much better.



Swift SVN r881
2011-11-17 11:38:05 +00:00
John McCall
6c559b2ce1 More missing tuple functionality.
Swift SVN r877
2011-11-17 10:12:21 +00:00
John McCall
c21b11eb28 Add a method for conditionally trying to evaluate an expression
as its underlying l-value.  Often more efficient than evaluating
it fully into an r-value and only then transforming it.



Swift SVN r875
2011-11-17 09:32:06 +00:00
Chris Lattner
60afdf4842 switch irgen to new diags
Swift SVN r769
2011-10-20 21:29:50 +00:00
Chris Lattner
a7c7d64fa0 Switch swift to use SourceLoc instead of SMLoc.
Also use the new getAdvancedLoc() method instead of hacking
on SMLoc directly.

Also fix the warning/note/error methods to forward through ASTContext
instead of being replicated everywhere.



Swift SVN r750
2011-10-18 01:22:29 +00:00
John McCall
cb54ecc675 Emit local variables and their initializers.
Swift SVN r712
2011-09-16 04:54:15 +00:00
John McCall
2cd676bf99 IR generation for 'if' statements. Adjust the standard library
to use global functions for the relational operators, just to get
prettier IR.



Swift SVN r679
2011-09-02 19:02:36 +00:00
John McCall
060c8c5d32 Emit l-values and assignment statements.
Swift SVN r677
2011-09-02 00:33:32 +00:00
John McCall
21119f3bc8 Make simple calls work. Note that parameters are working, too.
Swift SVN r670
2011-09-01 21:00:58 +00:00
John McCall
066719530c Implement rudimentary l-value and r-value emission for DeclRefExpr.
Swift's ASTs are lacking the extremely useful concept of a DeclContext,
without which it's probably possible to make this work, but it'll be
extremely awkward.  Anyway, these hacks are good enough to get the
test passing again.



Swift SVN r620
2011-08-25 10:33:05 +00:00
John McCall
ca0c671726 IR generation for tuple literals.
Swift SVN r619
2011-08-25 09:50:26 +00:00
John McCall
156c029718 Implement return statements; add some related infrastructure,
including a new file for control flow code.



Swift SVN r617
2011-08-25 09:09:58 +00:00
John McCall
64c72579b4 Flesh out more unimplemented stuff.
Swift SVN r612
2011-08-25 08:30:41 +00:00
John McCall
e200bed904 Basic framework for emitting Swift statements.
Swift SVN r611
2011-08-25 08:21:06 +00:00
John McCall
b2bbab90f4 Build function emission around emitting a FuncExpr instead of a FuncDecl.
Swift SVN r610
2011-08-25 07:55:02 +00:00
John McCall
e749b07d97 Break down expressions; some more unimplemented support.
Swift SVN r609
2011-08-25 07:47:56 +00:00
John McCall
b60d4807b8 Initial prologue/epilogue emission code. This breaks func.swift because
of the unimplemented load/store methods.



Swift SVN r604
2011-08-25 02:45:18 +00:00
John McCall
3e65b21a68 Provide r-value schemas for various implemented types. Use these to
implement function signature lowering.  Basic setup for IR generation
of functions.  Test that we can properly declare a simple function.



Swift SVN r595
2011-08-24 18:55:54 +00:00
John McCall
97c6ccadfb More IR-generation infrastructure.
Swift SVN r576
2011-08-20 05:55:02 +00:00