| | 81 | target code: |
| | 82 | {{{ |
| | 83 | /** |
| | 84 | * ------------------------ Auto-generated Code ------------------------ |
| | 85 | * This code was generated by the Insieme Compiler |
| | 86 | * --------------------------------------------------------------------- |
| | 87 | */ |
| | 88 | #include <ir_interface.h> |
| | 89 | #include <irt_all_impls.h> |
| | 90 | #include <standalone.h> |
| | 91 | #include <stdbool.h> |
| | 92 | #include <stdint.h> |
| | 93 | |
| | 94 | struct __insieme_type_10; |
| | 95 | typedef struct __insieme_type_10 __insieme_type_10; |
| | 96 | |
| | 97 | struct __insieme_type_19; |
| | 98 | typedef struct __insieme_type_19 __insieme_type_19; |
| | 99 | |
| | 100 | struct __insieme_type_19 { |
| | 101 | irt_type_id c0; |
| | 102 | __insieme_type_10* c1; |
| | 103 | }; |
| | 104 | |
| | 105 | struct __insieme_type_24; |
| | 106 | typedef struct __insieme_type_24 __insieme_type_24; |
| | 107 | |
| | 108 | struct __insieme_type_24 { |
| | 109 | irt_type_id c0; |
| | 110 | int32_t* c1; |
| | 111 | }; |
| | 112 | |
| | 113 | struct __insieme_type_26; |
| | 114 | typedef struct __insieme_type_26 __insieme_type_26; |
| | 115 | |
| | 116 | struct __insieme_type_26 { |
| | 117 | irt_type_id c0; |
| | 118 | int32_t c1; |
| | 119 | char** c2; |
| | 120 | }; |
| | 121 | |
| | 122 | // --- components for type table entries --- |
| | 123 | irt_type_id g_type_2_components[] = {0,1}; |
| | 124 | irt_type_id g_type_4_components[] = {0,3}; |
| | 125 | irt_type_id g_type_7_components[] = {0,5,6}; |
| | 126 | |
| | 127 | // --- the type table --- |
| | 128 | irt_type g_insieme_type_table[] = { |
| | 129 | {IRT_T_UINT32, sizeof(irt_type_id), 0, 0}, |
| | 130 | {IRT_T_POINTER, sizeof(__insieme_type_10*), 0, 0}, |
| | 131 | {IRT_T_STRUCT, sizeof(__insieme_type_19), 2, g_type_2_components}, |
| | 132 | {IRT_T_POINTER, sizeof(int32_t*), 0, 0}, |
| | 133 | {IRT_T_STRUCT, sizeof(__insieme_type_24), 2, g_type_4_components}, |
| | 134 | {IRT_T_INT32, sizeof(int32_t), 0, 0}, |
| | 135 | {IRT_T_POINTER, sizeof(char**), 0, 0}, |
| | 136 | {IRT_T_STRUCT, sizeof(__insieme_type_26), 3, g_type_7_components} |
| | 137 | }; |
| | 138 | |
| | 139 | struct __insieme_type_10 { |
| | 140 | double data[10]; |
| | 141 | }; |
| | 142 | |
| | 143 | /* ------- Function Definitions --------- */ |
| | 144 | void insieme_wi_0_var_0_impl(irt_work_item* var_1) { |
| | 145 | irt_work_item_range var_2 = (*var_1).range; |
| | 146 | int32_t var_3 = var_2.begin; |
| | 147 | int32_t var_4 = var_2.end; |
| | 148 | int32_t var_5 = var_2.step; |
| | 149 | { |
| | 150 | for (int32_t i_ins_it = var_3; i_ins_it < var_4; i_ins_it+=var_5) { |
| | 151 | ((double*)(*(__insieme_type_19*)(*var_1).parameters).c1)[i_ins_it] = 0.0; |
| | 152 | }; |
| | 153 | }; |
| | 154 | } |
| | 155 | /* ------- Function Definitions --------- */ |
| | 156 | void __insieme_fun_21(int32_t* var_1) { |
| | 157 | { |
| | 158 | *var_1 = 10; |
| | 159 | }; |
| | 160 | irt_wi_join_all(irt_wi_get_current()); |
| | 161 | } |
| | 162 | /* ------- Function Definitions --------- */ |
| | 163 | void insieme_wi_2_var_0_impl(irt_work_item* var_1) { |
| | 164 | __insieme_fun_21((*(__insieme_type_24*)(*var_1).parameters).c1); |
| | 165 | } |
| | 166 | // --- the meta info table --- |
| | 167 | irt_meta_info_table_entry g_insieme_meta_table[] = { |
| | 168 | {{ false, 0, 0 },{ false, 0, -1, -1, 0, -1, -1, 0, -1, -1, 0, -1, -1, (2147483647 * 2U + 1U), (2147483647 * 2U + 1U) },{ false, false },{ false, { 0 }, { 0 }, 0, 0, 0 },{ false, "" }}, /* the no-info-entry */ |
| | 169 | {{ false, 0, 0 },{ false, 0, -1, -1, 0, -1, -1, 0, -1, -1, 0, -1, -1, (2147483647 * 2U + 1U), (2147483647 * 2U + 1U) },{ true, (bool)false },{ false, { 0 }, { 0 }, 0, 0, 0 },{ false, "" }} |
| | 170 | }; |
| | 171 | |
| | 172 | extern irt_wi_implementation g_insieme_impl_table[]; |
| | 173 | /* ------- Function Definitions --------- */ |
| | 174 | void __insieme_fun_13(__insieme_type_10* var_1) { |
| | 175 | { |
| | 176 | irt_pfor(irt_wi_get_current(), irt_wi_get_wg(irt_wi_get_current(), 0u), (irt_work_item_range){0, 10, 1}, &g_insieme_impl_table[0], (irt_lw_data_item*)(&(__insieme_type_19){2, var_1})); |
| | 177 | irt_wg_barrier(irt_wi_get_wg(irt_wi_get_current(), 0u)); |
| | 178 | }; |
| | 179 | irt_wi_join_all(irt_wi_get_current()); |
| | 180 | } |
| | 181 | /* ------- Function Definitions --------- */ |
| | 182 | void insieme_wi_1_var_0_impl(irt_work_item* var_1) { |
| | 183 | __insieme_fun_13((*(__insieme_type_19*)(*var_1).parameters).c1); |
| | 184 | } |
| | 185 | /* ------- Function Definitions --------- */ |
| | 186 | int32_t __insieme_fun_8(int32_t argc, char** argv) { |
| | 187 | __insieme_type_10 a; |
| | 188 | int32_t i; |
| | 189 | { |
| | 190 | irt_merge(irt_parallel(&(irt_parallel_job){(uint64_t)1, (uint64_t)4294967295, (uint64_t)1, &g_insieme_impl_table[1], (irt_lw_data_item*)(&(__insieme_type_19){2, &a})})); |
| | 191 | }; |
| | 192 | irt_merge(irt_parallel(&(irt_parallel_job){(uint64_t)1, (uint64_t)4294967295, (uint64_t)1, &g_insieme_impl_table[2], (irt_lw_data_item*)(&(__insieme_type_24){4, &i})})); |
| | 193 | return 0; |
| | 194 | } |
| | 195 | /* ------- Function Definitions --------- */ |
| | 196 | void insieme_wi_3_var_0_impl(irt_work_item* var_229) { |
| | 197 | __insieme_fun_8((*(__insieme_type_26*)(*var_229).parameters).c1, (*(__insieme_type_26*)(*var_229).parameters).c2); |
| | 198 | } |
| | 199 | // --- work item variants --- |
| | 200 | irt_wi_implementation_variant g_insieme_wi_0_variants[] = { |
| | 201 | { &insieme_wi_0_var_0_impl, 0, NULL, 0, NULL, &(g_insieme_meta_table[1]) }, |
| | 202 | }; |
| | 203 | irt_wi_implementation_variant g_insieme_wi_1_variants[] = { |
| | 204 | { &insieme_wi_1_var_0_impl, 0, NULL, 0, NULL, &(g_insieme_meta_table[0]) }, |
| | 205 | }; |
| | 206 | irt_wi_implementation_variant g_insieme_wi_2_variants[] = { |
| | 207 | { &insieme_wi_2_var_0_impl, 0, NULL, 0, NULL, &(g_insieme_meta_table[0]) }, |
| | 208 | }; |
| | 209 | irt_wi_implementation_variant g_insieme_wi_3_variants[] = { |
| | 210 | { &insieme_wi_3_var_0_impl, 0, NULL, 0, NULL, &(g_insieme_meta_table[0]) }, |
| | 211 | }; |
| | 212 | // --- the implementation table --- |
| | 213 | irt_wi_implementation g_insieme_impl_table[] = { |
| | 214 | { 1, 1, g_insieme_wi_0_variants }, |
| | 215 | { 2, 1, g_insieme_wi_1_variants }, |
| | 216 | { 3, 1, g_insieme_wi_2_variants }, |
| | 217 | { 4, 1, g_insieme_wi_3_variants }, |
| | 218 | }; |
| | 219 | |
| | 220 | void insieme_init_context(irt_context* context) { |
| | 221 | context->type_table_size = 8; |
| | 222 | context->type_table = g_insieme_type_table; |
| | 223 | context->impl_table_size = 4; |
| | 224 | context->impl_table = g_insieme_impl_table; |
| | 225 | context->info_table_size = 2; |
| | 226 | context->info_table = g_insieme_meta_table; |
| | 227 | context->num_regions = 1; |
| | 228 | } |
| | 229 | |
| | 230 | void insieme_cleanup_context(irt_context* context) { |
| | 231 | } |
| | 232 | |
| | 233 | /* ------- Function Definitions --------- */ |
| | 234 | int32_t main(int32_t var_227, char** var_228) { |
| | 235 | irt_runtime_standalone(irt_get_default_worker_count(), &insieme_init_context, &insieme_cleanup_context, &g_insieme_impl_table[3], (irt_lw_data_item*)(&(__insieme_type_26){7, var_227, var_228})); |
| | 236 | return 0; |
| | 237 | } |
| | 238 | |
| | 239 | |
| | 240 | }}} |
| | 241 | |
| | 242 | |
| | 243 | |
| | 244 | |
| | 245 | |
| | 246 | ----- |