Skip to content

Commit b5e151c

Browse files
authored
Merge pull request #1 from philipturner/philipturner-patch-4-pt-1
Update DifferentiableProgrammingImplementation.md
2 parents cd2fbec + 2a91600 commit b5e151c

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

docs/DifferentiableProgrammingImplementation.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,7 @@ func m(_ x: Float) -> Float {
602602
return j(retVal)
603603
}
604604

605-
bb0(args):
605+
bb0(args...):
606606
// ...
607607
// %diff_func is the differential of `f` gotten from a JVP call earlier in the
608608
// basic block code.
@@ -611,10 +611,10 @@ bb0(args…):
611611
%bb0_diff_field = struct_element_addr %bb0_struct.diff_f
612612
store %diff_func to %bb0_diff_field // store diff func.
613613
%bb0_payload_ptr = address_to_pointer %bb0_struct
614-
cond_br %condition, bb0_bb1_tramp(args, %bb0_payload_ptr),
615-
bb0_bb2_tramp(args, %bb0_payload_ptr)
614+
cond_br %condition, bb0_bb1_tramp(args..., %bb0_payload_ptr),
615+
bb0_bb2_tramp(args..., %bb0_payload_ptr)
616616

617-
bb0_bb1_trampbb1(args, %bb0_payload_ptr):
617+
bb0_bb1_trampbb1(args..., %bb0_payload_ptr):
618618
%bb0_succ = enum $EnumBB0.BB1 // bb0 succ inst.
619619
%succ_addr = struct_element_addr %bb0_payload_ptr.succ // bb0 succ address.
620620
// store the memory alloc’d struct to the succ field in bb0.
@@ -623,9 +623,9 @@ bb0_bb1_trampbb1(args…, %bb0_payload_ptr):
623623
%bb1_payload_addr = init_enum_data_addr %succ_addr.BB1
624624
// Can’t pass addresses to basic blocks, need to convert to pointer.
625625
%bb1_payload_ptr = address_to_pointer %bb1_payload_addr
626-
br bb1(args, %bb1_payload_ptr)
626+
br bb1(args..., %bb1_payload_ptr)
627627

628-
bb0_bb2_tramp(args, %bb0_struct):
628+
bb0_bb2_tramp(args..., %bb0_struct):
629629
%bb0_succ = enum $EnumBB0.BB2 // bb0 succ inst.
630630
%succ_addr = struct_element_addr %bb0_struct.succ // bb0 succ address.
631631
// store the memory alloc’d struct to the succ field in bb0.
@@ -634,17 +634,17 @@ bb0_bb2_tramp(args…, %bb0_struct):
634634
%bb2_payload_addr = init_enum_data_addr %succ_addr.BB2
635635
// Can’t pass addresses to basic blocks, need to convert to pointer.
636636
%bb2_payload_ptr = address_to_pointer %bb2_payload_addr
637-
br bb2(args, %bb2_payload_ptr)
637+
br bb2(args..., %bb2_payload_ptr)
638638

639-
bb1(args, %bb1_payload_ptr):
639+
bb1(args..., %bb1_payload_ptr):
640640
// ...
641641
// %diff_func_ is the differential of `g` gotten from a JVP call earlier in the
642642
// basic block code.
643643
%bb1_diff_field = struct_element_addr %bb1_payload_ptr.diff_g
644644
store %diff_func to %bb1_diff_field : $*(Float) -> Float // store diff func.
645-
br bb1_bb3_tramp(args, %bb1_payload_ptr)
645+
br bb1_bb3_tramp(args..., %bb1_payload_ptr)
646646

647-
bb1_bb3_trampbb1(args, %bb1_payload_ptr):
647+
bb1_bb3_trampbb1(args..., %bb1_payload_ptr):
648648
%succ_addr = enum $EnumBB1.BB3 // bb1 succ inst.
649649
// get bb1 succ address from inside bb0
650650
%succ_addr = struct_element_addr %bb1_payload_ptr.succ // bb1 succ address.
@@ -654,17 +654,17 @@ bb1_bb3_trampbb1(args…, %bb1_payload_ptr):
654654
%bb3_payload_addr = init_enum_data_addr %succ_addr.BB3
655655
// Can’t pass addresses to basic blocks, need to convert to pointer.
656656
%bb3_payload_ptr = address_to_pointer %bb3_payload_addr
657-
br bb3(args, %bb3_payload_ptr)
657+
br bb3(args..., %bb3_payload_ptr)
658658

659-
bb2(args, %bb2_payload_ptr):
659+
bb2(args..., %bb2_payload_ptr):
660660
// ...
661661
// %diff_func_h is the differential of `h` gotten from a JVP call earlier in the
662662
// basic block code.
663663
%bb2_diff_field = struct_element_addr %bb2_payload_ptr.diff_h
664664
store %diff_func_h to %bb2_diff_field // store diff func.
665-
br bb2_bb3_tramp(args, %bb2_payload_ptr)
665+
br bb2_bb3_tramp(args..., %bb2_payload_ptr)
666666

667-
bb2_bb3_tramp(args, %bb0_struct, %bb2_payload_ptr):
667+
bb2_bb3_tramp(args..., %bb0_struct, %bb2_payload_ptr):
668668
%55 = enum $EnumBB2, #EnumBB2.BB3!enumelt.1, undef : $StructBB3 // bb2 succ inst.
669669
// get bb2 succ address from inside bb0.
670670
%succ_addr = struct_element_addr %bb2_payload_ptr : $*StructBB2, #StructBB2.succ
@@ -674,9 +674,9 @@ bb2_bb3_tramp(args…, %bb0_struct, %bb2_payload_ptr):
674674
%bb3_payload_addr = init_enum_data_addr %succ_addr.BB3
675675
// Can’t pass addresses to basic blocks, need to convert to pointer.
676676
%bb3_payload_ptr = address_to_pointer %bb3_payload_addr
677-
br bb3(args, %bb3_payload_ptr)
677+
br bb3(args..., %bb3_payload_ptr)
678678

679-
bb3(args, %bb3_payload_ptr):
679+
bb3(args..., %bb3_payload_ptr):
680680
// %diff_func_j is the differential of `j` gotten from a JVP call earlier in the
681681
// basic block code.
682682
%bb3_diff_field = struct_element_addr %bb3_payload_ptr.diff_j

0 commit comments

Comments
 (0)