Commits
Chris Lattner committed 7a8349f5c5f
several improvements to CFG printer.
Finish implementing the basics of AllocVarInst
Stub out support for (initialized) NamedPatterns.
We now compile:
func named_pattern() -> Int {
var local_var : Int = 4
return local_var
}
Into:
bb0: ; Preds:
%0 = alloc_var local_var, type=[byref(heap)] Int
* %1 = constantref convertFromIntegerLiteral, type=metatype<Int64> -> (val : Builtin.Int64) -> Int
* %2 = typeof metatype<Int64>
* %3 = apply %1(%2)
* %4 = integerliteral 4, width=64
* %5 = apply %3(%4)
%6 = store %5 -> %0 [initialization]
%7 = varref local_var, type=Int
%8 = load %7
%9 = return (%8)
... where the *'d instructions are all the nonsense currently used to generate "4" as a value.
The alloc_var and store feel right to me, but varref now needs to go away, and the zero initialized case is still missing.
Swift SVN r2969