Skip to content

Instantly share code, notes, and snippets.

@zhen8838
Created October 30, 2023 04:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zhen8838/c579bbf43d4bfe3c3e53c828ce9ce507 to your computer and use it in GitHub Desktop.
Save zhen8838/c579bbf43d4bfe3c3e53c828ce9ce507 to your computer and use it in GitHub Desktop.
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