Commit Graph

960 Commits

Author SHA1 Message Date
Joe Groff
1459512901 IRGen: SIL tuple helper instructions.
Implement ElementAddrInst for lvalue tuples, and implement the AllocArray, IndexAddr, and IntegerValue insts used to lower variadic tuples. (Actually compiling code that uses variadic tuples still requires support for SpecializeInst and generic functions.)

Swift SVN r3781
2013-01-17 18:17:39 +00:00
Joe Groff
312e4872e9 IRGen: SIL class accessors.
Implement IRGen for RefElementAddr so that class accessors work. Add a loadUnmanaged method to TypeInfo classes so that we can populate Explosions without accruing unwanted cleanups.

Swift SVN r3779
2013-01-16 22:12:21 +00:00
Joe Groff
7e57041393 IRGen: SIL struct manipulation.
Implement ElementRefInst so that struct accessors work. Also extend SILConstant lowering to support constant_refs to constructors, destructors, and property accessors so that constructor and property accessor references work. (Constructors don't yet get visited by IRGenSIL, though.)

Swift SVN r3776
2013-01-16 19:04:08 +00:00
Joe Groff
30a5493250 IRGen: Lower SIL retain instruction.
Oops, I did release but not retain. Like 'release' it currently just does emitRetainCall without checking if the type in question requires ObjC or some other future kind of memory management.

Swift SVN r3770
2013-01-16 01:20:17 +00:00
Joe Groff
afa65ef3f4 IRGen: SIL function arguments and return values.
Lower arguments and value returns instead of assuming all functions are () -> ().

Swift SVN r3769
2013-01-16 01:20:15 +00:00
Joe Groff
8320df8b9d IRGen: SIL branching and variable allocation.
Implement SIL-to-IR lowering for allocation, deallocation, load, store, and branching instructions so that local variables and branching control flow can be used. Add a Fibonacci loop test to exercise the new instructions.

Swift SVN r3767
2013-01-15 22:32:49 +00:00
Dave Zarzycki
3b1aef5422 Fix an unused variable build warning
Swift SVN r3763
2013-01-14 22:40:23 +00:00
Dave Zarzycki
7c136717a5 Fix a build warning (missing newline at EOF)
Swift SVN r3762
2013-01-14 22:21:43 +00:00
Joe Groff
0970a18e7d IRGen: Compile the toplevel through SIL.
If IRGenModule has a SILModule, use its toplevel Function to emit the top-level code instead of re-walking TopLevelCodeDecls itself.

Swift SVN r3761
2013-01-14 18:33:08 +00:00
Joe Groff
9259c0d912 IRGen: Get "hello world" to compile through SIL.
Add a path through IRGenModule to optionally codegen FuncDecls using their corresponding SIL Functions when constructed with a SILModule. Jury-rig an IRGenSILFunction subclass of IRGenFunction that does the bare minimum necessary to compile "hello world" from SIL. There are some impedance mismatches between irgen and SIL that need to be smoothed out, particularly the AST-dependent way irgen currently handles function calls. Nonetheless, `swift -sil-i hello.swift` works!

Swift SVN r3759
2013-01-14 02:57:11 +00:00