Created
October 31, 2012 15:43
-
-
Save eholk/3987756 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ;; original program | |
| (module | |
| (define (main) | |
| (let ((x (vector-r r1 1 2 3 4)) | |
| (y (vector-r r2 1 2 3 4))) | |
| (return 0)))) | |
| ;; before infer-regions | |
| (module (fn main () (() -> int) (input-regions ()) | |
| (output-regions ()) | |
| (let-region (mainregion_5) | |
| (let ([v_3 (vec int) (make-vector-r int r1 (int 4))]) | |
| (begin | |
| (set! (vector-ref int (var (vec int) v_3) (int 0)) (int 1)) | |
| (set! (vector-ref int (var (vec int) v_3) (int 1)) (int 2)) | |
| (set! (vector-ref int (var (vec int) v_3) (int 2)) (int 3)) | |
| (set! (vector-ref int (var (vec int) v_3) (int 3)) (int 4)) | |
| (let ([x_2 (vec int) (var (vec int) v_3)]) | |
| (let ([v_4 (vec int) (make-vector-r int r2 (int 4))]) | |
| (begin | |
| (set! (vector-ref int (var (vec int) v_4) (int 0)) | |
| (int 1)) | |
| (set! (vector-ref int (var (vec int) v_4) (int 1)) | |
| (int 2)) | |
| (set! (vector-ref int (var (vec int) v_4) (int 2)) | |
| (int 3)) | |
| (set! (vector-ref int (var (vec int) v_4) (int 3)) | |
| (int 4)) | |
| (let ([y_1 (vec int) (var (vec int) v_4)]) | |
| (return (int 0))))))))))) | |
| ;; after infer-regions | |
| (module (fn main () (() -> int) (input-regions ()) | |
| (output-regions ()) | |
| (let-region (_.0) | |
| (let ([v_3 (vec r1 int) (make-vector int (int 4))]) | |
| (begin | |
| (set! (vector-ref int (var (vec r1 int) v_3) (int 0)) | |
| (int 1)) | |
| (set! (vector-ref int (var (vec r1 int) v_3) (int 1)) | |
| (int 2)) | |
| (set! (vector-ref int (var (vec r1 int) v_3) (int 2)) | |
| (int 3)) | |
| (set! (vector-ref int (var (vec r1 int) v_3) (int 3)) | |
| (int 4)) | |
| (let ([x_2 (vec r1 int) (var (vec r1 int) v_3)]) | |
| (let ([v_4 (vec r2 int) (make-vector int (int 4))]) | |
| (begin | |
| (set! (vector-ref int (var (vec r2 int) v_4) (int 0)) | |
| (int 1)) | |
| (set! (vector-ref int (var (vec r2 int) v_4) (int 1)) | |
| (int 2)) | |
| (set! (vector-ref int (var (vec r2 int) v_4) (int 2)) | |
| (int 3)) | |
| (set! (vector-ref int (var (vec r2 int) v_4) (int 3)) | |
| (int 4)) | |
| (let ([y_1 (vec r2 int) (var (vec r2 int) v_4)]) | |
| (return (int 0))))))))))) | |
| ;; after infer-regions, without the mistake. | |
| (module (fn main () (() -> int) (input-regions ()) | |
| (output-regions ()) | |
| (let-region (mainregion_5) | |
| (let ([v_3 (vec r1 int) (make-vector int (int 4))]) | |
| (begin | |
| (set! (vector-ref int (var (vec r1 int) v_3) (int 0)) | |
| (int 1)) | |
| (set! (vector-ref int (var (vec r1 int) v_3) (int 1)) | |
| (int 2)) | |
| (set! (vector-ref int (var (vec r1 int) v_3) (int 2)) | |
| (int 3)) | |
| (set! (vector-ref int (var (vec r1 int) v_3) (int 3)) | |
| (int 4)) | |
| (let ([x_2 (vec r1 int) (var (vec r1 int) v_3)]) | |
| (let ([v_4 (vec r2 int) (make-vector int (int 4))]) | |
| (begin | |
| (set! (vector-ref int (var (vec r2 int) v_4) (int 0)) | |
| (int 1)) | |
| (set! (vector-ref int (var (vec r2 int) v_4) (int 1)) | |
| (int 2)) | |
| (set! (vector-ref int (var (vec r2 int) v_4) (int 2)) | |
| (int 3)) | |
| (set! (vector-ref int (var (vec r2 int) v_4) (int 3)) | |
| (int 4)) | |
| (let ([y_1 (vec r2 int) (var (vec r2 int) v_4)]) | |
| (return (int 0))))))))))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment