Created
October 30, 2023 04:10
-
-
Save zhen8838/c579bbf43d4bfe3c3e53c828ce9ce507 to your computer and use it in GitHub Desktop.
This file contains 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
Saved variable root of type int32 | |
Saved variable i of type int32 | |
Saved variable j of type int32 | |
Saved variable c of type int32 | |
Saved variable t0 of type int32 | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7183 computation] | |
| Constructing an unscheduled computation. | |
| Creating computation input | |
| Constructed iteration domain: {input[i, j, c] : 0<=i<100 and 0<=j<200 and 0<=c<3} | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6972 init_computation] | |
| | Constructing the computation: {input[i, j, c] : 0<=i<100 and 0<=j<200 and 0<=c<3} | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2766 name_unnamed_iteration_domain_dimensions] | |
| | | named unnameed iteration domain: { input[i, j, c] : 0 <= i <= 99 and 0 <= j <= 199 and 0 <= c <= 2 } | |
| | Constructing the computation name: input | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1812 add_computation] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7708 set_identity_schedule_based_on_iteration_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7643 gen_identity_schedule_for_iteration_domain] | |
| | | The following identity schedule is generated (setting schedule 0): | |
| | | { input[i, j, c] -> input[0, 0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 99 and 0 <= j <= 199 and 0 <= c <= 2 } | |
| | | The identity schedule for the original computation is set. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7821 set_expression] | |
| | | The original expression is: | |
| | | { | |
| | | | |
| | | } | |
| | | Traversing the expression to replace non-affine accesses by a constant definition. | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | Input expression: | |
| | | The new expression is: | |
| | | { | |
| | | | |
| | | } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2788 get_iteration_domain_dimension_names] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 0 | |
| | | Setting the name of the domain of the schedule dimension 0 into t1 | |
| | | The schedule after renaming: { input[t1, j, c] -> input[0, 0, i = t1, 0, j' = j, 0, c' = c, 0] : 0 <= t1 <= 99 and 0 <= j <= 199 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 1 | |
| | | Setting the name of the domain of the schedule dimension 1 into t2 | |
| | | The schedule after renaming: { input[t1, t2, c] -> input[0, 0, i = t1, 0, j = t2, 0, c' = c, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 2 | |
| | | Setting the name of the domain of the schedule dimension 2 into t3 | |
| | | The schedule after renaming: { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 0 | |
| | | Setting the name of loop level 0 into i | |
| | | The schedule after renaming: { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 1 | |
| | | Setting the name of loop level 1 into j | |
| | | The schedule after renaming: { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 2 | |
| | | Setting the name of loop level 2 into c | |
| | | The schedule after renaming: { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | Searching computation input | |
| | Computation found. | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6764 buffer] | |
| | Constructed buffer :_input_b0 [(100 - 0), (200 - 0), (3 - 0), ] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7865 store_in] | |
| | Binding. The following access function is set: { input[i, j, c] -> _input_b0[i' = i, j' = j, c' = c] } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7596 set_access] | |
| | | Setting access { input[i, j, c] -> _input_b0[i' = i, j' = j, c' = c] } for computation input | |
| | | Searching computation input | |
| | | Computation found. | |
| | | Searching computation input | |
| | | Computation found. | |
| Constructed computation: | | Dumping the computation "input" : | |
| | Iteration domain of the computation "input" : { input[i, j, c] : 0 <= i <= 99 and 0 <= j <= 199 and 0 <= c <= 2 } | |
| | | Dumping the schedule of the computation input : | |
| | | { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | Expression of the computation : | |
| | Access relation of the computation : { input[i, j, c] -> _input_b0[i' = i, j' = j, c' = c] } | |
| | Computation to be scheduled ? 0 | |
| | Halide statement: | |
| | NULL | |
Saved variable t4 of type int32 | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7183 computation] | |
| Constructing a scheduled computation. | |
| Creating computation cp1 | |
| Constructed iteration domain: {cp1[i, j, c] : 0<=i<98 and 0<=j<198 and 0<=c<3} | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6972 init_computation] | |
| | Constructing the computation: {cp1[i, j, c] : 0<=i<98 and 0<=j<198 and 0<=c<3} | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2766 name_unnamed_iteration_domain_dimensions] | |
| | | named unnameed iteration domain: { cp1[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Constructing the computation name: cp1 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1812 add_computation] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7708 set_identity_schedule_based_on_iteration_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7643 gen_identity_schedule_for_iteration_domain] | |
| | | The following identity schedule is generated (setting schedule 0): | |
| | | { cp1[i, j, c] -> cp1[0, 0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | The identity schedule for the original computation is set. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7821 set_expression] | |
| | | The original expression is: | |
| | | { | |
| | | input(i, j, c) | |
| | | } | |
| | | Traversing the expression to replace non-affine accesses by a constant definition. | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | Input expression: input(i, j, c) | |
| | | | Looking for non-affine accesses in an o_access. | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | Input expression: i | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | Input expression: j | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | Input expression: c | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | The new expression is: | |
| | | { | |
| | | input(i, j, c) | |
| | | } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2788 get_iteration_domain_dimension_names] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 0 | |
| | | Setting the name of the domain of the schedule dimension 0 into t5 | |
| | | The schedule after renaming: { cp1[t5, j, c] -> cp1[0, 0, i = t5, 0, j' = j, 0, c' = c, 0] : 0 <= t5 <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 1 | |
| | | Setting the name of the domain of the schedule dimension 1 into t6 | |
| | | The schedule after renaming: { cp1[t5, t6, c] -> cp1[0, 0, i = t5, 0, j = t6, 0, c' = c, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 2 | |
| | | Setting the name of the domain of the schedule dimension 2 into t7 | |
| | | The schedule after renaming: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 0 | |
| | | Setting the name of loop level 0 into i | |
| | | The schedule after renaming: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 1 | |
| | | Setting the name of loop level 1 into j | |
| | | The schedule after renaming: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 2 | |
| | | Setting the name of loop level 2 into c | |
| | | The schedule after renaming: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | Searching computation cp1 | |
| | Computation found. | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6764 buffer] | |
| | Constructed buffer :_cp1_b1 [(98 - 0), (198 - 0), (3 - 0), ] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7865 store_in] | |
| | Binding. The following access function is set: { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7596 set_access] | |
| | | Setting access { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } for computation cp1 | |
| | | Searching computation cp1 | |
| | | Computation found. | |
| | | Searching computation cp1 | |
| | | Computation found. | |
| Constructed computation: | | Dumping the computation "cp1" : | |
| | Iteration domain of the computation "cp1" : { cp1[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Dumping the schedule of the computation cp1 : | |
| | | { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | Expression of the computation : input(i, j, c) | |
| | Access relation of the computation : { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | Computation to be scheduled ? 1 | |
| | Halide statement: | |
| | NULL | |
Saved variable t8 of type int32 | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7183 computation] | |
| Constructing a scheduled computation. | |
| Creating computation bx | |
| Constructed iteration domain: {bx[i, j, c] : 0<=i<98 and 0<=j<198 and 0<=c<3} | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6972 init_computation] | |
| | Constructing the computation: {bx[i, j, c] : 0<=i<98 and 0<=j<198 and 0<=c<3} | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2766 name_unnamed_iteration_domain_dimensions] | |
| | | named unnameed iteration domain: { bx[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Constructing the computation name: bx | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1812 add_computation] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7708 set_identity_schedule_based_on_iteration_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7643 gen_identity_schedule_for_iteration_domain] | |
| | | The following identity schedule is generated (setting schedule 0): | |
| | | { bx[i, j, c] -> bx[0, 0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | The identity schedule for the original computation is set. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7821 set_expression] | |
| | | The original expression is: | |
| | | { | |
| | | (((cp1(i, j, c) + cp1(i, (j + 1), c)) + cp1(i, (j + 2), c)) / cast(3) ) | |
| | | } | |
| | | Traversing the expression to replace non-affine accesses by a constant definition. | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | Input expression: (((cp1(i, j, c) + cp1(i, (j + 1), c)) + cp1(i, (j + 2), c)) / cast(3) ) | |
| | | | Extracting access from e_op. | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | Input expression: ((cp1(i, j, c) + cp1(i, (j + 1), c)) + cp1(i, (j + 2), c)) | |
| | | | | Extracting access from e_op. | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | Input expression: (cp1(i, j, c) + cp1(i, (j + 1), c)) | |
| | | | | | Extracting access from e_op. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | Input expression: cp1(i, j, c) | |
| | | | | | | Looking for non-affine accesses in an o_access. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: i | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: j | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: c | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | Input expression: cp1(i, (j + 1), c) | |
| | | | | | | Looking for non-affine accesses in an o_access. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: i | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: (j + 1) | |
| | | | | | | | Extracting access from e_op. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | | Input expression: j | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | | Input expression: 1 | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: c | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | Input expression: cp1(i, (j + 2), c) | |
| | | | | | Looking for non-affine accesses in an o_access. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | Input expression: i | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | Input expression: (j + 2) | |
| | | | | | | Extracting access from e_op. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: j | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: 2 | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | Input expression: c | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | Input expression: cast(3) | |
| | | | | Extracting access from e_op. | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | Input expression: 3 | |
| | | The new expression is: | |
| | | { | |
| | | (((cp1(i, j, c) + cp1(i, (j + 1), c)) + cp1(i, (j + 2), c)) / cast(3) ) | |
| | | } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2788 get_iteration_domain_dimension_names] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 0 | |
| | | Setting the name of the domain of the schedule dimension 0 into t9 | |
| | | The schedule after renaming: { bx[t9, j, c] -> bx[0, 0, i = t9, 0, j' = j, 0, c' = c, 0] : 0 <= t9 <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 1 | |
| | | Setting the name of the domain of the schedule dimension 1 into t10 | |
| | | The schedule after renaming: { bx[t9, t10, c] -> bx[0, 0, i = t9, 0, j = t10, 0, c' = c, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 2 | |
| | | Setting the name of the domain of the schedule dimension 2 into t11 | |
| | | The schedule after renaming: { bx[t9, t10, t11] -> bx[0, 0, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 0 | |
| | | Setting the name of loop level 0 into i | |
| | | The schedule after renaming: { bx[t9, t10, t11] -> bx[0, 0, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 1 | |
| | | Setting the name of loop level 1 into j | |
| | | The schedule after renaming: { bx[t9, t10, t11] -> bx[0, 0, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 2 | |
| | | Setting the name of loop level 2 into c | |
| | | The schedule after renaming: { bx[t9, t10, t11] -> bx[0, 0, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | Searching computation bx | |
| | Computation found. | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6764 buffer] | |
| | Constructed buffer :_bx_b2 [(98 - 0), (198 - 0), (3 - 0), ] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7865 store_in] | |
| | Binding. The following access function is set: { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7596 set_access] | |
| | | Setting access { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } for computation bx | |
| | | Searching computation bx | |
| | | Computation found. | |
| | | Searching computation bx | |
| | | Computation found. | |
| Constructed computation: | | Dumping the computation "bx" : | |
| | Iteration domain of the computation "bx" : { bx[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Dumping the schedule of the computation bx : | |
| | | { bx[t9, t10, t11] -> bx[0, 0, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | Expression of the computation : (((cp1(i, j, c) + cp1(i, (j + 1), c)) + cp1(i, (j + 2), c)) / cast(3) ) | |
| | Access relation of the computation : { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | Computation to be scheduled ? 1 | |
| | Halide statement: | |
| | NULL | |
Saved variable t12 of type int32 | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7183 computation] | |
| Constructing a scheduled computation. | |
| Creating computation by | |
| Constructed iteration domain: {by[i, j, c] : 0<=i<98 and 0<=j<198 and 0<=c<3} | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6972 init_computation] | |
| | Constructing the computation: {by[i, j, c] : 0<=i<98 and 0<=j<198 and 0<=c<3} | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2766 name_unnamed_iteration_domain_dimensions] | |
| | | named unnameed iteration domain: { by[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Constructing the computation name: by | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1812 add_computation] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7708 set_identity_schedule_based_on_iteration_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7643 gen_identity_schedule_for_iteration_domain] | |
| | | The following identity schedule is generated (setting schedule 0): | |
| | | { by[i, j, c] -> by[0, 0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | The identity schedule for the original computation is set. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7821 set_expression] | |
| | | The original expression is: | |
| | | { | |
| | | (((bx(i, j, c) + bx((i + 1), j, c)) + bx((i + 2), j, c)) / cast(3) ) | |
| | | } | |
| | | Traversing the expression to replace non-affine accesses by a constant definition. | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | Input expression: (((bx(i, j, c) + bx((i + 1), j, c)) + bx((i + 2), j, c)) / cast(3) ) | |
| | | | Extracting access from e_op. | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | Input expression: ((bx(i, j, c) + bx((i + 1), j, c)) + bx((i + 2), j, c)) | |
| | | | | Extracting access from e_op. | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | Input expression: (bx(i, j, c) + bx((i + 1), j, c)) | |
| | | | | | Extracting access from e_op. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | Input expression: bx(i, j, c) | |
| | | | | | | Looking for non-affine accesses in an o_access. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: i | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: j | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: c | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | Input expression: bx((i + 1), j, c) | |
| | | | | | | Looking for non-affine accesses in an o_access. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: (i + 1) | |
| | | | | | | | Extracting access from e_op. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | | Input expression: i | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | | Input expression: 1 | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: j | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: c | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | Input expression: bx((i + 2), j, c) | |
| | | | | | Looking for non-affine accesses in an o_access. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | Input expression: (i + 2) | |
| | | | | | | Extracting access from e_op. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: i | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | | Input expression: 2 | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | Input expression: j | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | | Input expression: c | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | Input expression: cast(3) | |
| | | | | Extracting access from e_op. | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | | Input expression: 3 | |
| | | The new expression is: | |
| | | { | |
| | | (((bx(i, j, c) + bx((i + 1), j, c)) + bx((i + 2), j, c)) / cast(3) ) | |
| | | } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2788 get_iteration_domain_dimension_names] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 0 | |
| | | Setting the name of the domain of the schedule dimension 0 into t13 | |
| | | The schedule after renaming: { by[t13, j, c] -> by[0, 0, i = t13, 0, j' = j, 0, c' = c, 0] : 0 <= t13 <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 1 | |
| | | Setting the name of the domain of the schedule dimension 1 into t14 | |
| | | The schedule after renaming: { by[t13, t14, c] -> by[0, 0, i = t13, 0, j = t14, 0, c' = c, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 2 | |
| | | Setting the name of the domain of the schedule dimension 2 into t15 | |
| | | The schedule after renaming: { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 0 | |
| | | Setting the name of loop level 0 into i | |
| | | The schedule after renaming: { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 1 | |
| | | Setting the name of loop level 1 into j | |
| | | The schedule after renaming: { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 2 | |
| | | Setting the name of loop level 2 into c | |
| | | The schedule after renaming: { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | Searching computation by | |
| | Computation found. | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6764 buffer] | |
| | Constructed buffer :_by_b3 [(98 - 0), (198 - 0), (3 - 0), ] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7865 store_in] | |
| | Binding. The following access function is set: { by[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7596 set_access] | |
| | | Setting access { by[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } for computation by | |
| | | Searching computation by | |
| | | Computation found. | |
| | | Searching computation by | |
| | | Computation found. | |
| Constructed computation: | | Dumping the computation "by" : | |
| | Iteration domain of the computation "by" : { by[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Dumping the schedule of the computation by : | |
| | | { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | Expression of the computation : (((bx(i, j, c) + bx((i + 1), j, c)) + bx((i + 2), j, c)) / cast(3) ) | |
| | Access relation of the computation : { by[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } | |
| | Computation to be scheduled ? 1 | |
| | Halide statement: | |
| | NULL | |
Saved variable t16 of type int32 | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7183 computation] | |
| Constructing a scheduled computation. | |
| Creating computation cp2 | |
| Constructed iteration domain: {cp2[i, j, c] : 0<=i<98 and 0<=j<198 and 0<=c<3} | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6972 init_computation] | |
| | Constructing the computation: {cp2[i, j, c] : 0<=i<98 and 0<=j<198 and 0<=c<3} | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2766 name_unnamed_iteration_domain_dimensions] | |
| | | named unnameed iteration domain: { cp2[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Constructing the computation name: cp2 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1812 add_computation] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7708 set_identity_schedule_based_on_iteration_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7643 gen_identity_schedule_for_iteration_domain] | |
| | | The following identity schedule is generated (setting schedule 0): | |
| | | { cp2[i, j, c] -> cp2[0, 0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | The identity schedule for the original computation is set. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7821 set_expression] | |
| | | The original expression is: | |
| | | { | |
| | | by(i, j, c) | |
| | | } | |
| | | Traversing the expression to replace non-affine accesses by a constant definition. | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | Input expression: by(i, j, c) | |
| | | | Looking for non-affine accesses in an o_access. | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | Input expression: i | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | Input expression: j | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:810 traverse_expr_and_replace_non_affine_accesses] | |
| | | | | Input expression: c | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:318 access_is_affine] | |
| | | The new expression is: | |
| | | { | |
| | | by(i, j, c) | |
| | | } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2788 get_iteration_domain_dimension_names] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 0 | |
| | | Setting the name of the domain of the schedule dimension 0 into t17 | |
| | | The schedule after renaming: { cp2[t17, j, c] -> cp2[0, 0, i = t17, 0, j' = j, 0, c' = c, 0] : 0 <= t17 <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 1 | |
| | | Setting the name of the domain of the schedule dimension 1 into t18 | |
| | | The schedule after renaming: { cp2[t17, t18, c] -> cp2[0, 0, i = t17, 0, j = t18, 0, c' = c, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2630 set_schedule_domain_dim_names] | |
| | | Checking the validity of loop level 2 | |
| | | Setting the name of the domain of the schedule dimension 2 into t19 | |
| | | The schedule after renaming: { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 0 | |
| | | Setting the name of loop level 0 into i | |
| | | The schedule after renaming: { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 1 | |
| | | Setting the name of loop level 1 into j | |
| | | The schedule after renaming: { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2653 set_loop_level_names] | |
| | | Checking the validity of loop level 2 | |
| | | Setting the name of loop level 2 into c | |
| | | The schedule after renaming: { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | Searching computation cp2 | |
| | Computation found. | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6764 buffer] | |
| | Constructed buffer :_cp2_b4 [(98 - 0), (198 - 0), (3 - 0), ] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7865 store_in] | |
| | Binding. The following access function is set: { cp2[i, j, c] -> _cp2_b4[i' = i, j' = j, c' = c] } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7596 set_access] | |
| | | Setting access { cp2[i, j, c] -> _cp2_b4[i' = i, j' = j, c' = c] } for computation cp2 | |
| | | Searching computation cp2 | |
| | | Computation found. | |
| | | Searching computation cp2 | |
| | | Computation found. | |
| Constructed computation: | | Dumping the computation "cp2" : | |
| | Iteration domain of the computation "cp2" : { cp2[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Dumping the schedule of the computation cp2 : | |
| | | { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | Expression of the computation : by(i, j, c) | |
| | Access relation of the computation : { cp2[i, j, c] -> _cp2_b4[i' = i, j' = j, c' = c] } | |
| | Computation to be scheduled ? 1 | |
| | Halide statement: | |
| | NULL | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2326 after] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2700 get_loop_level_numbers_from_dimension_names] | |
| | Searching for the dimension j | |
| | Searching in the range of { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | Corresponding loop level is 1 | |
| | Checking the validity of loop level 1 | |
| The loop level that corresponds to j is 1 | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2346 after] | |
| | Scheduling by to be executed after bx at level 1 | |
| | sched_graph[bx, by] = 1 | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2383 before] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2326 after] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2700 get_loop_level_numbers_from_dimension_names] | |
| | | Searching for the dimension root | |
| | | Checking the validity of loop level -1 | |
| | The loop level that corresponds to root is -1 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2346 after] | |
| | | Scheduling bx to be executed after cp1 at level -1 | |
| | | sched_graph[cp1, bx] = -1 | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2326 after] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2700 get_loop_level_numbers_from_dimension_names] | |
| | Searching for the dimension root | |
| | Checking the validity of loop level -1 | |
| The loop level that corresponds to root is -1 | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2346 after] | |
| | Scheduling cp2 to be executed after by at level -1 | |
| | sched_graph[by, cp2] = -1 | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:2535 codegen] | |
Setting type of buffer _input_b0 to input | |
Setting type of buffer _cp2_b4 to output | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:2292 gen_time_space_domain] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:2226 gen_ordering_schedules] | |
| | Number of schedule graph roots is 1 | |
| | The roots are: | |
| | * cp1@0x123093000 | |
| | Displaying schedule graph | |
| | cp1@0x123093000=[root]=>bx@0x123093600 | |
| | bx@0x123093600=[1]=>by@0x1230a5c00 | |
| | by@0x1230a5c00=[root]=>cp2@0x1230a6800 | |
| | Finished displaying schedule graph | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:884 is_sched_graph_tree] | |
| | this->is_sched_graph_tree(): true. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2100 after_low_level] | |
| | | Setting the schedule of bx after cp1 at dimension 1 | |
| | | Setting the schedule of bx to be equal to the schedule of cp1 at all the dimensions before dimension 1 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1776 align_schedules] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1716 get_max_schedules_range_dim] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | | | | After alignment, map = { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | After alignment, map = { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { bx[t9, t10, t11] -> bx[0, 0, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | After alignment, map = { bx[t9, t10, t11] -> bx[0, 0, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | After alignment, map = { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | | After alignment, map = { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | End of function | |
| | | Preparing to adjust the schedule of the computation bx | |
| | | Original schedule: { bx[t9, t10, t11] -> bx[0, 0, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | Dimension level in which ordering dimensions will be inserted : 1 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:1840 isl_map_get_static_dim] | |
| | | | Getting the constant coefficient of { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } at dimension 1 | |
| | | | Dimensions found. Constant = 0 | |
| | | | The constant is: 0 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:3305 add_eq_to_schedule_map] | |
| | | | The schedule : { bx[t9, t10, t11] -> bx[0, 0, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | Editing the dimension 1 | |
| | | | Coefficient of the input dimension 0 | |
| | | | Coefficient of the output dimension -1 | |
| | | | Coefficient of the constant 10 | |
| | | | Setting the constraint for dimension 1 | |
| | | | The identity schedule is now: { bx[i0, i1, i, i3, j, i5, c, i7] -> bx[i0, 10, i', o3, j', o5, c', o7] } | |
| | | | The transformation map is: { bx[i0, i1, i, i3, j, i5, c, i7] -> bx[i0, 10, i' = i, i3, j' = j, i5, c' = c, i7] } | |
| | | | The schedule after being transformed: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | Schedule adjusted: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2100 after_low_level] | |
| | | Setting the schedule of by after bx at dimension 5 | |
| | | Setting the schedule of by to be equal to the schedule of bx at all the dimensions before dimension 5 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1776 align_schedules] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1716 get_max_schedules_range_dim] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | | | | After alignment, map = { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | After alignment, map = { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | After alignment, map = { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | After alignment, map = { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | | After alignment, map = { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | End of function | |
| | | Preparing to adjust the schedule of the computation by | |
| | | Original schedule: { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | Dimension level in which ordering dimensions will be inserted : 5 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:1840 isl_map_get_static_dim] | |
| | | | Getting the constant coefficient of { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } at dimension 1 | |
| | | | Dimensions found. Constant = 10 | |
| | | | The constant is: 10 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:3305 add_eq_to_schedule_map] | |
| | | | The schedule : { by[t13, t14, t15] -> by[0, 0, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | Editing the dimension 1 | |
| | | | Coefficient of the input dimension 0 | |
| | | | Coefficient of the output dimension -1 | |
| | | | Coefficient of the constant 10 | |
| | | | Setting the constraint for dimension 1 | |
| | | | The identity schedule is now: { by[i0, i1, i, i3, j, i5, c, i7] -> by[i0, 10, i', o3, j', o5, c', o7] } | |
| | | | The transformation map is: { by[i0, i1, i, i3, j, i5, c, i7] -> by[i0, 10, i' = i, i3, j' = j, i5, c' = c, i7] } | |
| | | | The schedule after being transformed: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:1840 isl_map_get_static_dim] | |
| | | | Getting the constant coefficient of { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } at dimension 3 | |
| | | | Dimensions found. Constant = 0 | |
| | | | The constant is: 0 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:3305 add_eq_to_schedule_map] | |
| | | | The schedule : { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | Editing the dimension 3 | |
| | | | Coefficient of the input dimension 0 | |
| | | | Coefficient of the output dimension -1 | |
| | | | Coefficient of the constant 0 | |
| | | | Setting the constraint for dimension 3 | |
| | | | The identity schedule is now: { by[i0, i1, i, i3, j, i5, c, i7] -> by[i0, i1, i' = i, 0, j', o5, c', o7] } | |
| | | | The transformation map is: { by[i0, i1, i, i3, j, i5, c, i7] -> by[i0, i1, i' = i, 0, j' = j, i5, c' = c, i7] } | |
| | | | The schedule after being transformed: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:1840 isl_map_get_static_dim] | |
| | | | Getting the constant coefficient of { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } at dimension 5 | |
| | | | Dimensions found. Constant = 0 | |
| | | | The constant is: 0 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:3305 add_eq_to_schedule_map] | |
| | | | The schedule : { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 0, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | Editing the dimension 5 | |
| | | | Coefficient of the input dimension 0 | |
| | | | Coefficient of the output dimension -1 | |
| | | | Coefficient of the constant 10 | |
| | | | Setting the constraint for dimension 5 | |
| | | | The identity schedule is now: { by[i0, i1, i, i3, j, i5, c, i7] -> by[i0, i1, i' = i, i3, j' = j, 10, c', o7] } | |
| | | | The transformation map is: { by[i0, i1, i, i3, j, i5, c, i7] -> by[i0, i1, i' = i, i3, j' = j, 10, c' = c, i7] } | |
| | | | The schedule after being transformed: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | Schedule adjusted: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2100 after_low_level] | |
| | | Setting the schedule of cp2 after by at dimension 1 | |
| | | Setting the schedule of cp2 to be equal to the schedule of by at all the dimensions before dimension 1 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1776 align_schedules] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1716 get_max_schedules_range_dim] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | | | | After alignment, map = { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | After alignment, map = { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | After alignment, map = { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | After alignment, map = { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | | | Input map: { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | | After alignment, map = { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | | End of function | |
| | | Preparing to adjust the schedule of the computation cp2 | |
| | | Original schedule: { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | Dimension level in which ordering dimensions will be inserted : 1 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:1840 isl_map_get_static_dim] | |
| | | | Getting the constant coefficient of { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } at dimension 1 | |
| | | | Dimensions found. Constant = 10 | |
| | | | The constant is: 10 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:3305 add_eq_to_schedule_map] | |
| | | | The schedule : { cp2[t17, t18, t19] -> cp2[0, 0, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | Editing the dimension 1 | |
| | | | Coefficient of the input dimension 0 | |
| | | | Coefficient of the output dimension -1 | |
| | | | Coefficient of the constant 20 | |
| | | | Setting the constraint for dimension 1 | |
| | | | The identity schedule is now: { cp2[i0, i1, i, i3, j, i5, c, i7] -> cp2[i0, 20, i', o3, j', o5, c', o7] } | |
| | | | The transformation map is: { cp2[i0, i1, i, i3, j, i5, c, i7] -> cp2[i0, 20, i' = i, i3, j' = j, i5, c' = c, i7] } | |
| | | | The schedule after being transformed: { cp2[t17, t18, t19] -> cp2[0, 20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | Schedule adjusted: { cp2[t17, t18, t19] -> cp2[0, 20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1776 align_schedules] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1716 get_max_schedules_range_dim] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | | After alignment, map = { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | After alignment, map = { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | After alignment, map = { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | After alignment, map = { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { cp2[t17, t18, t19] -> cp2[0, 20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | After alignment, map = { cp2[t17, t18, t19] -> cp2[0, 20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:2746 name_unnamed_time_space_dimensions] | |
| End of function | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7543 gen_time_space_domain] | |
| | Iteration domain: { input[i, j, c] : 0 <= i <= 99 and 0 <= j <= 199 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:5058 intersect_set_with_context] | |
| | Iteration domain Intersect context: { input[i, j, c] : 0 <= i <= 99 and 0 <= j <= 199 and 0 <= c <= 2 } | |
| | Schedule: { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | Generated time-space domain: { input[0, 0, i, 0, j, 0, c, 0] : 0 <= i <= 99 and 0 <= j <= 199 and 0 <= c <= 2 } | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7543 gen_time_space_domain] | |
| | Iteration domain: { cp1[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:5058 intersect_set_with_context] | |
| | Iteration domain Intersect context: { cp1[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Schedule: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | Generated time-space domain: { cp1[0, 0, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7543 gen_time_space_domain] | |
| | Iteration domain: { bx[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:5058 intersect_set_with_context] | |
| | Iteration domain Intersect context: { bx[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Schedule: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | Generated time-space domain: { bx[0, 10, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7543 gen_time_space_domain] | |
| | Iteration domain: { by[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:5058 intersect_set_with_context] | |
| | Iteration domain Intersect context: { by[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Schedule: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | Generated time-space domain: { by[0, 10, i, 0, j, 10, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7543 gen_time_space_domain] | |
| | Iteration domain: { cp2[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:5058 intersect_set_with_context] | |
| | Iteration domain Intersect context: { cp2[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Schedule: { cp2[t17, t18, t19] -> cp2[0, 20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | Generated time-space domain: { cp2[0, 20, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1378 gen_isl_ast] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:2017 get_trimmed_time_processor_domain] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1737 get_aligned_identity_schedules] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1685 get_max_identity_schedules_range_dim] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { cp1[0, i, 0, j, 0, c, 0] -> [0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { cp1[0, i, 0, j, 0, c, 0] -> [0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { cp1[0, i, 0, j, 0, c, 0] -> [0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { bx[10, i, 0, j, 0, c, 0] -> [10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { bx[10, i, 0, j, 0, c, 0] -> [10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { bx[10, i, 0, j, 0, c, 0] -> [10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { by[10, i, 0, j, 10, c, 0] -> [10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { by[10, i, 0, j, 10, c, 0] -> [10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { by[10, i, 0, j, 10, c, 0] -> [10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { cp2[20, i, 0, j, 0, c, 0] -> [20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { cp2[20, i, 0, j, 0, c, 0] -> [20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { cp2[20, i, 0, j, 0, c, 0] -> [20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| End of function | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1341 rename_computations] | |
| | Searching computation input | |
| | Computation found. | |
| | Searching computation cp1 | |
| | Computation found. | |
| | Searching computation bx | |
| | Computation found. | |
| | Searching computation by | |
| | Computation found. | |
| | Searching computation cp2 | |
| | Computation found. | |
| | After renaming the computations. | |
| | | | | Function "test" | |
| | | Function arguments (tiramisu buffers): | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6867 dump] | |
| | | | Buffer "_input_b0", Number of dimensions: 3 | |
| | | | Dimension sizes: [(100 - 0), (200 - 0), (3 - 0), ] | |
| | | | Elements type: float32 | |
| | | | Function field: Not NULL | |
| | | | Argument type: input | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6867 dump] | |
| | | | Buffer "_cp2_b4", Number of dimensions: 3 | |
| | | | Dimension sizes: [(98 - 0), (198 - 0), (3 - 0), ] | |
| | | | Elements type: float32 | |
| | | | Function field: Not NULL | |
| | | | Argument type: output | |
| | | Body | |
| | | | Dumping the computation "input" : | |
| | | | Iteration domain of the computation "input" : { input[i, j, c] : 0 <= i <= 99 and 0 <= j <= 199 and 0 <= c <= 2 } | |
| | | | | Dumping the schedule of the computation input : | |
| | | | | { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | | | Expression of the computation : | |
| | | | Access relation of the computation : { input[i, j, c] -> _input_b0[i' = i, j' = j, c' = c] } | |
| | | | Time-space domain { input[0, 0, i, 0, j, 0, c, 0] : 0 <= i <= 99 and 0 <= j <= 199 and 0 <= c <= 2 } | |
| | | | Computation to be scheduled ? 0 | |
| | | | Halide statement: | |
| | | | NULL | |
| | | | Dumping the computation "cp1" : | |
| | | | Iteration domain of the computation "cp1" : { cp1[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | Dumping the schedule of the computation cp1 : | |
| | | | | { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | Expression of the computation : input(i, j, c) | |
| | | | Access relation of the computation : { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | Time-space domain { cp1[0, 0, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Computation to be scheduled ? 1 | |
| | | | Halide statement: | |
| | | | NULL | |
| | | | Dumping the computation "bx" : | |
| | | | Iteration domain of the computation "bx" : { bx[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | Dumping the schedule of the computation bx : | |
| | | | | { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | Expression of the computation : (((cp1(i, j, c) + cp1(i, (j + 1), c)) + cp1(i, (j + 2), c)) / cast(3) ) | |
| | | | Access relation of the computation : { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | Time-space domain { bx[0, 10, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Computation to be scheduled ? 1 | |
| | | | Halide statement: | |
| | | | NULL | |
| | | | Dumping the computation "by" : | |
| | | | Iteration domain of the computation "by" : { by[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | Dumping the schedule of the computation by : | |
| | | | | { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | Expression of the computation : (((bx(i, j, c) + bx((i + 1), j, c)) + bx((i + 2), j, c)) / cast(3) ) | |
| | | | Access relation of the computation : { by[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } | |
| | | | Time-space domain { by[0, 10, i, 0, j, 10, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Computation to be scheduled ? 1 | |
| | | | Halide statement: | |
| | | | NULL | |
| | | | Dumping the computation "cp2" : | |
| | | | Iteration domain of the computation "cp2" : { cp2[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | Dumping the schedule of the computation cp2 : | |
| | | | | { cp2[t17, t18, t19] -> cp2[0, 20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | Expression of the computation : by(i, j, c) | |
| | | | Access relation of the computation : { cp2[i, j, c] -> _cp2_b4[i' = i, j' = j, c' = c] } | |
| | | | Time-space domain { cp2[0, 20, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Computation to be scheduled ? 1 | |
| | | | Halide statement: | |
| | | | NULL | |
| | | Buffers: | |
| | | Buffer name: _bx_b2 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6867 dump] | |
| | | | Buffer "_bx_b2", Number of dimensions: 3 | |
| | | | Dimension sizes: [(98 - 0), (198 - 0), (3 - 0), ] | |
| | | | Elements type: float32 | |
| | | | Function field: Not NULL | |
| | | | Argument type: temporary | |
| | | Buffer name: _by_b3 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6867 dump] | |
| | | | Buffer "_by_b3", Number of dimensions: 3 | |
| | | | Dimension sizes: [(98 - 0), (198 - 0), (3 - 0), ] | |
| | | | Elements type: float32 | |
| | | | Function field: Not NULL | |
| | | | Argument type: temporary | |
| | | Buffer name: _cp1_b1 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6867 dump] | |
| | | | Buffer "_cp1_b1", Number of dimensions: 3 | |
| | | | Dimension sizes: [(98 - 0), (198 - 0), (3 - 0), ] | |
| | | | Elements type: float32 | |
| | | | Function field: Not NULL | |
| | | | Argument type: temporary | |
| | | Buffer name: _cp2_b4 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6867 dump] | |
| | | | Buffer "_cp2_b4", Number of dimensions: 3 | |
| | | | Dimension sizes: [(98 - 0), (198 - 0), (3 - 0), ] | |
| | | | Elements type: float32 | |
| | | | Function field: Not NULL | |
| | | | Argument type: output | |
| | | Buffer name: _input_b0 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6867 dump] | |
| | | | Buffer "_input_b0", Number of dimensions: 3 | |
| | | | Dimension sizes: [(100 - 0), (200 - 0), (3 - 0), ] | |
| | | | Elements type: float32 | |
| | | | Function field: Not NULL | |
| | | | Argument type: input | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1737 get_aligned_identity_schedules] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1685 get_max_identity_schedules_range_dim] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { cp1[0, i, 0, j, 0, c, 0] -> [0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { cp1[0, i, 0, j, 0, c, 0] -> [0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { cp1[0, i, 0, j, 0, c, 0] -> [0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { bx[10, i, 0, j, 0, c, 0] -> [10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { bx[10, i, 0, j, 0, c, 0] -> [10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { bx[10, i, 0, j, 0, c, 0] -> [10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { by[10, i, 0, j, 10, c, 0] -> [10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { by[10, i, 0, j, 10, c, 0] -> [10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { by[10, i, 0, j, 10, c, 0] -> [10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { cp2[20, i, 0, j, 0, c, 0] -> [20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { cp2[20, i, 0, j, 0, c, 0] -> [20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { cp2[20, i, 0, j, 0, c, 0] -> [20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| End of function | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:2017 get_trimmed_time_processor_domain] | |
| Schedule: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2; cp2[t17, t18, t19] -> cp2[0, 20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2; cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2; bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| Iteration domain: { cp1[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; cp2[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; by[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; bx[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:2017 get_trimmed_time_processor_domain] | |
Trimmed Time-Processor domain: { bx[10, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; cp1[0, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; by[10, i, 0, j, 10, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; cp2[20, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1737 get_aligned_identity_schedules] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1685 get_max_identity_schedules_range_dim] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { cp1[0, i, 0, j, 0, c, 0] -> [0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { cp1[0, i, 0, j, 0, c, 0] -> [0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { cp1[0, i, 0, j, 0, c, 0] -> [0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { bx[10, i, 0, j, 0, c, 0] -> [10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { bx[10, i, 0, j, 0, c, 0] -> [10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { bx[10, i, 0, j, 0, c, 0] -> [10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { by[10, i, 0, j, 10, c, 0] -> [10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { by[10, i, 0, j, 10, c, 0] -> [10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { by[10, i, 0, j, 10, c, 0] -> [10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7684 gen_identity_schedule_for_time_space_domain] | |
| | Identity schedule for time space domain: { cp2[20, i, 0, j, 0, c, 0] -> [20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:29 isl_map_align_range_dims] | |
| | | Input map: { cp2[20, i, 0, j, 0, c, 0] -> [20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | After alignment, map = { cp2[20, i, 0, j, 0, c, 0] -> [20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| End of function | |
Trimmed Time-Processor aligned identity schedule: { bx[10, i, 0, j, 0, c, 0] -> [10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; cp1[0, i, 0, j, 0, c, 0] -> [0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; cp2[20, i, 0, j, 0, c, 0] -> [20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; by[10, i, 0, j, 10, c, 0] -> [10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| Identity schedule intersect trimmed Time-Processor domain: { cp2[20, i, 0, j, 0, c, 0] -> [20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; bx[10, i, 0, j, 0, c, 0] -> [10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; cp1[0, i, 0, j, 0, c, 0] -> [0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2; by[10, i, 0, j, 10, c, 0] -> [10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1304 stmt_code_generator] | |
| | Searching computation cp1 | |
| | Computation found. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:544 filter_computations_by_domain] | |
| | | Filtering computations by ISL AST domain. | |
| | | ISL AST node domain: { cp1[0, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Checking computation cp1 | |
| | | Domain of the computation { cp1[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Domain of the computation in time-space domain { cp1[0, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Intersecting the set: { cp1[0, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | With the set: { cp1[0, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Intersection { cp1[0, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | This computation is accepted by the filter (intersection non-empty). | |
| | Computation: cp1 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | Getting the access of the computation cp1 adapted to time-space. | |
| | | Original access: { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | Original schedule: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | Trimmed schedule to apply: { cp1[t5, t6, t7] -> cp1[0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | Transformed access: { cp1[0, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:958 get_rhs_accesses] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | Extracting access from o_access. | |
| | | | Searching computation input | |
| | | | Computation found. | |
| | | | Obtained accessed computation. | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:112 create_map_from_domain_and_range] | |
| | | | | Domain: { cp1[i, j, c] } | |
| | | | | Range: { input[i, j, c] } | |
| | | | | Transformation map: { cp1[i, j, c] -> input[i', j', c'] } | |
| | | | | Transformation map after adding equality constraints: { cp1[i, j, c] -> input[i' = i, j' = j, c' = c] } | |
| | | | Transformation map before adding constraints: { cp1[i, j, c] -> input[i', j', c'] } | |
| | | | Assigning 1 to the coefficient of output dimension 0 | |
| | | | Looking for a dimension named i in the domain of { cp1[i, j, c] -> input[i', j', c'] } | |
| | | | Dimension found. Assigning -1 to the input coefficient of dimension 0 | |
| | | | After adding a constraint: { cp1[i, j, c] -> input[i' = i, j', c'] } | |
| | | | Assigning 1 to the coefficient of output dimension 1 | |
| | | | Looking for a dimension named j in the domain of { cp1[i, j, c] -> input[i' = i, j', c'] } | |
| | | | Dimension found. Assigning -1 to the input coefficient of dimension 1 | |
| | | | After adding a constraint: { cp1[i, j, c] -> input[i' = i, j' = j, c'] } | |
| | | | Assigning 1 to the coefficient of output dimension 2 | |
| | | | Looking for a dimension named c in the domain of { cp1[i, j, c] -> input[i' = i, j' = j, c'] } | |
| | | | Dimension found. Assigning -1 to the input coefficient of dimension 2 | |
| | | | After adding a constraint: { cp1[i, j, c] -> input[i' = i, j' = j, c' = c] } | |
| | | | Transformation function after adding constraints: { cp1[i, j, c] -> input[i' = i, j' = j, c' = c] } | |
| | | | The access of this computation to buffers (before re-adapting its domain into the domain of the current access) : { input[i, j, c] -> _input_b0[i' = i, j' = j, c' = c] } | |
| | | | Applying access function on the range of transformation function: { cp1[i, j, c] -> _input_b0[i' = i, j' = j, c' = c] } | |
| | | | Apply the schedule on the domain of the access function. Access functions: { cp1[i, j, c] -> _input_b0[i' = i, j' = j, c' = c] } | |
| | | | Trimmed schedule: { cp1[t5, t6, t7] -> cp1[0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | Result: { cp1[0, i, 0, j, 0, c, 0] -> _input_b0[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:974 get_rhs_accesses] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1250 compute_iterators_map] | |
| | | Creating an isl_ast_index_expression for the access : { cp1[0, i, 0, j, 0, c, 0] -> cp1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | | Schedule: { cp1[0, i, 0, j, 0, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Schedule reversed: { [i, j, c] -> cp1[0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> cp1[(0), (i), (0), (j), (0), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Access: { cp1[0, i, 0, j, 0, c, 0] -> cp1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | index_aff = isl_pw_multi_aff_from_map(access): { cp1[i0, i, i2, j, i4, c, i6] -> cp1[(i), (j), (c)] : i0 = 0 and i2 = 0 and i4 = 0 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | space(index_aff): { cp1[i0, i, i2, j, i4, c, i6] -> cp1[i', j', c'] } | |
| | | | space(iterator_map): { [i, j, c] -> cp1[o0, i', o2, j', o4, c', o6] } | |
| | | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> cp1[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): cp1[c1][c3][c5] | |
| | | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: cp1 }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | | The iterators map is : | |
| | | Original index name = i, Transformed index: { id: c1 } | |
| | | Original index name = j, Transformed index: { id: c3 } | |
| | | Original index name = c, Transformed index: { id: c5 } | |
| | Generated RHS access maps: | |
| | | Access 0: { cp1[0, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access 1: { cp1[0, i, 0, j, 0, c, 0] -> _input_b0[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { cp1[0, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { cp1[0, i, 0, j, 0, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> cp1[0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> cp1[(0), (i), (0), (j), (0), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { cp1[0, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { cp1[i0, i, i2, j, i4, c, i6] -> _cp1_b1[(i), (j), (c)] : i0 = 0 and i2 = 0 and i4 = 0 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { cp1[i0, i, i2, j, i4, c, i6] -> _cp1_b1[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> cp1[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _cp1_b1[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _cp1_b1[c1][c3][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _cp1_b1 }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { cp1[0, i, 0, j, 0, c, 0] -> _input_b0[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { cp1[0, i, 0, j, 0, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> cp1[0, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> cp1[(0), (i), (0), (j), (0), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { cp1[0, i, 0, j, 0, c, 0] -> _input_b0[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { cp1[i0, i, i2, j, i4, c, i6] -> _input_b0[(i), (j), (c)] : i0 = 0 and i2 = 0 and i4 = 0 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { cp1[i0, i, i2, j, i4, c, i6] -> _input_b0[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> cp1[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _input_b0[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _input_b0[c1][c3][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _input_b0 }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | Generated Index expression: _cp1_b1[c1][c3][c5] | |
| | Generated Index expression: _input_b0[c1][c3][c5] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1441 stmt_code_generator] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1304 stmt_code_generator] | |
| | Searching computation bx | |
| | Computation found. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:544 filter_computations_by_domain] | |
| | | Filtering computations by ISL AST domain. | |
| | | ISL AST node domain: { bx[10, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Checking computation bx | |
| | | Domain of the computation { bx[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Domain of the computation in time-space domain { bx[10, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Intersecting the set: { bx[10, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | With the set: { bx[10, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Intersection { bx[10, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | This computation is accepted by the filter (intersection non-empty). | |
| | Computation: bx | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | Getting the access of the computation bx adapted to time-space. | |
| | | Original access: { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | Original schedule: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | Trimmed schedule to apply: { bx[t9, t10, t11] -> bx[10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | Transformed access: { bx[10, i, 0, j, 0, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:958 get_rhs_accesses] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | Extracting access from e_op. | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | Extracting access from e_op. | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | | Extracting access from e_op. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | | | Extracting access from o_access. | |
| | | | | | | Searching computation cp1 | |
| | | | | | | Computation found. | |
| | | | | | | Obtained accessed computation. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:112 create_map_from_domain_and_range] | |
| | | | | | | | Domain: { bx[i, j, c] } | |
| | | | | | | | Range: { cp1[i, j, c] } | |
| | | | | | | | Transformation map: { bx[i, j, c] -> cp1[i', j', c'] } | |
| | | | | | | | Transformation map after adding equality constraints: { bx[i, j, c] -> cp1[i' = i, j' = j, c' = c] } | |
| | | | | | | Transformation map before adding constraints: { bx[i, j, c] -> cp1[i', j', c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 0 | |
| | | | | | | Looking for a dimension named i in the domain of { bx[i, j, c] -> cp1[i', j', c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 0 | |
| | | | | | | After adding a constraint: { bx[i, j, c] -> cp1[i' = i, j', c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 1 | |
| | | | | | | Looking for a dimension named j in the domain of { bx[i, j, c] -> cp1[i' = i, j', c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 1 | |
| | | | | | | After adding a constraint: { bx[i, j, c] -> cp1[i' = i, j' = j, c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 2 | |
| | | | | | | Looking for a dimension named c in the domain of { bx[i, j, c] -> cp1[i' = i, j' = j, c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 2 | |
| | | | | | | After adding a constraint: { bx[i, j, c] -> cp1[i' = i, j' = j, c' = c] } | |
| | | | | | | Transformation function after adding constraints: { bx[i, j, c] -> cp1[i' = i, j' = j, c' = c] } | |
| | | | | | | The access of this computation to buffers (before re-adapting its domain into the domain of the current access) : { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | | | | Applying access function on the range of transformation function: { bx[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | | | | Apply the schedule on the domain of the access function. Access functions: { bx[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | | | | Trimmed schedule: { bx[t9, t10, t11] -> bx[10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | Result: { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | | | Extracting access from o_access. | |
| | | | | | | Searching computation cp1 | |
| | | | | | | Computation found. | |
| | | | | | | Obtained accessed computation. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:112 create_map_from_domain_and_range] | |
| | | | | | | | Domain: { bx[i, j, c] } | |
| | | | | | | | Range: { cp1[i, j, c] } | |
| | | | | | | | Transformation map: { bx[i, j, c] -> cp1[i', j', c'] } | |
| | | | | | | | Transformation map after adding equality constraints: { bx[i, j, c] -> cp1[i' = i, j' = j, c' = c] } | |
| | | | | | | Transformation map before adding constraints: { bx[i, j, c] -> cp1[i', j', c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 0 | |
| | | | | | | Looking for a dimension named i in the domain of { bx[i, j, c] -> cp1[i', j', c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 0 | |
| | | | | | | After adding a constraint: { bx[i, j, c] -> cp1[i' = i, j', c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 1 | |
| | | | | | | Looking for a dimension named j in the domain of { bx[i, j, c] -> cp1[i' = i, j', c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 1 | |
| | | | | | | Assigning -(coeff * access_expression.get_int_val() - isl_val_get_num_si(isl_constraint_get_constant_val(cst))) to the cst dimension. The value assigned is : -1 | |
| | | | | | | After adding a constraint: { bx[i, j, c] -> cp1[i' = i, j' = 1 + j, c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 2 | |
| | | | | | | Looking for a dimension named c in the domain of { bx[i, j, c] -> cp1[i' = i, j' = 1 + j, c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 2 | |
| | | | | | | After adding a constraint: { bx[i, j, c] -> cp1[i' = i, j' = 1 + j, c' = c] } | |
| | | | | | | Transformation function after adding constraints: { bx[i, j, c] -> cp1[i' = i, j' = 1 + j, c' = c] } | |
| | | | | | | The access of this computation to buffers (before re-adapting its domain into the domain of the current access) : { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | | | | Applying access function on the range of transformation function: { bx[i, j, c] -> _cp1_b1[i' = i, j' = 1 + j, c' = c] } | |
| | | | | | | Apply the schedule on the domain of the access function. Access functions: { bx[i, j, c] -> _cp1_b1[i' = i, j' = 1 + j, c' = c] } | |
| | | | | | | Trimmed schedule: { bx[t9, t10, t11] -> bx[10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | Result: { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = 1 + j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | | Extracting access from o_access. | |
| | | | | | Searching computation cp1 | |
| | | | | | Computation found. | |
| | | | | | Obtained accessed computation. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:112 create_map_from_domain_and_range] | |
| | | | | | | Domain: { bx[i, j, c] } | |
| | | | | | | Range: { cp1[i, j, c] } | |
| | | | | | | Transformation map: { bx[i, j, c] -> cp1[i', j', c'] } | |
| | | | | | | Transformation map after adding equality constraints: { bx[i, j, c] -> cp1[i' = i, j' = j, c' = c] } | |
| | | | | | Transformation map before adding constraints: { bx[i, j, c] -> cp1[i', j', c'] } | |
| | | | | | Assigning 1 to the coefficient of output dimension 0 | |
| | | | | | Looking for a dimension named i in the domain of { bx[i, j, c] -> cp1[i', j', c'] } | |
| | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 0 | |
| | | | | | After adding a constraint: { bx[i, j, c] -> cp1[i' = i, j', c'] } | |
| | | | | | Assigning 1 to the coefficient of output dimension 1 | |
| | | | | | Looking for a dimension named j in the domain of { bx[i, j, c] -> cp1[i' = i, j', c'] } | |
| | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 1 | |
| | | | | | Assigning -(coeff * access_expression.get_int_val() - isl_val_get_num_si(isl_constraint_get_constant_val(cst))) to the cst dimension. The value assigned is : -2 | |
| | | | | | After adding a constraint: { bx[i, j, c] -> cp1[i' = i, j' = 2 + j, c'] } | |
| | | | | | Assigning 1 to the coefficient of output dimension 2 | |
| | | | | | Looking for a dimension named c in the domain of { bx[i, j, c] -> cp1[i' = i, j' = 2 + j, c'] } | |
| | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 2 | |
| | | | | | After adding a constraint: { bx[i, j, c] -> cp1[i' = i, j' = 2 + j, c' = c] } | |
| | | | | | Transformation function after adding constraints: { bx[i, j, c] -> cp1[i' = i, j' = 2 + j, c' = c] } | |
| | | | | | The access of this computation to buffers (before re-adapting its domain into the domain of the current access) : { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | | | Applying access function on the range of transformation function: { bx[i, j, c] -> _cp1_b1[i' = i, j' = 2 + j, c' = c] } | |
| | | | | | Apply the schedule on the domain of the access function. Access functions: { bx[i, j, c] -> _cp1_b1[i' = i, j' = 2 + j, c' = c] } | |
| | | | | | Trimmed schedule: { bx[t9, t10, t11] -> bx[10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | Result: { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = 2 + j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | Extracting access from e_op. | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:974 get_rhs_accesses] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1250 compute_iterators_map] | |
| | | Creating an isl_ast_index_expression for the access : { bx[10, i, 0, j, 0, c, 0] -> bx[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | | Schedule: { bx[10, i, 0, j, 0, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Schedule reversed: { [i, j, c] -> bx[10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> bx[(10), (i), (0), (j), (0), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Access: { bx[10, i, 0, j, 0, c, 0] -> bx[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | index_aff = isl_pw_multi_aff_from_map(access): { bx[i0, i, i2, j, i4, c, i6] -> bx[(i), (j), (c)] : i0 = 10 and i2 = 0 and i4 = 0 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | space(index_aff): { bx[i0, i, i2, j, i4, c, i6] -> bx[i', j', c'] } | |
| | | | space(iterator_map): { [i, j, c] -> bx[o0, i', o2, j', o4, c', o6] } | |
| | | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> bx[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): bx[c1][c3][c5] | |
| | | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: bx }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | | The iterators map is : | |
| | | Original index name = i, Transformed index: { id: c1 } | |
| | | Original index name = j, Transformed index: { id: c3 } | |
| | | Original index name = c, Transformed index: { id: c5 } | |
| | Generated RHS access maps: | |
| | | Access 0: { bx[10, i, 0, j, 0, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access 1: { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access 2: { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = 1 + j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access 3: { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = 2 + j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { bx[10, i, 0, j, 0, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { bx[10, i, 0, j, 0, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> bx[10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> bx[(10), (i), (0), (j), (0), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { bx[10, i, 0, j, 0, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { bx[i0, i, i2, j, i4, c, i6] -> _bx_b2[(i), (j), (c)] : i0 = 10 and i2 = 0 and i4 = 0 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { bx[i0, i, i2, j, i4, c, i6] -> _bx_b2[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> bx[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _bx_b2[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _bx_b2[c1][c3][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _bx_b2 }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { bx[10, i, 0, j, 0, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> bx[10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> bx[(10), (i), (0), (j), (0), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { bx[i0, i, i2, j, i4, c, i6] -> _cp1_b1[(i), (j), (c)] : i0 = 10 and i2 = 0 and i4 = 0 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { bx[i0, i, i2, j, i4, c, i6] -> _cp1_b1[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> bx[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _cp1_b1[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _cp1_b1[c1][c3][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _cp1_b1 }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = 1 + j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { bx[10, i, 0, j, 0, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> bx[10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> bx[(10), (i), (0), (j), (0), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = 1 + j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { bx[i0, i, i2, j, i4, c, i6] -> _cp1_b1[(i), (1 + j), (c)] : i0 = 10 and i2 = 0 and i4 = 0 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { bx[i0, i, i2, j, i4, c, i6] -> _cp1_b1[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> bx[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _cp1_b1[(i), (1 + j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _cp1_b1[c1][c3 + 1][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _cp1_b1 }, { id: c1 }, { op: add, args: [ { id: c3 }, { val: 1 } ] }, { id: c5 } ] } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = 2 + j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { bx[10, i, 0, j, 0, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> bx[10, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> bx[(10), (i), (0), (j), (0), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { bx[10, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = 2 + j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { bx[i0, i, i2, j, i4, c, i6] -> _cp1_b1[(i), (2 + j), (c)] : i0 = 10 and i2 = 0 and i4 = 0 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { bx[i0, i, i2, j, i4, c, i6] -> _cp1_b1[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> bx[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _cp1_b1[(i), (2 + j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _cp1_b1[c1][c3 + 2][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _cp1_b1 }, { id: c1 }, { op: add, args: [ { id: c3 }, { val: 2 } ] }, { id: c5 } ] } | |
| | Generated Index expression: _bx_b2[c1][c3][c5] | |
| | Generated Index expression: _cp1_b1[c1][c3][c5] | |
| | Generated Index expression: _cp1_b1[c1][c3 + 1][c5] | |
| | Generated Index expression: _cp1_b1[c1][c3 + 2][c5] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1441 stmt_code_generator] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1304 stmt_code_generator] | |
| | Searching computation by | |
| | Computation found. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:544 filter_computations_by_domain] | |
| | | Filtering computations by ISL AST domain. | |
| | | ISL AST node domain: { by[10, i, 0, j, 10, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Checking computation by | |
| | | Domain of the computation { by[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Domain of the computation in time-space domain { by[10, i, 0, j, 10, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Intersecting the set: { by[10, i, 0, j, 10, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | With the set: { by[10, i, 0, j, 10, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Intersection { by[10, i, 0, j, 10, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | This computation is accepted by the filter (intersection non-empty). | |
| | Computation: by | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | Getting the access of the computation by adapted to time-space. | |
| | | Original access: { by[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } | |
| | | Original schedule: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | Trimmed schedule to apply: { by[t13, t14, t15] -> by[10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | Transformed access: { by[10, i, 0, j, 10, c, 0] -> _by_b3[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:958 get_rhs_accesses] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | Extracting access from e_op. | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | Extracting access from e_op. | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | | Extracting access from e_op. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | | | Extracting access from o_access. | |
| | | | | | | Searching computation bx | |
| | | | | | | Computation found. | |
| | | | | | | Obtained accessed computation. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:112 create_map_from_domain_and_range] | |
| | | | | | | | Domain: { by[i, j, c] } | |
| | | | | | | | Range: { bx[i, j, c] } | |
| | | | | | | | Transformation map: { by[i, j, c] -> bx[i', j', c'] } | |
| | | | | | | | Transformation map after adding equality constraints: { by[i, j, c] -> bx[i' = i, j' = j, c' = c] } | |
| | | | | | | Transformation map before adding constraints: { by[i, j, c] -> bx[i', j', c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 0 | |
| | | | | | | Looking for a dimension named i in the domain of { by[i, j, c] -> bx[i', j', c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 0 | |
| | | | | | | After adding a constraint: { by[i, j, c] -> bx[i' = i, j', c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 1 | |
| | | | | | | Looking for a dimension named j in the domain of { by[i, j, c] -> bx[i' = i, j', c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 1 | |
| | | | | | | After adding a constraint: { by[i, j, c] -> bx[i' = i, j' = j, c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 2 | |
| | | | | | | Looking for a dimension named c in the domain of { by[i, j, c] -> bx[i' = i, j' = j, c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 2 | |
| | | | | | | After adding a constraint: { by[i, j, c] -> bx[i' = i, j' = j, c' = c] } | |
| | | | | | | Transformation function after adding constraints: { by[i, j, c] -> bx[i' = i, j' = j, c' = c] } | |
| | | | | | | The access of this computation to buffers (before re-adapting its domain into the domain of the current access) : { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | | | | Applying access function on the range of transformation function: { by[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | | | | Apply the schedule on the domain of the access function. Access functions: { by[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | | | | Trimmed schedule: { by[t13, t14, t15] -> by[10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | | | Result: { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | | | Extracting access from o_access. | |
| | | | | | | Searching computation bx | |
| | | | | | | Computation found. | |
| | | | | | | Obtained accessed computation. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:112 create_map_from_domain_and_range] | |
| | | | | | | | Domain: { by[i, j, c] } | |
| | | | | | | | Range: { bx[i, j, c] } | |
| | | | | | | | Transformation map: { by[i, j, c] -> bx[i', j', c'] } | |
| | | | | | | | Transformation map after adding equality constraints: { by[i, j, c] -> bx[i' = i, j' = j, c' = c] } | |
| | | | | | | Transformation map before adding constraints: { by[i, j, c] -> bx[i', j', c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 0 | |
| | | | | | | Looking for a dimension named i in the domain of { by[i, j, c] -> bx[i', j', c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 0 | |
| | | | | | | Assigning -(coeff * access_expression.get_int_val() - isl_val_get_num_si(isl_constraint_get_constant_val(cst))) to the cst dimension. The value assigned is : -1 | |
| | | | | | | After adding a constraint: { by[i, j, c] -> bx[i' = 1 + i, j', c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 1 | |
| | | | | | | Looking for a dimension named j in the domain of { by[i, j, c] -> bx[i' = 1 + i, j', c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 1 | |
| | | | | | | After adding a constraint: { by[i, j, c] -> bx[i' = 1 + i, j' = j, c'] } | |
| | | | | | | Assigning 1 to the coefficient of output dimension 2 | |
| | | | | | | Looking for a dimension named c in the domain of { by[i, j, c] -> bx[i' = 1 + i, j' = j, c'] } | |
| | | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 2 | |
| | | | | | | After adding a constraint: { by[i, j, c] -> bx[i' = 1 + i, j' = j, c' = c] } | |
| | | | | | | Transformation function after adding constraints: { by[i, j, c] -> bx[i' = 1 + i, j' = j, c' = c] } | |
| | | | | | | The access of this computation to buffers (before re-adapting its domain into the domain of the current access) : { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | | | | Applying access function on the range of transformation function: { by[i, j, c] -> _bx_b2[i' = 1 + i, j' = j, c' = c] } | |
| | | | | | | Apply the schedule on the domain of the access function. Access functions: { by[i, j, c] -> _bx_b2[i' = 1 + i, j' = j, c' = c] } | |
| | | | | | | Trimmed schedule: { by[t13, t14, t15] -> by[10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | | | Result: { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = 1 + i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | | Extracting access from o_access. | |
| | | | | | Searching computation bx | |
| | | | | | Computation found. | |
| | | | | | Obtained accessed computation. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:112 create_map_from_domain_and_range] | |
| | | | | | | Domain: { by[i, j, c] } | |
| | | | | | | Range: { bx[i, j, c] } | |
| | | | | | | Transformation map: { by[i, j, c] -> bx[i', j', c'] } | |
| | | | | | | Transformation map after adding equality constraints: { by[i, j, c] -> bx[i' = i, j' = j, c' = c] } | |
| | | | | | Transformation map before adding constraints: { by[i, j, c] -> bx[i', j', c'] } | |
| | | | | | Assigning 1 to the coefficient of output dimension 0 | |
| | | | | | Looking for a dimension named i in the domain of { by[i, j, c] -> bx[i', j', c'] } | |
| | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 0 | |
| | | | | | Assigning -(coeff * access_expression.get_int_val() - isl_val_get_num_si(isl_constraint_get_constant_val(cst))) to the cst dimension. The value assigned is : -2 | |
| | | | | | After adding a constraint: { by[i, j, c] -> bx[i' = 2 + i, j', c'] } | |
| | | | | | Assigning 1 to the coefficient of output dimension 1 | |
| | | | | | Looking for a dimension named j in the domain of { by[i, j, c] -> bx[i' = 2 + i, j', c'] } | |
| | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 1 | |
| | | | | | After adding a constraint: { by[i, j, c] -> bx[i' = 2 + i, j' = j, c'] } | |
| | | | | | Assigning 1 to the coefficient of output dimension 2 | |
| | | | | | Looking for a dimension named c in the domain of { by[i, j, c] -> bx[i' = 2 + i, j' = j, c'] } | |
| | | | | | Dimension found. Assigning -1 to the input coefficient of dimension 2 | |
| | | | | | After adding a constraint: { by[i, j, c] -> bx[i' = 2 + i, j' = j, c' = c] } | |
| | | | | | Transformation function after adding constraints: { by[i, j, c] -> bx[i' = 2 + i, j' = j, c' = c] } | |
| | | | | | The access of this computation to buffers (before re-adapting its domain into the domain of the current access) : { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | | | Applying access function on the range of transformation function: { by[i, j, c] -> _bx_b2[i' = 2 + i, j' = j, c' = c] } | |
| | | | | | Apply the schedule on the domain of the access function. Access functions: { by[i, j, c] -> _bx_b2[i' = 2 + i, j' = j, c' = c] } | |
| | | | | | Trimmed schedule: { by[t13, t14, t15] -> by[10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | | Result: { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = 2 + i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | Extracting access from e_op. | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:974 get_rhs_accesses] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1250 compute_iterators_map] | |
| | | Creating an isl_ast_index_expression for the access : { by[10, i, 0, j, 10, c, 0] -> by[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | | Schedule: { by[10, i, 0, j, 10, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Schedule reversed: { [i, j, c] -> by[10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> by[(10), (i), (0), (j), (10), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Access: { by[10, i, 0, j, 10, c, 0] -> by[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | index_aff = isl_pw_multi_aff_from_map(access): { by[i0, i, i2, j, i4, c, i6] -> by[(i), (j), (c)] : i0 = 10 and i2 = 0 and i4 = 10 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | space(index_aff): { by[i0, i, i2, j, i4, c, i6] -> by[i', j', c'] } | |
| | | | space(iterator_map): { [i, j, c] -> by[o0, i', o2, j', o4, c', o6] } | |
| | | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> by[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): by[c1][c3][c5] | |
| | | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: by }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | | The iterators map is : | |
| | | Original index name = i, Transformed index: { id: c1 } | |
| | | Original index name = j, Transformed index: { id: c3 } | |
| | | Original index name = c, Transformed index: { id: c5 } | |
| | Generated RHS access maps: | |
| | | Access 0: { by[10, i, 0, j, 10, c, 0] -> _by_b3[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access 1: { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access 2: { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = 1 + i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access 3: { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = 2 + i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { by[10, i, 0, j, 10, c, 0] -> _by_b3[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { by[10, i, 0, j, 10, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> by[10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> by[(10), (i), (0), (j), (10), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { by[10, i, 0, j, 10, c, 0] -> _by_b3[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { by[i0, i, i2, j, i4, c, i6] -> _by_b3[(i), (j), (c)] : i0 = 10 and i2 = 0 and i4 = 10 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { by[i0, i, i2, j, i4, c, i6] -> _by_b3[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> by[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _by_b3[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _by_b3[c1][c3][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _by_b3 }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { by[10, i, 0, j, 10, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> by[10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> by[(10), (i), (0), (j), (10), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { by[i0, i, i2, j, i4, c, i6] -> _bx_b2[(i), (j), (c)] : i0 = 10 and i2 = 0 and i4 = 10 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { by[i0, i, i2, j, i4, c, i6] -> _bx_b2[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> by[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _bx_b2[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _bx_b2[c1][c3][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _bx_b2 }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = 1 + i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { by[10, i, 0, j, 10, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> by[10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> by[(10), (i), (0), (j), (10), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = 1 + i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { by[i0, i, i2, j, i4, c, i6] -> _bx_b2[(1 + i), (j), (c)] : i0 = 10 and i2 = 0 and i4 = 10 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { by[i0, i, i2, j, i4, c, i6] -> _bx_b2[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> by[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _bx_b2[(1 + i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _bx_b2[c1 + 1][c3][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _bx_b2 }, { op: add, args: [ { id: c1 }, { val: 1 } ] }, { id: c3 }, { id: c5 } ] } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = 2 + i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { by[10, i, 0, j, 10, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> by[10, i' = i, 0, j' = j, 10, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> by[(10), (i), (0), (j), (10), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { by[10, i, 0, j, 10, c, 0] -> _bx_b2[i' = 2 + i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { by[i0, i, i2, j, i4, c, i6] -> _bx_b2[(2 + i), (j), (c)] : i0 = 10 and i2 = 0 and i4 = 10 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { by[i0, i, i2, j, i4, c, i6] -> _bx_b2[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> by[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _bx_b2[(2 + i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _bx_b2[c1 + 2][c3][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _bx_b2 }, { op: add, args: [ { id: c1 }, { val: 2 } ] }, { id: c3 }, { id: c5 } ] } | |
| | Generated Index expression: _by_b3[c1][c3][c5] | |
| | Generated Index expression: _bx_b2[c1][c3][c5] | |
| | Generated Index expression: _bx_b2[c1 + 1][c3][c5] | |
| | Generated Index expression: _bx_b2[c1 + 2][c3][c5] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1441 stmt_code_generator] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1304 stmt_code_generator] | |
| | Searching computation cp2 | |
| | Computation found. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:544 filter_computations_by_domain] | |
| | | Filtering computations by ISL AST domain. | |
| | | ISL AST node domain: { cp2[20, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Checking computation cp2 | |
| | | Domain of the computation { cp2[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Domain of the computation in time-space domain { cp2[20, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Intersecting the set: { cp2[20, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | With the set: { cp2[20, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Intersection { cp2[20, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | This computation is accepted by the filter (intersection non-empty). | |
| | Computation: cp2 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | Getting the access of the computation cp2 adapted to time-space. | |
| | | Original access: { cp2[i, j, c] -> _cp2_b4[i' = i, j' = j, c' = c] } | |
| | | Original schedule: { cp2[t17, t18, t19] -> cp2[0, 20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | Trimmed schedule to apply: { cp2[t17, t18, t19] -> cp2[20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | Transformed access: { cp2[20, i, 0, j, 0, c, 0] -> _cp2_b4[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:958 get_rhs_accesses] | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:610 traverse_expr_and_extract_accesses] | |
| | | | Extracting access from o_access. | |
| | | | Searching computation by | |
| | | | Computation found. | |
| | | | Obtained accessed computation. | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:112 create_map_from_domain_and_range] | |
| | | | | Domain: { cp2[i, j, c] } | |
| | | | | Range: { by[i, j, c] } | |
| | | | | Transformation map: { cp2[i, j, c] -> by[i', j', c'] } | |
| | | | | Transformation map after adding equality constraints: { cp2[i, j, c] -> by[i' = i, j' = j, c' = c] } | |
| | | | Transformation map before adding constraints: { cp2[i, j, c] -> by[i', j', c'] } | |
| | | | Assigning 1 to the coefficient of output dimension 0 | |
| | | | Looking for a dimension named i in the domain of { cp2[i, j, c] -> by[i', j', c'] } | |
| | | | Dimension found. Assigning -1 to the input coefficient of dimension 0 | |
| | | | After adding a constraint: { cp2[i, j, c] -> by[i' = i, j', c'] } | |
| | | | Assigning 1 to the coefficient of output dimension 1 | |
| | | | Looking for a dimension named j in the domain of { cp2[i, j, c] -> by[i' = i, j', c'] } | |
| | | | Dimension found. Assigning -1 to the input coefficient of dimension 1 | |
| | | | After adding a constraint: { cp2[i, j, c] -> by[i' = i, j' = j, c'] } | |
| | | | Assigning 1 to the coefficient of output dimension 2 | |
| | | | Looking for a dimension named c in the domain of { cp2[i, j, c] -> by[i' = i, j' = j, c'] } | |
| | | | Dimension found. Assigning -1 to the input coefficient of dimension 2 | |
| | | | After adding a constraint: { cp2[i, j, c] -> by[i' = i, j' = j, c' = c] } | |
| | | | Transformation function after adding constraints: { cp2[i, j, c] -> by[i' = i, j' = j, c' = c] } | |
| | | | The access of this computation to buffers (before re-adapting its domain into the domain of the current access) : { by[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } | |
| | | | Applying access function on the range of transformation function: { cp2[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } | |
| | | | Apply the schedule on the domain of the access function. Access functions: { cp2[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } | |
| | | | Trimmed schedule: { cp2[t17, t18, t19] -> cp2[20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | Result: { cp2[20, i, 0, j, 0, c, 0] -> _by_b3[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:801 traverse_expr_and_extract_accesses] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:974 get_rhs_accesses] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1250 compute_iterators_map] | |
| | | Creating an isl_ast_index_expression for the access : { cp2[20, i, 0, j, 0, c, 0] -> cp2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | | Schedule: { cp2[20, i, 0, j, 0, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Schedule reversed: { [i, j, c] -> cp2[20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> cp2[(20), (i), (0), (j), (0), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | Access: { cp2[20, i, 0, j, 0, c, 0] -> cp2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | index_aff = isl_pw_multi_aff_from_map(access): { cp2[i0, i, i2, j, i4, c, i6] -> cp2[(i), (j), (c)] : i0 = 20 and i2 = 0 and i4 = 0 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | space(index_aff): { cp2[i0, i, i2, j, i4, c, i6] -> cp2[i', j', c'] } | |
| | | | space(iterator_map): { [i, j, c] -> cp2[o0, i', o2, j', o4, c', o6] } | |
| | | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> cp2[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): cp2[c1][c3][c5] | |
| | | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: cp2 }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | | The iterators map is : | |
| | | Original index name = i, Transformed index: { id: c1 } | |
| | | Original index name = j, Transformed index: { id: c3 } | |
| | | Original index name = c, Transformed index: { id: c5 } | |
| | Generated RHS access maps: | |
| | | Access 0: { cp2[20, i, 0, j, 0, c, 0] -> _cp2_b4[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access 1: { cp2[20, i, 0, j, 0, c, 0] -> _by_b3[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { cp2[20, i, 0, j, 0, c, 0] -> _cp2_b4[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { cp2[20, i, 0, j, 0, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> cp2[20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> cp2[(20), (i), (0), (j), (0), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { cp2[20, i, 0, j, 0, c, 0] -> _cp2_b4[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { cp2[i0, i, i2, j, i4, c, i6] -> _cp2_b4[(i), (j), (c)] : i0 = 20 and i2 = 0 and i4 = 0 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { cp2[i0, i, i2, j, i4, c, i6] -> _cp2_b4[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> cp2[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _cp2_b4[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _cp2_b4[c1][c3][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _cp2_b4 }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | Creating an isl_ast_index_expression for the access (isl_map *): { cp2[20, i, 0, j, 0, c, 0] -> _by_b3[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:174 create_isl_ast_index_expression] | |
| | | Schedule: { cp2[20, i, 0, j, 0, c, 0] -> [i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Schedule reversed: { [i, j, c] -> cp2[20, i' = i, 0, j' = j, 0, c' = c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | iterator_map (the iterator map of an AST leaf after scheduling): { [i, j, c] -> cp2[(20), (i), (0), (j), (0), (c), (0)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | Access: { cp2[20, i, 0, j, 0, c, 0] -> _by_b3[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | index_aff = isl_pw_multi_aff_from_map(access): { cp2[i0, i, i2, j, i4, c, i6] -> _by_b3[(i), (j), (c)] : i0 = 20 and i2 = 0 and i4 = 0 and i6 = 0 and 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | space(index_aff): { cp2[i0, i, i2, j, i4, c, i6] -> _by_b3[i', j', c'] } | |
| | | space(iterator_map): { [i, j, c] -> cp2[o0, i', o2, j', o4, c', o6] } | |
| | | isl_pw_multi_aff_pullback_pw_multi_aff(index_aff,iterator_map): { [i, j, c] -> _by_b3[(i), (j), (c)] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | isl_ast_build_access_from_pw_multi_aff(build, iterator_map): _by_b3[c1][c3][c5] | |
| | The created isl_ast_expr expression for the index expression is : { op: access, args: [ { id: _by_b3 }, { id: c1 }, { id: c3 }, { id: c5 } ] } | |
| | Generated Index expression: _cp2_b4[c1][c3][c5] | |
| | Generated Index expression: _by_b3[c1][c3][c5] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1441 stmt_code_generator] | |
[/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2483 gen_halide_stmt] | |
| | C like code: | |
| { | |
| for (int c1 = 0; c1 <= 97; c1 += 1) | |
| for (int c3 = 0; c3 <= 197; c3 += 1) | |
| for (int c5 = 0; c5 <= 2; c5 += 1) | |
| cp1(0, c1, 0, c3, 0, c5, 0); | |
| for (int c1 = 0; c1 <= 97; c1 += 1) | |
| for (int c3 = 0; c3 <= 197; c3 += 1) { | |
| for (int c5 = 0; c5 <= 2; c5 += 1) | |
| bx(10, c1, 0, c3, 0, c5, 0); | |
| for (int c5 = 0; c5 <= 2; c5 += 1) | |
| by(10, c1, 0, c3, 10, c5, 0); | |
| } | |
| for (int c1 = 0; c1 <= 97; c1 += 1) | |
| for (int c3 = 0; c3 <= 197; c3 += 1) | |
| for (int c5 = 0; c5 <= 2; c5 += 1) | |
| cp2(20, c1, 0, c3, 0, c5, 0); | |
| } | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | Generating code for a block | |
| | Generating block. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | Generating code for Halide::For | |
| | | Creating for loop init expression. | |
| | | init expression: 0 | |
| | | Upper bound expression: 98 | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | Generating code for Halide::For | |
| | | | Creating for loop init expression. | |
| | | | init expression: 0 | |
| | | | Upper bound expression: 198 | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | | Generating code for Halide::For | |
| | | | | Creating for loop init expression. | |
| | | | | init expression: 0 | |
| | | | | Upper bound expression: 3 | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | | | Generating code for user node | |
| | | | | | Computation name: cp2 | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | Checking if the computation cp2 should be parallelized at the loop level 0 | |
| | | | | | | Dimension 0 should not be mapped to CPU thread. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | Checking if the computation cp2 should be vectorized at the loop level 0 | |
| | | | | | | | Dimension 0 should not be vectorized. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | Dimension 0 should not be mapped to GPU block. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | Dimension 0 should not be mapped to GPU thread. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | Dimension 0 should not be unrolled. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | Checking if the computation cp2 should be distributed at the loop level 0 | |
| | | | | | | Dimension 0 should not be distributed. | |
| | | | | | The full list of tagged statements is now | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | Checking if the computation cp2 should be parallelized at the loop level 1 | |
| | | | | | | Dimension 1 should not be mapped to CPU thread. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | Checking if the computation cp2 should be vectorized at the loop level 1 | |
| | | | | | | | Dimension 1 should not be vectorized. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | Dimension 1 should not be mapped to GPU block. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | Dimension 1 should not be mapped to GPU thread. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | Dimension 1 should not be unrolled. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | Checking if the computation cp2 should be distributed at the loop level 1 | |
| | | | | | | Dimension 1 should not be distributed. | |
| | | | | | The full list of tagged statements is now | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | Checking if the computation cp2 should be parallelized at the loop level 2 | |
| | | | | | | Dimension 2 should not be mapped to CPU thread. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | Checking if the computation cp2 should be vectorized at the loop level 2 | |
| | | | | | | | Dimension 2 should not be vectorized. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | Dimension 2 should not be mapped to GPU block. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | Dimension 2 should not be mapped to GPU thread. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | Dimension 2 should not be unrolled. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | Checking if the computation cp2 should be distributed at the loop level 2 | |
| | | | | | | Dimension 2 should not be distributed. | |
| | | | | | The full list of tagged statements is now | |
| | | | | | The computation that corresponds to this node: | | | | | | | Dumping the computation "cp2" : | |
| | | | | | | Iteration domain of the computation "cp2" : { cp2[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | Dumping the schedule of the computation cp2 : | |
| | | | | | | | { cp2[t17, t18, t19] -> cp2[0, 20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | | | | Expression of the computation : by(i, j, c) | |
| | | | | | | Access relation of the computation : { cp2[i, j, c] -> _cp2_b4[i' = i, j' = j, c' = c] } | |
| | | | | | | Time-space domain { cp2[0, 20, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | Computation to be scheduled ? 1 | |
| | | | | | | Access expression: _cp2_b4[c1][c3][c5] | |
| | | | | | | Access expression: _by_b3[c1][c3][c5] | |
| | | | | | | Halide statement: | |
| | | | | | | NULL | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2951 create_halide_assignment] | |
| | | | | | | Generating stmt for assignment. | |
| | | | | | | This is not a let statement. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | Getting the access of the computation cp2 adapted to time-space. | |
| | | | | | | | Original access: { cp2[i, j, c] -> _cp2_b4[i' = i, j' = j, c' = c] } | |
| | | | | | | | Original schedule: { cp2[t17, t18, t19] -> cp2[0, 20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | | | | | Trimmed schedule to apply: { cp2[t17, t18, t19] -> cp2[20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | | | | | Transformed access: { cp2[20, i, 0, j, 0, c, 0] -> _cp2_b4[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | Buffer name extracted from the access relation: _cp2_b4 | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | Getting the access of the computation cp2 adapted to time-space. | |
| | | | | | | | Original access: { cp2[i, j, c] -> _cp2_b4[i' = i, j' = j, c' = c] } | |
| | | | | | | | Original schedule: { cp2[t17, t18, t19] -> cp2[0, 20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | | | | | Trimmed schedule to apply: { cp2[t17, t18, t19] -> cp2[20, i = t17, 0, j = t18, 0, c = t19, 0] : 0 <= t17 <= 97 and 0 <= t18 <= 197 and 0 <= t19 <= 2 } | |
| | | | | | | | Transformed access: { cp2[20, i, 0, j, 0, c, 0] -> _cp2_b4[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | A Tiramisu buffer that corresponds to the buffer indicated in the access relation was found. | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6867 dump] | |
| | | | | | | | Buffer "_cp2_b4", Number of dimensions: 3 | |
| | | | | | | | Dimension sizes: [(98 - 0), (198 - 0), (3 - 0), ] | |
| | | | | | | | Elements type: float32 | |
| | | | | | | | Function field: Not NULL | |
| | | | | | | | Argument type: output | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | Input expression: (3 - 0) | |
| | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: 3 | |
| | | | | | | | | Output expression: 3 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: 0 | |
| | | | | | | | | Output expression: 0 | |
| | | | | | | | Output expression: (3 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | The input function is test | |
| | | | | | | | The input index_expr is empty. | |
| | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 3 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 0 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | op type: o_sub | |
| | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | Input expression: (198 - 0) | |
| | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: 198 | |
| | | | | | | | | Output expression: 198 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: 0 | |
| | | | | | | | | Output expression: 0 | |
| | | | | | | | Output expression: (198 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | The input function is test | |
| | | | | | | | The input index_expr is empty. | |
| | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 198 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 0 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | op type: o_sub | |
| | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | Input expression: (98 - 0) | |
| | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: 98 | |
| | | | | | | | | Output expression: 98 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: 0 | |
| | | | | | | | | Output expression: 0 | |
| | | | | | | | Output expression: (98 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | The input function is test | |
| | | | | | | | The input index_expr is empty. | |
| | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 98 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 0 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | op type: o_sub | |
| | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | Linearizing access of the LHS index expression. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | After linearization: (((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))) | |
| | | | | | | Index expressions of this statement are (the first is the LHS and the others are the RHS) : | |
| | | | | | | List of index expressions. | |
| | | | | | | _cp2_b4[c1][c3][c5] | |
| | | | | | | _by_b3[c1][c3][c5] | |
| | | | | | | Erasing the LHS index expression from the vector of index expressions (the LHS index has just been linearized). | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | The input function is test | |
| | | | | | | | The input index_expr is empty. | |
| | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 3 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 0 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | op type: o_sub | |
| | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | The input function is test | |
| | | | | | | | The input index_expr is empty. | |
| | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 3 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 0 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | op type: o_sub | |
| | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | The input function is test | |
| | | | | | | | The input index_expr is empty. | |
| | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 198 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 0 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | op type: o_sub | |
| | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | The input function is test | |
| | | | | | | | The input index_expr is empty. | |
| | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 198 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 0 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | op type: o_sub | |
| | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | The input function is test | |
| | | | | | | | The input index_expr is empty. | |
| | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 98 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 0 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | op type: o_sub | |
| | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | The input function is test | |
| | | | | | | | The input index_expr is empty. | |
| | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 98 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | Generated stmt: 0 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | op type: o_sub | |
| | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | Calling the Halide::Internal::Store::make function which creates the store statement. | |
| | | | | | | The RHS index expressions are first transformed to Halide expressions then passed to the make function. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | Input expression: by(i, j, c) | |
| | | | | | | | Replacing the occurrences of original iterators in an o_access or o_address_of. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: i | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | Input expression: c1 | |
| | | | | | | | | | Saved variable c1 of type int32 | |
| | | | | | | | | Output expression: cast(c1) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: j | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | Input expression: c3 | |
| | | | | | | | | | Saved variable c3 of type int32 | |
| | | | | | | | | Output expression: cast(c3) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: c | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | Input expression: c5 | |
| | | | | | | | | | Saved variable c5 of type int32 | |
| | | | | | | | | Output expression: cast(c5) | |
| | | | | | | | Output expression: by(cast(c1) , cast(c3) , cast(c5) ) | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Input Tiramisu expression: by(cast(c1) , cast(c3) , cast(c5) ) | |
| | | | | | | | The input function is test | |
| | | | | | | | The input index_expr is not empty. | |
| | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | op type: o_access or o_address | |
| | | | | | | | Computation being accessed: by | |
| | | | | | | | Searching computation by | |
| | | | | | | | Computation found. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | Getting the access of the computation by adapted to time-space. | |
| | | | | | | | | Original access: { by[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } | |
| | | | | | | | | Original schedule: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | | | | | Trimmed schedule to apply: { by[t13, t14, t15] -> by[10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | | | | | Transformed access: { by[10, i, 0, j, 10, c, 0] -> _by_b3[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | Name of the associated buffer: _by_b3 | |
| | | | | | | | Buffer has non-constant extents. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | op type: o_sub | |
| | | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 198 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | op type: o_sub | |
| | | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 98 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | op type: o_sub | |
| | | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Buffer strides have been computed. | |
| | | | | | | | index_expr is NOT empty. Retrieving access indices from index_expr (i.e., retrieving indices adapted to the schedule). | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | | Generated stmt: (float32)_by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | Halide::Internal::Store::make statement created. | |
| | | | | | | End of create_halide_stmt. Generated statement is: | |
| | | | | | | | | | | | | | { | |
| | | | | | | _cp2_b4[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | | | | | | } | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | | | The full list of tagged statements is now: | |
| | | | | | |
| | | | | Creating the for loop. | |
| | | | | For loop created. | |
| | | | | | | | | | { | |
| | | | | for (c5, 0, 3 - 0) { | |
| | | | | _cp2_b4[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | | | | } | |
| | | | | } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | | The full list of tagged statements is now: | |
| | | | | |
| | | | Creating the for loop. | |
| | | | For loop created. | |
| | | | | | | | { | |
| | | | for (c3, 0, 198 - 0) { | |
| | | | for (c5, 0, 3 - 0) { | |
| | | | _cp2_b4[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | | | } | |
| | | | } | |
| | | | } | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | The full list of tagged statements is now: | |
| | | | |
| | | Creating the for loop. | |
| | | For loop created. | |
| | | | | | { | |
| | | for (c1, 0, 98 - 0) { | |
| | | for (c3, 0, 198 - 0) { | |
| | | for (c5, 0, 3 - 0) { | |
| | | _cp2_b4[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | | } | |
| | | } | |
| | | } | |
| | | } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | Generated block: | |
| | | | { | |
| | for (c1, 0, 98 - 0) { | |
| | for (c3, 0, 198 - 0) { | |
| | for (c5, 0, 3 - 0) { | |
| | _cp2_b4[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | } | |
| | } | |
| | } | |
| | } | |
| | Block defined. | |
| | | | { | |
| | for (c1, 0, 98 - 0) { | |
| | for (c3, 0, 198 - 0) { | |
| | for (c5, 0, 3 - 0) { | |
| | _cp2_b4[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | } | |
| | } | |
| | } | |
| | } | |
| | Generating block. | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | Generating code for a block | |
| | | Generating block. | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | Generating code for Halide::For | |
| | | | Creating for loop init expression. | |
| | | | init expression: 0 | |
| | | | Upper bound expression: 98 | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | | Generating code for Halide::For | |
| | | | | Creating for loop init expression. | |
| | | | | init expression: 0 | |
| | | | | Upper bound expression: 198 | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | | | Generating code for a block | |
| | | | | | Generating block. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | | | | Generating code for Halide::For | |
| | | | | | | Creating for loop init expression. | |
| | | | | | | init expression: 0 | |
| | | | | | | Upper bound expression: 3 | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | | | | | Generating code for user node | |
| | | | | | | | Computation name: by | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | | | Checking if the computation by should be parallelized at the loop level 0 | |
| | | | | | | | | Dimension 0 should not be mapped to CPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | | | Checking if the computation by should be vectorized at the loop level 0 | |
| | | | | | | | | | Dimension 0 should not be vectorized. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | | | Dimension 0 should not be mapped to GPU block. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | | | Dimension 0 should not be mapped to GPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | | | Dimension 0 should not be unrolled. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | | | Checking if the computation by should be distributed at the loop level 0 | |
| | | | | | | | | Dimension 0 should not be distributed. | |
| | | | | | | | The full list of tagged statements is now | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | | | Checking if the computation by should be parallelized at the loop level 1 | |
| | | | | | | | | Dimension 1 should not be mapped to CPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | | | Checking if the computation by should be vectorized at the loop level 1 | |
| | | | | | | | | | Dimension 1 should not be vectorized. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | | | Dimension 1 should not be mapped to GPU block. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | | | Dimension 1 should not be mapped to GPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | | | Dimension 1 should not be unrolled. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | | | Checking if the computation by should be distributed at the loop level 1 | |
| | | | | | | | | Dimension 1 should not be distributed. | |
| | | | | | | | The full list of tagged statements is now | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | | | Checking if the computation by should be parallelized at the loop level 2 | |
| | | | | | | | | Dimension 2 should not be mapped to CPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | | | Checking if the computation by should be vectorized at the loop level 2 | |
| | | | | | | | | | Dimension 2 should not be vectorized. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | | | Dimension 2 should not be mapped to GPU block. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | | | Dimension 2 should not be mapped to GPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | | | Dimension 2 should not be unrolled. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | | | Checking if the computation by should be distributed at the loop level 2 | |
| | | | | | | | | Dimension 2 should not be distributed. | |
| | | | | | | | The full list of tagged statements is now | |
| | | | | | | | The computation that corresponds to this node: | | | | | | | | | Dumping the computation "by" : | |
| | | | | | | | | Iteration domain of the computation "by" : { by[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | | Dumping the schedule of the computation by : | |
| | | | | | | | | | { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | | | | | Expression of the computation : (((bx(i, j, c) + bx((i + 1), j, c)) + bx((i + 2), j, c)) / cast(3) ) | |
| | | | | | | | | Access relation of the computation : { by[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } | |
| | | | | | | | | Time-space domain { by[0, 10, i, 0, j, 10, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | Computation to be scheduled ? 1 | |
| | | | | | | | | Access expression: _by_b3[c1][c3][c5] | |
| | | | | | | | | Access expression: _bx_b2[c1][c3][c5] | |
| | | | | | | | | Access expression: _bx_b2[c1 + 1][c3][c5] | |
| | | | | | | | | Access expression: _bx_b2[c1 + 2][c3][c5] | |
| | | | | | | | | Halide statement: | |
| | | | | | | | | NULL | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2951 create_halide_assignment] | |
| | | | | | | | | Generating stmt for assignment. | |
| | | | | | | | | This is not a let statement. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | | Getting the access of the computation by adapted to time-space. | |
| | | | | | | | | | Original access: { by[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } | |
| | | | | | | | | | Original schedule: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | | | | | | Trimmed schedule to apply: { by[t13, t14, t15] -> by[10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | | | | | | Transformed access: { by[10, i, 0, j, 10, c, 0] -> _by_b3[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | Buffer name extracted from the access relation: _by_b3 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | | Getting the access of the computation by adapted to time-space. | |
| | | | | | | | | | Original access: { by[i, j, c] -> _by_b3[i' = i, j' = j, c' = c] } | |
| | | | | | | | | | Original schedule: { by[t13, t14, t15] -> by[0, 10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | | | | | | Trimmed schedule to apply: { by[t13, t14, t15] -> by[10, i = t13, 0, j = t14, 10, c = t15, 0] : 0 <= t13 <= 97 and 0 <= t14 <= 197 and 0 <= t15 <= 2 } | |
| | | | | | | | | | Transformed access: { by[10, i, 0, j, 10, c, 0] -> _by_b3[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | A Tiramisu buffer that corresponds to the buffer indicated in the access relation was found. | |
| | | | | | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6867 dump] | |
| | | | | | | | | | Buffer "_by_b3", Number of dimensions: 3 | |
| | | | | | | | | | Dimension sizes: [(98 - 0), (198 - 0), (3 - 0), ] | |
| | | | | | | | | | Elements type: float32 | |
| | | | | | | | | | Function field: Not NULL | |
| | | | | | | | | | Argument type: temporary | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: (3 - 0) | |
| | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 3 | |
| | | | | | | | | | | Output expression: 3 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 0 | |
| | | | | | | | | | | Output expression: 0 | |
| | | | | | | | | | Output expression: (3 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | op type: o_sub | |
| | | | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: (198 - 0) | |
| | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 198 | |
| | | | | | | | | | | Output expression: 198 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 0 | |
| | | | | | | | | | | Output expression: 0 | |
| | | | | | | | | | Output expression: (198 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 198 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | op type: o_sub | |
| | | | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: (98 - 0) | |
| | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 98 | |
| | | | | | | | | | | Output expression: 98 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 0 | |
| | | | | | | | | | | Output expression: 0 | |
| | | | | | | | | | Output expression: (98 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 98 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | op type: o_sub | |
| | | | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Linearizing access of the LHS index expression. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | | | After linearization: (((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))) | |
| | | | | | | | | Index expressions of this statement are (the first is the LHS and the others are the RHS) : | |
| | | | | | | | | List of index expressions. | |
| | | | | | | | | _by_b3[c1][c3][c5] | |
| | | | | | | | | _bx_b2[c1][c3][c5] | |
| | | | | | | | | _bx_b2[c1 + 1][c3][c5] | |
| | | | | | | | | _bx_b2[c1 + 2][c3][c5] | |
| | | | | | | | | Erasing the LHS index expression from the vector of index expressions (the LHS index has just been linearized). | |
| | | | | | | | | Calling the Halide::Internal::Store::make function which creates the store statement. | |
| | | | | | | | | The RHS index expressions are first transformed to Halide expressions then passed to the make function. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: (((bx(i, j, c) + bx((i + 1), j, c)) + bx((i + 2), j, c)) / cast(3) ) | |
| | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: ((bx(i, j, c) + bx((i + 1), j, c)) + bx((i + 2), j, c)) | |
| | | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | Input expression: (bx(i, j, c) + bx((i + 1), j, c)) | |
| | | | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | Input expression: bx(i, j, c) | |
| | | | | | | | | | | | | Replacing the occurrences of original iterators in an o_access or o_address_of. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: i | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c1 | |
| | | | | | | | | | | | | | Output expression: cast(c1) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: j | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c3 | |
| | | | | | | | | | | | | | Output expression: cast(c3) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: c | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c5 | |
| | | | | | | | | | | | | | Output expression: cast(c5) | |
| | | | | | | | | | | | | Output expression: bx(cast(c1) , cast(c3) , cast(c5) ) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | Input expression: bx((i + 1), j, c) | |
| | | | | | | | | | | | | Replacing the occurrences of original iterators in an o_access or o_address_of. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: (i + 1) | |
| | | | | | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | | Input expression: i | |
| | | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | | Input expression: c1 | |
| | | | | | | | | | | | | | | Output expression: cast(c1) | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | | Input expression: 1 | |
| | | | | | | | | | | | | | | Output expression: 1 | |
| | | | | | | | | | | | | | Output expression: (cast(c1) + 1) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: j | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c3 | |
| | | | | | | | | | | | | | Output expression: cast(c3) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: c | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c5 | |
| | | | | | | | | | | | | | Output expression: cast(c5) | |
| | | | | | | | | | | | | Output expression: bx((cast(c1) + 1), cast(c3) , cast(c5) ) | |
| | | | | | | | | | | | Output expression: (bx(cast(c1) , cast(c3) , cast(c5) ) + bx((cast(c1) + 1), cast(c3) , cast(c5) )) | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | Input expression: bx((i + 2), j, c) | |
| | | | | | | | | | | | Replacing the occurrences of original iterators in an o_access or o_address_of. | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | Input expression: (i + 2) | |
| | | | | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: i | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c1 | |
| | | | | | | | | | | | | | Output expression: cast(c1) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: 2 | |
| | | | | | | | | | | | | | Output expression: 2 | |
| | | | | | | | | | | | | Output expression: (cast(c1) + 2) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | Input expression: j | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | Input expression: c3 | |
| | | | | | | | | | | | | Output expression: cast(c3) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | Input expression: c | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | Input expression: c5 | |
| | | | | | | | | | | | | Output expression: cast(c5) | |
| | | | | | | | | | | | Output expression: bx((cast(c1) + 2), cast(c3) , cast(c5) ) | |
| | | | | | | | | | | Output expression: ((bx(cast(c1) , cast(c3) , cast(c5) ) + bx((cast(c1) + 1), cast(c3) , cast(c5) )) + bx((cast(c1) + 2), cast(c3) , cast(c5) )) | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: cast(3) | |
| | | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | Input expression: 3 | |
| | | | | | | | | | | | Output expression: 3 | |
| | | | | | | | | | | Output expression: cast(3) | |
| | | | | | | | | | Output expression: (((bx(cast(c1) , cast(c3) , cast(c5) ) + bx((cast(c1) + 1), cast(c3) , cast(c5) )) + bx((cast(c1) + 2), cast(c3) , cast(c5) )) / cast(3) ) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: (((bx(cast(c1) , cast(c3) , cast(c5) ) + bx((cast(c1) + 1), cast(c3) , cast(c5) )) + bx((cast(c1) + 2), cast(c3) , cast(c5) )) / cast(3) ) | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: ((bx(cast(c1) , cast(c3) , cast(c5) ) + bx((cast(c1) + 1), cast(c3) , cast(c5) )) + bx((cast(c1) + 2), cast(c3) , cast(c5) )) | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | Input Tiramisu expression: (bx(cast(c1) , cast(c3) , cast(c5) ) + bx((cast(c1) + 1), cast(c3) , cast(c5) )) | |
| | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Input Tiramisu expression: bx(cast(c1) , cast(c3) , cast(c5) ) | |
| | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | op type: o_access or o_address | |
| | | | | | | | | | | | | Computation being accessed: bx | |
| | | | | | | | | | | | | Searching computation bx | |
| | | | | | | | | | | | | Computation found. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | | | | | | Getting the access of the computation bx adapted to time-space. | |
| | | | | | | | | | | | | | Original access: { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | | | | | | | | | | | Original schedule: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | | | | | | | | Trimmed schedule to apply: { bx[t9, t10, t11] -> bx[10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | | | | | | | | Transformed access: { bx[10, i, 0, j, 0, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | | | | | Name of the associated buffer: _bx_b2 | |
| | | | | | | | | | | | | Buffer has non-constant extents. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 198 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 98 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Buffer strides have been computed. | |
| | | | | | | | | | | | | index_expr is NOT empty. Retrieving access indices from index_expr (i.e., retrieving indices adapted to the schedule). | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | | | | | | | Generated stmt: (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Input Tiramisu expression: bx((cast(c1) + 1), cast(c3) , cast(c5) ) | |
| | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | op type: o_access or o_address | |
| | | | | | | | | | | | | Computation being accessed: bx | |
| | | | | | | | | | | | | Searching computation bx | |
| | | | | | | | | | | | | Computation found. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | | | | | | Getting the access of the computation bx adapted to time-space. | |
| | | | | | | | | | | | | | Original access: { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | | | | | | | | | | | Original schedule: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | | | | | | | | Trimmed schedule to apply: { bx[t9, t10, t11] -> bx[10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | | | | | | | | Transformed access: { bx[10, i, 0, j, 0, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | | | | | Name of the associated buffer: _bx_b2 | |
| | | | | | | | | | | | | Buffer has non-constant extents. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 198 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 98 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Buffer strides have been computed. | |
| | | | | | | | | | | | | index_expr is NOT empty. Retrieving access indices from index_expr (i.e., retrieving indices adapted to the schedule). | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | | | | | | | Generated stmt: (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))] | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | op type: o_add | |
| | | | | | | | | | | | Generated stmt: ((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | Input Tiramisu expression: bx((cast(c1) + 2), cast(c3) , cast(c5) ) | |
| | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | op type: o_access or o_address | |
| | | | | | | | | | | | Computation being accessed: bx | |
| | | | | | | | | | | | Searching computation bx | |
| | | | | | | | | | | | Computation found. | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | | | | | Getting the access of the computation bx adapted to time-space. | |
| | | | | | | | | | | | | Original access: { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | | | | | | | | | | Original schedule: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | | | | | | | Trimmed schedule to apply: { bx[t9, t10, t11] -> bx[10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | | | | | | | Transformed access: { bx[10, i, 0, j, 0, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | | | | Name of the associated buffer: _bx_b2 | |
| | | | | | | | | | | | Buffer has non-constant extents. | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 198 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 98 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | Buffer strides have been computed. | |
| | | | | | | | | | | | index_expr is NOT empty. Retrieving access indices from index_expr (i.e., retrieving indices adapted to the schedule). | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | | | | | | Generated stmt: (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))] | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | op type: o_add | |
| | | | | | | | | | | Generated stmt: (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))]) | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: cast(3) | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | op type: o_cast | |
| | | | | | | | | | | Generated stmt: 3.000000f | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | op type: o_div | |
| | | | | | | | | | Generated stmt: ((((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Halide::Internal::Store::make statement created. | |
| | | | | | | | | End of create_halide_stmt. Generated statement is: | |
| | | | | | | | | | | | | | | | | | { | |
| | | | | | | | | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | | | | | | } | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | | | | | The full list of tagged statements is now: | |
| | | | | | | | |
| | | | | | | Creating the for loop. | |
| | | | | | | For loop created. | |
| | | | | | | | | | | | | | { | |
| | | | | | | for (c5, 0, 3 - 0) { | |
| | | | | | | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | | | | } | |
| | | | | | | } | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | | | | Generated block: | |
| | | | | | | | | | | | { | |
| | | | | | for (c5, 0, 3 - 0) { | |
| | | | | | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | | | } | |
| | | | | | } | |
| | | | | | Block defined. | |
| | | | | | | | | | | | { | |
| | | | | | for (c5, 0, 3 - 0) { | |
| | | | | | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | | | } | |
| | | | | | } | |
| | | | | | Generating block. | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | | | | Generating code for Halide::For | |
| | | | | | | Creating for loop init expression. | |
| | | | | | | init expression: 0 | |
| | | | | | | Upper bound expression: 3 | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | | | | | Generating code for user node | |
| | | | | | | | Computation name: bx | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | | | Checking if the computation bx should be parallelized at the loop level 0 | |
| | | | | | | | | Dimension 0 should not be mapped to CPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | | | Checking if the computation bx should be vectorized at the loop level 0 | |
| | | | | | | | | | Dimension 0 should not be vectorized. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | | | Dimension 0 should not be mapped to GPU block. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | | | Dimension 0 should not be mapped to GPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | | | Dimension 0 should not be unrolled. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | | | Checking if the computation bx should be distributed at the loop level 0 | |
| | | | | | | | | Dimension 0 should not be distributed. | |
| | | | | | | | The full list of tagged statements is now | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | | | Checking if the computation bx should be parallelized at the loop level 1 | |
| | | | | | | | | Dimension 1 should not be mapped to CPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | | | Checking if the computation bx should be vectorized at the loop level 1 | |
| | | | | | | | | | Dimension 1 should not be vectorized. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | | | Dimension 1 should not be mapped to GPU block. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | | | Dimension 1 should not be mapped to GPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | | | Dimension 1 should not be unrolled. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | | | Checking if the computation bx should be distributed at the loop level 1 | |
| | | | | | | | | Dimension 1 should not be distributed. | |
| | | | | | | | The full list of tagged statements is now | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | | | Checking if the computation bx should be parallelized at the loop level 2 | |
| | | | | | | | | Dimension 2 should not be mapped to CPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | | | Checking if the computation bx should be vectorized at the loop level 2 | |
| | | | | | | | | | Dimension 2 should not be vectorized. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | | | Dimension 2 should not be mapped to GPU block. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | | | Dimension 2 should not be mapped to GPU thread. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | | | Dimension 2 should not be unrolled. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | | | Checking if the computation bx should be distributed at the loop level 2 | |
| | | | | | | | | Dimension 2 should not be distributed. | |
| | | | | | | | The full list of tagged statements is now | |
| | | | | | | | The computation that corresponds to this node: | | | | | | | | | Dumping the computation "bx" : | |
| | | | | | | | | Iteration domain of the computation "bx" : { bx[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | | Dumping the schedule of the computation bx : | |
| | | | | | | | | | { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | | | Expression of the computation : (((cp1(i, j, c) + cp1(i, (j + 1), c)) + cp1(i, (j + 2), c)) / cast(3) ) | |
| | | | | | | | | Access relation of the computation : { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | | | | | | Time-space domain { bx[0, 10, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | Computation to be scheduled ? 1 | |
| | | | | | | | | Access expression: _bx_b2[c1][c3][c5] | |
| | | | | | | | | Access expression: _cp1_b1[c1][c3][c5] | |
| | | | | | | | | Access expression: _cp1_b1[c1][c3 + 1][c5] | |
| | | | | | | | | Access expression: _cp1_b1[c1][c3 + 2][c5] | |
| | | | | | | | | Halide statement: | |
| | | | | | | | | NULL | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2951 create_halide_assignment] | |
| | | | | | | | | Generating stmt for assignment. | |
| | | | | | | | | This is not a let statement. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | | Getting the access of the computation bx adapted to time-space. | |
| | | | | | | | | | Original access: { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | | | | | | | Original schedule: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | | | | Trimmed schedule to apply: { bx[t9, t10, t11] -> bx[10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | | | | Transformed access: { bx[10, i, 0, j, 0, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | Buffer name extracted from the access relation: _bx_b2 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | | Getting the access of the computation bx adapted to time-space. | |
| | | | | | | | | | Original access: { bx[i, j, c] -> _bx_b2[i' = i, j' = j, c' = c] } | |
| | | | | | | | | | Original schedule: { bx[t9, t10, t11] -> bx[0, 10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | | | | Trimmed schedule to apply: { bx[t9, t10, t11] -> bx[10, i = t9, 0, j = t10, 0, c = t11, 0] : 0 <= t9 <= 97 and 0 <= t10 <= 197 and 0 <= t11 <= 2 } | |
| | | | | | | | | | Transformed access: { bx[10, i, 0, j, 0, c, 0] -> _bx_b2[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | A Tiramisu buffer that corresponds to the buffer indicated in the access relation was found. | |
| | | | | | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6867 dump] | |
| | | | | | | | | | Buffer "_bx_b2", Number of dimensions: 3 | |
| | | | | | | | | | Dimension sizes: [(98 - 0), (198 - 0), (3 - 0), ] | |
| | | | | | | | | | Elements type: float32 | |
| | | | | | | | | | Function field: Not NULL | |
| | | | | | | | | | Argument type: temporary | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: (3 - 0) | |
| | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 3 | |
| | | | | | | | | | | Output expression: 3 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 0 | |
| | | | | | | | | | | Output expression: 0 | |
| | | | | | | | | | Output expression: (3 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | op type: o_sub | |
| | | | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: (198 - 0) | |
| | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 198 | |
| | | | | | | | | | | Output expression: 198 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 0 | |
| | | | | | | | | | | Output expression: 0 | |
| | | | | | | | | | Output expression: (198 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 198 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | op type: o_sub | |
| | | | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: (98 - 0) | |
| | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 98 | |
| | | | | | | | | | | Output expression: 98 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: 0 | |
| | | | | | | | | | | Output expression: 0 | |
| | | | | | | | | | Output expression: (98 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 98 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | op type: o_sub | |
| | | | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Linearizing access of the LHS index expression. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | | | After linearization: (((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))) | |
| | | | | | | | | Index expressions of this statement are (the first is the LHS and the others are the RHS) : | |
| | | | | | | | | List of index expressions. | |
| | | | | | | | | _bx_b2[c1][c3][c5] | |
| | | | | | | | | _cp1_b1[c1][c3][c5] | |
| | | | | | | | | _cp1_b1[c1][c3 + 1][c5] | |
| | | | | | | | | _cp1_b1[c1][c3 + 2][c5] | |
| | | | | | | | | Erasing the LHS index expression from the vector of index expressions (the LHS index has just been linearized). | |
| | | | | | | | | Calling the Halide::Internal::Store::make function which creates the store statement. | |
| | | | | | | | | The RHS index expressions are first transformed to Halide expressions then passed to the make function. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: (((cp1(i, j, c) + cp1(i, (j + 1), c)) + cp1(i, (j + 2), c)) / cast(3) ) | |
| | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: ((cp1(i, j, c) + cp1(i, (j + 1), c)) + cp1(i, (j + 2), c)) | |
| | | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | Input expression: (cp1(i, j, c) + cp1(i, (j + 1), c)) | |
| | | | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | Input expression: cp1(i, j, c) | |
| | | | | | | | | | | | | Replacing the occurrences of original iterators in an o_access or o_address_of. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: i | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c1 | |
| | | | | | | | | | | | | | Output expression: cast(c1) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: j | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c3 | |
| | | | | | | | | | | | | | Output expression: cast(c3) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: c | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c5 | |
| | | | | | | | | | | | | | Output expression: cast(c5) | |
| | | | | | | | | | | | | Output expression: cp1(cast(c1) , cast(c3) , cast(c5) ) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | Input expression: cp1(i, (j + 1), c) | |
| | | | | | | | | | | | | Replacing the occurrences of original iterators in an o_access or o_address_of. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: i | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c1 | |
| | | | | | | | | | | | | | Output expression: cast(c1) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: (j + 1) | |
| | | | | | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | | Input expression: j | |
| | | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | | Input expression: c3 | |
| | | | | | | | | | | | | | | Output expression: cast(c3) | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | | Input expression: 1 | |
| | | | | | | | | | | | | | | Output expression: 1 | |
| | | | | | | | | | | | | | Output expression: (cast(c3) + 1) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: c | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c5 | |
| | | | | | | | | | | | | | Output expression: cast(c5) | |
| | | | | | | | | | | | | Output expression: cp1(cast(c1) , (cast(c3) + 1), cast(c5) ) | |
| | | | | | | | | | | | Output expression: (cp1(cast(c1) , cast(c3) , cast(c5) ) + cp1(cast(c1) , (cast(c3) + 1), cast(c5) )) | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | Input expression: cp1(i, (j + 2), c) | |
| | | | | | | | | | | | Replacing the occurrences of original iterators in an o_access or o_address_of. | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | Input expression: i | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | Input expression: c1 | |
| | | | | | | | | | | | | Output expression: cast(c1) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | Input expression: (j + 2) | |
| | | | | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: j | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | | Input expression: c3 | |
| | | | | | | | | | | | | | Output expression: cast(c3) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | | Input expression: 2 | |
| | | | | | | | | | | | | | Output expression: 2 | |
| | | | | | | | | | | | | Output expression: (cast(c3) + 2) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | | Input expression: c | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | | | | Input expression: c5 | |
| | | | | | | | | | | | | Output expression: cast(c5) | |
| | | | | | | | | | | | Output expression: cp1(cast(c1) , (cast(c3) + 2), cast(c5) ) | |
| | | | | | | | | | | Output expression: ((cp1(cast(c1) , cast(c3) , cast(c5) ) + cp1(cast(c1) , (cast(c3) + 1), cast(c5) )) + cp1(cast(c1) , (cast(c3) + 2), cast(c5) )) | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | Input expression: cast(3) | |
| | | | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | | | Input expression: 3 | |
| | | | | | | | | | | | Output expression: 3 | |
| | | | | | | | | | | Output expression: cast(3) | |
| | | | | | | | | | Output expression: (((cp1(cast(c1) , cast(c3) , cast(c5) ) + cp1(cast(c1) , (cast(c3) + 1), cast(c5) )) + cp1(cast(c1) , (cast(c3) + 2), cast(c5) )) / cast(3) ) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: (((cp1(cast(c1) , cast(c3) , cast(c5) ) + cp1(cast(c1) , (cast(c3) + 1), cast(c5) )) + cp1(cast(c1) , (cast(c3) + 2), cast(c5) )) / cast(3) ) | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: ((cp1(cast(c1) , cast(c3) , cast(c5) ) + cp1(cast(c1) , (cast(c3) + 1), cast(c5) )) + cp1(cast(c1) , (cast(c3) + 2), cast(c5) )) | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | Input Tiramisu expression: (cp1(cast(c1) , cast(c3) , cast(c5) ) + cp1(cast(c1) , (cast(c3) + 1), cast(c5) )) | |
| | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Input Tiramisu expression: cp1(cast(c1) , cast(c3) , cast(c5) ) | |
| | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | op type: o_access or o_address | |
| | | | | | | | | | | | | Computation being accessed: cp1 | |
| | | | | | | | | | | | | Searching computation cp1 | |
| | | | | | | | | | | | | Computation found. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | | | | | | Getting the access of the computation cp1 adapted to time-space. | |
| | | | | | | | | | | | | | Original access: { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | | | | | | | | | | | Original schedule: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | | | | | | | | | | Trimmed schedule to apply: { cp1[t5, t6, t7] -> cp1[0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | | | | | | | | | | Transformed access: { cp1[0, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | | | | | Name of the associated buffer: _cp1_b1 | |
| | | | | | | | | | | | | Buffer has non-constant extents. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 198 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 98 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Buffer strides have been computed. | |
| | | | | | | | | | | | | index_expr is NOT empty. Retrieving access indices from index_expr (i.e., retrieving indices adapted to the schedule). | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | | | | | | | Generated stmt: (float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Input Tiramisu expression: cp1(cast(c1) , (cast(c3) + 1), cast(c5) ) | |
| | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | op type: o_access or o_address | |
| | | | | | | | | | | | | Computation being accessed: cp1 | |
| | | | | | | | | | | | | Searching computation cp1 | |
| | | | | | | | | | | | | Computation found. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | | | | | | Getting the access of the computation cp1 adapted to time-space. | |
| | | | | | | | | | | | | | Original access: { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | | | | | | | | | | | Original schedule: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | | | | | | | | | | Trimmed schedule to apply: { cp1[t5, t6, t7] -> cp1[0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | | | | | | | | | | Transformed access: { cp1[0, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | | | | | Name of the associated buffer: _cp1_b1 | |
| | | | | | | | | | | | | Buffer has non-constant extents. | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 198 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 98 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Buffer strides have been computed. | |
| | | | | | | | | | | | | index_expr is NOT empty. Retrieving access indices from index_expr (i.e., retrieving indices adapted to the schedule). | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | | | | | | | Generated stmt: (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | op type: o_add | |
| | | | | | | | | | | | Generated stmt: ((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | Input Tiramisu expression: cp1(cast(c1) , (cast(c3) + 2), cast(c5) ) | |
| | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | op type: o_access or o_address | |
| | | | | | | | | | | | Computation being accessed: cp1 | |
| | | | | | | | | | | | Searching computation cp1 | |
| | | | | | | | | | | | Computation found. | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | | | | | Getting the access of the computation cp1 adapted to time-space. | |
| | | | | | | | | | | | | Original access: { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | | | | | | | | | | Original schedule: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | | | | | | | | | Trimmed schedule to apply: { cp1[t5, t6, t7] -> cp1[0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | | | | | | | | | Transformed access: { cp1[0, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | | | | Name of the associated buffer: _cp1_b1 | |
| | | | | | | | | | | | Buffer has non-constant extents. | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 198 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 98 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | | op type: o_sub | |
| | | | | | | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | Buffer strides have been computed. | |
| | | | | | | | | | | | index_expr is NOT empty. Retrieving access indices from index_expr (i.e., retrieving indices adapted to the schedule). | |
| | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | | | | | | Generated stmt: (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | op type: o_add | |
| | | | | | | | | | | Generated stmt: (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: cast(3) | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | | | The input function is test | |
| | | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | op type: o_cast | |
| | | | | | | | | | | Generated stmt: 3.000000f | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | op type: o_div | |
| | | | | | | | | | Generated stmt: ((((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Halide::Internal::Store::make statement created. | |
| | | | | | | | | End of create_halide_stmt. Generated statement is: | |
| | | | | | | | | | | | | | | | | | { | |
| | | | | | | | | _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | | | | | | } | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | | | | | The full list of tagged statements is now: | |
| | | | | | | | |
| | | | | | | Creating the for loop. | |
| | | | | | | For loop created. | |
| | | | | | | | | | | | | | { | |
| | | | | | | for (c5, 0, 3 - 0) { | |
| | | | | | | _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | | | | } | |
| | | | | | | } | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | | | | Generated block: | |
| | | | | | | | | | | | { | |
| | | | | | for (c5, 0, 3 - 0) { | |
| | | | | | _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | | | } | |
| | | | | | } | |
| | | | | | Block defined. | |
| | | | | | | | | | | | { | |
| | | | | | for (c5, 0, 3 - 0) { | |
| | | | | | _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | | | } | |
| | | | | | for (c5, 0, 3 - 0) { | |
| | | | | | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | | | } | |
| | | | | | } | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | | | The full list of tagged statements is now: | |
| | | | | | |
| | | | | Creating the for loop. | |
| | | | | For loop created. | |
| | | | | | | | | | { | |
| | | | | for (c3, 0, 198 - 0) { | |
| | | | | for (c5, 0, 3 - 0) { | |
| | | | | _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | | } | |
| | | | | for (c5, 0, 3 - 0) { | |
| | | | | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | | } | |
| | | | | } | |
| | | | | } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | | The full list of tagged statements is now: | |
| | | | | |
| | | | Creating the for loop. | |
| | | | For loop created. | |
| | | | | | | | { | |
| | | | for (c1, 0, 98 - 0) { | |
| | | | for (c3, 0, 198 - 0) { | |
| | | | for (c5, 0, 3 - 0) { | |
| | | | _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | } | |
| | | | for (c5, 0, 3 - 0) { | |
| | | | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | | } | |
| | | | } | |
| | | | } | |
| | | | } | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | Generated block: | |
| | | | | | { | |
| | | for (c1, 0, 98 - 0) { | |
| | | for (c3, 0, 198 - 0) { | |
| | | for (c5, 0, 3 - 0) { | |
| | | _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | } | |
| | | for (c5, 0, 3 - 0) { | |
| | | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | } | |
| | | } | |
| | | } | |
| | | } | |
| | | Block defined. | |
| | | | | | { | |
| | | for (c1, 0, 98 - 0) { | |
| | | for (c3, 0, 198 - 0) { | |
| | | for (c5, 0, 3 - 0) { | |
| | | _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | } | |
| | | for (c5, 0, 3 - 0) { | |
| | | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | } | |
| | | } | |
| | | } | |
| | | } | |
| | | Generating block. | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | Generating code for Halide::For | |
| | | | Creating for loop init expression. | |
| | | | init expression: 0 | |
| | | | Upper bound expression: 98 | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | | Generating code for Halide::For | |
| | | | | Creating for loop init expression. | |
| | | | | init expression: 0 | |
| | | | | Upper bound expression: 198 | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | | | Generating code for Halide::For | |
| | | | | | Creating for loop init expression. | |
| | | | | | init expression: 0 | |
| | | | | | Upper bound expression: 3 | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1739 halide_stmt_from_isl_node] | |
| | | | | | | Generating code for user node | |
| | | | | | | Computation name: cp1 | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | | Checking if the computation cp1 should be parallelized at the loop level 0 | |
| | | | | | | | Dimension 0 should not be mapped to CPU thread. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | | Checking if the computation cp1 should be vectorized at the loop level 0 | |
| | | | | | | | | Dimension 0 should not be vectorized. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | | Dimension 0 should not be mapped to GPU block. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | | Dimension 0 should not be mapped to GPU thread. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | | Dimension 0 should not be unrolled. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | | Checking if the computation cp1 should be distributed at the loop level 0 | |
| | | | | | | | Dimension 0 should not be distributed. | |
| | | | | | | The full list of tagged statements is now | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | | Checking if the computation cp1 should be parallelized at the loop level 1 | |
| | | | | | | | Dimension 1 should not be mapped to CPU thread. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | | Checking if the computation cp1 should be vectorized at the loop level 1 | |
| | | | | | | | | Dimension 1 should not be vectorized. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | | Dimension 1 should not be mapped to GPU block. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | | Dimension 1 should not be mapped to GPU thread. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | | Dimension 1 should not be unrolled. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | | Checking if the computation cp1 should be distributed at the loop level 1 | |
| | | | | | | | Dimension 1 should not be distributed. | |
| | | | | | | The full list of tagged statements is now | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1035 should_parallelize] | |
| | | | | | | | Checking if the computation cp1 should be parallelized at the loop level 2 | |
| | | | | | | | Dimension 2 should not be mapped to CPU thread. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1174 should_vectorize] | |
| | | | | | | | Checking if the computation cp1 should be vectorized at the loop level 2 | |
| | | | | | | | | Dimension 2 should not be vectorized. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1631 should_map_to_gpu_block] | |
| | | | | | | | Dimension 2 should not be mapped to GPU block. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1658 should_map_to_gpu_thread] | |
| | | | | | | | Dimension 2 should not be mapped to GPU thread. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1608 should_unroll] | |
| | | | | | | | Dimension 2 should not be unrolled. | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_function.cpp:1210 should_distribute] | |
| | | | | | | | Checking if the computation cp1 should be distributed at the loop level 2 | |
| | | | | | | | Dimension 2 should not be distributed. | |
| | | | | | | The full list of tagged statements is now | |
| | | | | | | The computation that corresponds to this node: | | | | | | | | Dumping the computation "cp1" : | |
| | | | | | | | Iteration domain of the computation "cp1" : { cp1[i, j, c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | | Dumping the schedule of the computation cp1 : | |
| | | | | | | | | { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | | | | Expression of the computation : input(i, j, c) | |
| | | | | | | | Access relation of the computation : { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | | | | | Time-space domain { cp1[0, 0, i, 0, j, 0, c, 0] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | Computation to be scheduled ? 1 | |
| | | | | | | | Access expression: _cp1_b1[c1][c3][c5] | |
| | | | | | | | Access expression: _input_b0[c1][c3][c5] | |
| | | | | | | | Halide statement: | |
| | | | | | | | NULL | |
| | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2951 create_halide_assignment] | |
| | | | | | | | Generating stmt for assignment. | |
| | | | | | | | This is not a let statement. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | Getting the access of the computation cp1 adapted to time-space. | |
| | | | | | | | | Original access: { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | | | | | | Original schedule: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | | | | | Trimmed schedule to apply: { cp1[t5, t6, t7] -> cp1[0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | | | | | Transformed access: { cp1[0, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | Buffer name extracted from the access relation: _cp1_b1 | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | Getting the access of the computation cp1 adapted to time-space. | |
| | | | | | | | | Original access: { cp1[i, j, c] -> _cp1_b1[i' = i, j' = j, c' = c] } | |
| | | | | | | | | Original schedule: { cp1[t5, t6, t7] -> cp1[0, 0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | | | | | Trimmed schedule to apply: { cp1[t5, t6, t7] -> cp1[0, i = t5, 0, j = t6, 0, c = t7, 0] : 0 <= t5 <= 97 and 0 <= t6 <= 197 and 0 <= t7 <= 2 } | |
| | | | | | | | | Transformed access: { cp1[0, i, 0, j, 0, c, 0] -> _cp1_b1[i' = i, j' = j, c' = c] : 0 <= i <= 97 and 0 <= j <= 197 and 0 <= c <= 2 } | |
| | | | | | | | A Tiramisu buffer that corresponds to the buffer indicated in the access relation was found. | |
| | | | | | | | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:6867 dump] | |
| | | | | | | | | Buffer "_cp1_b1", Number of dimensions: 3 | |
| | | | | | | | | Dimension sizes: [(98 - 0), (198 - 0), (3 - 0), ] | |
| | | | | | | | | Elements type: float32 | |
| | | | | | | | | Function field: Not NULL | |
| | | | | | | | | Argument type: temporary | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: (3 - 0) | |
| | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: 3 | |
| | | | | | | | | | Output expression: 3 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: 0 | |
| | | | | | | | | | Output expression: 0 | |
| | | | | | | | | Output expression: (3 - 0) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | op type: o_sub | |
| | | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: (198 - 0) | |
| | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: 198 | |
| | | | | | | | | | Output expression: 198 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: 0 | |
| | | | | | | | | | Output expression: 0 | |
| | | | | | | | | Output expression: (198 - 0) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: (198 - 0) | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 198 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 198 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | op type: o_sub | |
| | | | | | | | | Generated stmt: (198 - 0) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: (98 - 0) | |
| | | | | | | | | Replacing iterators in an e_op. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: 98 | |
| | | | | | | | | | Output expression: 98 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: 0 | |
| | | | | | | | | | Output expression: 0 | |
| | | | | | | | | Output expression: (98 - 0) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: (98 - 0) | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 98 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 98 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | op type: o_sub | |
| | | | | | | | | Generated stmt: (98 - 0) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Linearizing access of the LHS index expression. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | | After linearization: (((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))) | |
| | | | | | | | Index expressions of this statement are (the first is the LHS and the others are the RHS) : | |
| | | | | | | | List of index expressions. | |
| | | | | | | | _cp1_b1[c1][c3][c5] | |
| | | | | | | | _input_b0[c1][c3][c5] | |
| | | | | | | | Erasing the LHS index expression from the vector of index expressions (the LHS index has just been linearized). | |
| | | | | | | | Calling the Halide::Internal::Store::make function which creates the store statement. | |
| | | | | | | | The RHS index expressions are first transformed to Halide expressions then passed to the make function. | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | Input expression: input(i, j, c) | |
| | | | | | | | | Replacing the occurrences of original iterators in an o_access or o_address_of. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: i | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | Input expression: c1 | |
| | | | | | | | | | Output expression: cast(c1) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: j | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | Input expression: c3 | |
| | | | | | | | | | Output expression: cast(c3) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:1122 replace_original_indices_with_transformed_indices] | |
| | | | | | | | | | Input expression: c | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:979 tiramisu_expr_from_isl_ast_expr] | |
| | | | | | | | | | | Input expression: c5 | |
| | | | | | | | | | Output expression: cast(c5) | |
| | | | | | | | | Output expression: input(cast(c1) , cast(c3) , cast(c5) ) | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Input Tiramisu expression: input(cast(c1) , cast(c3) , cast(c5) ) | |
| | | | | | | | | The input function is test | |
| | | | | | | | | The input index_expr is not empty. | |
| | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | op type: o_access or o_address | |
| | | | | | | | | Computation being accessed: input | |
| | | | | | | | | Searching computation input | |
| | | | | | | | | Computation found. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_core.cpp:7294 get_access_relation_adapted_to_time_processor_domain] | |
| | | | | | | | | | Getting the access of the computation input adapted to time-space. | |
| | | | | | | | | | Original access: { input[i, j, c] -> _input_b0[i' = i, j' = j, c' = c] } | |
| | | | | | | | | | Original schedule: { input[t1, t2, t3] -> input[0, 0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | | | | | | | | | Trimmed schedule to apply: { input[t1, t2, t3] -> input[0, i = t1, 0, j = t2, 0, c = t3, 0] : 0 <= t1 <= 99 and 0 <= t2 <= 199 and 0 <= t3 <= 2 } | |
| | | | | | | | | | Transformed access: { input[0, i, 0, j, 0, c, 0] -> _input_b0[i' = i, j' = j, c' = c] : 0 <= i <= 99 and 0 <= j <= 199 and 0 <= c <= 2 } | |
| | | | | | | | | Name of the associated buffer: _input_b0 | |
| | | | | | | | | Buffer has non-constant extents. | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: (3 - 0) | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 3 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 3 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | op type: o_sub | |
| | | | | | | | | | Generated stmt: (3 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: (200 - 0) | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 200 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 200 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | op type: o_sub | |
| | | | | | | | | | Generated stmt: (200 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | Input Tiramisu expression: (100 - 0) | |
| | | | | | | | | | The input function is test | |
| | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | tiramisu expression of type tiramisu::e_op | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 100 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 100 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | | Input Tiramisu expression: 0 | |
| | | | | | | | | | | The input function is test | |
| | | | | | | | | | | The input index_expr is empty. | |
| | | | | | | | | | | tiramisu expression of type tiramisu::e_val | |
| | | | | | | | | | | Generated stmt: 0 | |
| | | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | | op type: o_sub | |
| | | | | | | | | | Generated stmt: (100 - 0) | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | | Buffer strides have been computed. | |
| | | | | | | | | index_expr is NOT empty. Retrieving access indices from index_expr (i.e., retrieving indices adapted to the schedule). | |
| | | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2715 linearize_access] | |
| | | | | | | | | Generated stmt: (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
| | | | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | | | | | | | Halide::Internal::Store::make statement created. | |
| | | | | | | | End of create_halide_stmt. Generated statement is: | |
| | | | | | | | | | | | | | | | { | |
| | | | | | | | _cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
| | | | | | | | } | |
| | | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | | | | The full list of tagged statements is now: | |
| | | | | | | |
| | | | | | Creating the for loop. | |
| | | | | | For loop created. | |
| | | | | | | | | | | | { | |
| | | | | | for (c5, 0, 3 - 0) { | |
| | | | | | _cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
| | | | | | } | |
| | | | | | } | |
| | | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | | | The full list of tagged statements is now: | |
| | | | | | |
| | | | | Creating the for loop. | |
| | | | | For loop created. | |
| | | | | | | | | | { | |
| | | | | for (c3, 0, 198 - 0) { | |
| | | | | for (c5, 0, 3 - 0) { | |
| | | | | _cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
| | | | | } | |
| | | | | } | |
| | | | | } | |
| | | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | | The full list of tagged statements is now: | |
| | | | | |
| | | | Creating the for loop. | |
| | | | For loop created. | |
| | | | | | | | { | |
| | | | for (c1, 0, 98 - 0) { | |
| | | | for (c3, 0, 198 - 0) { | |
| | | | for (c5, 0, 3 - 0) { | |
| | | | _cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
| | | | } | |
| | | | } | |
| | | | } | |
| | | | } | |
| | | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | | Generated block: | |
| | | | | | { | |
| | | for (c1, 0, 98 - 0) { | |
| | | for (c3, 0, 198 - 0) { | |
| | | for (c5, 0, 3 - 0) { | |
| | | _cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
| | | } | |
| | | } | |
| | | } | |
| | | } | |
| | | Block defined. | |
| | | | | | { | |
| | | for (c1, 0, 98 - 0) { | |
| | | for (c3, 0, 198 - 0) { | |
| | | for (c5, 0, 3 - 0) { | |
| | | _cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
| | | } | |
| | | } | |
| | | } | |
| | | for (c1, 0, 98 - 0) { | |
| | | for (c3, 0, 198 - 0) { | |
| | | for (c5, 0, 3 - 0) { | |
| | | _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | } | |
| | | for (c5, 0, 3 - 0) { | |
| | | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | | } | |
| | | } | |
| | | } | |
| | | } | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| | Generated block: | |
| | | | { | |
| | for (c1, 0, 98 - 0) { | |
| | for (c3, 0, 198 - 0) { | |
| | for (c5, 0, 3 - 0) { | |
| | _cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
| | } | |
| | } | |
| | } | |
| | for (c1, 0, 98 - 0) { | |
| | for (c3, 0, 198 - 0) { | |
| | for (c5, 0, 3 - 0) { | |
| | _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | } | |
| | for (c5, 0, 3 - 0) { | |
| | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | } | |
| | } | |
| | } | |
| | } | |
| | Block defined. | |
| | | | { | |
| | for (c1, 0, 98 - 0) { | |
| | for (c3, 0, 198 - 0) { | |
| | for (c5, 0, 3 - 0) { | |
| | _cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
| | } | |
| | } | |
| | } | |
| | for (c1, 0, 98 - 0) { | |
| | for (c3, 0, 198 - 0) { | |
| | for (c5, 0, 3 - 0) { | |
| | _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | } | |
| | for (c5, 0, 3 - 0) { | |
| | _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| | } | |
| | } | |
| | } | |
| | for (c1, 0, 98 - 0) { | |
| | for (c3, 0, 198 - 0) { | |
| | for (c5, 0, 3 - 0) { | |
| | _cp2_b4[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| | } | |
| | } | |
| | } | |
| | } | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:2476 halide_stmt_from_isl_node] | |
| The following Halide statement was generated: | |
| | { | |
| for (c1, 0, 98 - 0) { | |
| for (c3, 0, 198 - 0) { | |
| for (c5, 0, 3 - 0) { | |
| _cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
| } | |
| } | |
| } | |
| for (c1, 0, 98 - 0) { | |
| for (c3, 0, 198 - 0) { | |
| for (c5, 0, 3 - 0) { | |
| _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + (float32)_cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| } | |
| for (c5, 0, 3 - 0) { | |
| _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (((float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + (float32)_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| } | |
| } | |
| } | |
| for (c1, 0, 98 - 0) { | |
| for (c3, 0, 198 - 0) { | |
| for (c5, 0, 3 - 0) { | |
| _cp2_b4[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| } | |
| } | |
| } | |
| } | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | Input Tiramisu expression: (3 - 0) | |
| | The input function is test | |
| | The input index_expr is empty. | |
| | tiramisu expression of type tiramisu::e_op | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 3 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 3 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 0 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 0 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | op type: o_sub | |
| | Generated stmt: (3 - 0) | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | Input Tiramisu expression: (198 - 0) | |
| | The input function is test | |
| | The input index_expr is empty. | |
| | tiramisu expression of type tiramisu::e_op | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 198 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 198 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 0 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 0 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | op type: o_sub | |
| | Generated stmt: (198 - 0) | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | Input Tiramisu expression: (98 - 0) | |
| | The input function is test | |
| | The input index_expr is empty. | |
| | tiramisu expression of type tiramisu::e_op | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 98 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 98 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 0 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 0 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | op type: o_sub | |
| | Generated stmt: (98 - 0) | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | Input Tiramisu expression: (3 - 0) | |
| | The input function is test | |
| | The input index_expr is empty. | |
| | tiramisu expression of type tiramisu::e_op | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 3 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 3 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 0 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 0 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | op type: o_sub | |
| | Generated stmt: (3 - 0) | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | Input Tiramisu expression: (198 - 0) | |
| | The input function is test | |
| | The input index_expr is empty. | |
| | tiramisu expression of type tiramisu::e_op | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 198 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 198 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 0 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 0 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | op type: o_sub | |
| | Generated stmt: (198 - 0) | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | Input Tiramisu expression: (98 - 0) | |
| | The input function is test | |
| | The input index_expr is empty. | |
| | tiramisu expression of type tiramisu::e_op | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 98 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 98 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 0 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 0 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | op type: o_sub | |
| | Generated stmt: (98 - 0) | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | Input Tiramisu expression: (3 - 0) | |
| | The input function is test | |
| | The input index_expr is empty. | |
| | tiramisu expression of type tiramisu::e_op | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 3 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 3 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 0 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 0 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | op type: o_sub | |
| | Generated stmt: (3 - 0) | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | Input Tiramisu expression: (198 - 0) | |
| | The input function is test | |
| | The input index_expr is empty. | |
| | tiramisu expression of type tiramisu::e_op | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 198 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 198 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 0 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 0 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | op type: o_sub | |
| | Generated stmt: (198 - 0) | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | Input Tiramisu expression: (98 - 0) | |
| | The input function is test | |
| | The input index_expr is empty. | |
| | tiramisu expression of type tiramisu::e_op | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 98 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 98 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3453 halide_expr_from_tiramisu_expr] | |
| | | Input Tiramisu expression: 0 | |
| | | The input function is test | |
| | | The input index_expr is empty. | |
| | | tiramisu expression of type tiramisu::e_val | |
| | | Generated stmt: 0 | |
| | [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | op type: o_sub | |
| | Generated stmt: (98 - 0) | |
| [/Users/lisa/Documents/tiramisu/src/tiramisu_codegen_halide.cpp:3989 halide_expr_from_tiramisu_expr] | |
| | |
Generated Halide stmt before lowering: | |
| | { | |
| produce { | |
| allocate _cp1_b1[float32 * (3 - 0) * (198 - 0) * (98 - 0)] in Heap | |
| allocate _by_b3[float32 * (3 - 0) * (198 - 0) * (98 - 0)] in Heap | |
| allocate _bx_b2[float32 * (3 - 0) * (198 - 0) * (98 - 0)] in Heap | |
| for (c1, 0, 98 - 0) { | |
| for (c3, 0, 198 - 0) { | |
| for (c5, 0, 3 - 0) { | |
| _cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
| } | |
| } | |
| } | |
| for (c1, 0, 98 - 0) { | |
| for (c3, 0, 198 - 0) { | |
| for (c5, 0, 3 - 0) { | |
| _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = ((_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + _cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + _cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| } | |
| for (c5, 0, 3 - 0) { | |
| _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = ((_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
| } | |
| } | |
| } | |
| for (c1, 0, 98 - 0) { | |
| for (c3, 0, 198 - 0) { | |
| for (c5, 0, 3 - 0) { | |
| _cp2_b4[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
| } | |
| } | |
| } | |
| } | |
| } | |
Lower halide pipeline... | |
produce { | |
allocate _cp1_b1[float32 * (3 - 0) * (198 - 0) * (98 - 0)] in Heap | |
allocate _by_b3[float32 * (3 - 0) * (198 - 0) * (98 - 0)] in Heap | |
allocate _bx_b2[float32 * (3 - 0) * (198 - 0) * (98 - 0)] in Heap | |
for (c1, 0, 98 - 0) { | |
for (c3, 0, 198 - 0) { | |
for (c5, 0, 3 - 0) { | |
_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = (float32)_input_b0[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(200 - 0)))] | |
} | |
} | |
} | |
for (c1, 0, 98 - 0) { | |
for (c3, 0, 198 - 0) { | |
for (c5, 0, 3 - 0) { | |
_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = ((_cp1_b1[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + _cp1_b1[((0 + (c5*1)) + ((c3 + 1)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))]) + _cp1_b1[((0 + (c5*1)) + ((c3 + 2)*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
} | |
for (c5, 0, 3 - 0) { | |
_by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = ((_bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] + _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 1)*((1*(3 - 0))*(198 - 0)))]) + _bx_b2[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + ((c1 + 2)*((1*(3 - 0))*(198 - 0)))])/3.000000f | |
} | |
} | |
} | |
for (c1, 0, 98 - 0) { | |
for (c3, 0, 198 - 0) { | |
for (c5, 0, 3 - 0) { | |
_cp2_b4[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] = _by_b3[((0 + (c5*1)) + (c3*(1*(3 - 0)))) + (c1*((1*(3 - 0))*(198 - 0)))] | |
} | |
} | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment