Lines Matching refs:se

195 gfc_conv_intrinsic_function_args (gfc_se *se, gfc_expr *expr,  in gfc_conv_intrinsic_function_args()  argument
222 gfc_init_se (&argse, se); in gfc_conv_intrinsic_function_args()
242 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_function_args()
243 gfc_add_block_to_block (&se->post, &argse.post); in gfc_conv_intrinsic_function_args()
276 gfc_conv_intrinsic_conversion (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_conversion() argument
290 gfc_conv_intrinsic_function_args (se, expr, args, nargs); in gfc_conv_intrinsic_conversion()
316 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_conversion()
320 gfc_add_expr_to_block (&se->post, tmp); in gfc_conv_intrinsic_conversion()
322 se->expr = var; in gfc_conv_intrinsic_conversion()
323 se->string_length = args[0]; in gfc_conv_intrinsic_conversion()
340 se->expr = convert (type, args[0]); in gfc_conv_intrinsic_conversion()
447 gfc_conv_intrinsic_aint (gfc_se * se, gfc_expr * expr, enum rounding_mode op) in gfc_conv_intrinsic_aint() argument
480 gfc_conv_intrinsic_function_args (se, expr, arg, nargs); in gfc_conv_intrinsic_aint()
485 se->expr = build_call_expr_loc (input_location, decl, 1, arg[0]); in gfc_conv_intrinsic_aint()
492 arg[0] = gfc_evaluate_now (arg[0], &se->pre); in gfc_conv_intrinsic_aint()
511 tmp = build_fix_expr (&se->pre, arg[0], itype, op); in gfc_conv_intrinsic_aint()
513 se->expr = fold_build3_loc (input_location, COND_EXPR, type, cond, tmp, in gfc_conv_intrinsic_aint()
522 gfc_conv_intrinsic_int (gfc_se * se, gfc_expr * expr, enum rounding_mode op) in gfc_conv_intrinsic_int() argument
535 gfc_conv_intrinsic_function_args (se, expr, args, nargs); in gfc_conv_intrinsic_int()
540 se->expr = convert (type, args[0]); in gfc_conv_intrinsic_int()
556 se->expr = build_fix_expr (&se->pre, args[0], type, op); in gfc_conv_intrinsic_int()
564 gfc_conv_intrinsic_imagpart (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_imagpart() argument
568 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_imagpart()
569 se->expr = fold_build1_loc (input_location, IMAGPART_EXPR, in gfc_conv_intrinsic_imagpart()
577 gfc_conv_intrinsic_conjg (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_conjg() argument
581 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_conjg()
582 se->expr = fold_build1_loc (input_location, CONJ_EXPR, TREE_TYPE (arg), arg); in gfc_conv_intrinsic_conjg()
837 gfc_conv_intrinsic_lib_function (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_lib_function() argument
865 gfc_conv_intrinsic_function_args (se, expr, args, num_args); in gfc_conv_intrinsic_lib_function()
870 se->expr = build_call_array_loc (input_location, rettype, fndecl, num_args, args); in gfc_conv_intrinsic_lib_function()
909 gfc_conv_intrinsic_exponent (gfc_se *se, gfc_expr *expr) in gfc_conv_intrinsic_exponent() argument
916 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_exponent()
921 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_exponent()
924 se->expr = fold_convert (type, res); in gfc_conv_intrinsic_exponent()
929 trans_this_image (gfc_se * se, gfc_expr *expr) in trans_this_image() argument
945 se->expr = fold_convert (gfc_get_int_type (gfc_default_integer_kind), in trans_this_image()
960 gfc_add_block_to_block (&se->pre, &argse.pre); in trans_this_image()
961 gfc_add_block_to_block (&se->post, &argse.post); in trans_this_image()
964 if (se->ss) in trans_this_image()
969 gcc_assert (se->loop->dimen == 1); in trans_this_image()
970 gcc_assert (se->ss->info->expr == expr); in trans_this_image()
972 dim_arg = se->loop->loopvar[0]; in trans_this_image()
976 gfc_advance_se_ss_chain (se); in trans_this_image()
985 gfc_add_block_to_block (&se->pre, &argse.pre); in trans_this_image()
1002 dim_arg = gfc_evaluate_now (dim_arg, &se->pre); in trans_this_image()
1011 gfc_trans_runtime_check (true, false, cond, &se->pre, &expr->where, in trans_this_image()
1054 se->expr = tmp; in trans_this_image()
1064 gfc_add_modify (&se->pre, m, tmp); in trans_this_image()
1073 gfc_add_modify (&se->pre, min_var, tmp); in trans_this_image()
1077 gfc_add_modify (&se->pre, loop_var, tmp); in trans_this_image()
1116 gfc_add_expr_to_block (&se->pre, tmp); in trans_this_image()
1120 gfc_add_expr_to_block (&se->pre, tmp); in trans_this_image()
1139 se->expr = fold_build3_loc (input_location, COND_EXPR, type, cond, tmp, in trans_this_image()
1146 trans_image_index (gfc_se * se, gfc_expr *expr) in trans_image_index() argument
1161 gfc_add_block_to_block (&se->pre, &argse.pre); in trans_image_index()
1162 gfc_add_block_to_block (&se->post, &argse.post); in trans_image_index()
1168 gfc_add_block_to_block (&se->pre, &subse.pre); in trans_image_index()
1169 gfc_add_block_to_block (&se->post, &subse.post); in trans_image_index()
1252 gfc_add_modify (&se->pre, tmp, coindex); in trans_image_index()
1259 se->expr = fold_build3_loc (input_location, COND_EXPR, type, cond, in trans_image_index()
1265 trans_num_images (gfc_se * se) in trans_num_images() argument
1268 se->expr = fold_convert (gfc_get_int_type (gfc_default_integer_kind), in trans_num_images()
1274 gfc_conv_intrinsic_rank (gfc_se *se, gfc_expr *expr) in gfc_conv_intrinsic_rank() argument
1283 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_rank()
1284 gfc_add_block_to_block (&se->post, &argse.post); in gfc_conv_intrinsic_rank()
1286 se->expr = gfc_conv_descriptor_rank (argse.expr); in gfc_conv_intrinsic_rank()
1294 gfc_conv_intrinsic_bound (gfc_se * se, gfc_expr * expr, int upper) in gfc_conv_intrinsic_bound() argument
1312 if (se->ss) in gfc_conv_intrinsic_bound()
1316 gcc_assert (se->loop->dimen == 1); in gfc_conv_intrinsic_bound()
1317 gcc_assert (se->ss->info->expr == expr); in gfc_conv_intrinsic_bound()
1318 gfc_advance_se_ss_chain (se); in gfc_conv_intrinsic_bound()
1319 bound = se->loop->loopvar[0]; in gfc_conv_intrinsic_bound()
1322 se->loop->from[0]); in gfc_conv_intrinsic_bound()
1330 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_bound()
1342 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_bound()
1343 gfc_add_block_to_block (&se->post, &argse.post); in gfc_conv_intrinsic_bound()
1368 bound = gfc_evaluate_now (bound, &se->pre); in gfc_conv_intrinsic_bound()
1379 gfc_trans_runtime_check (true, false, cond, &se->pre, &expr->where, in gfc_conv_intrinsic_bound()
1419 se->expr = gfc_index_one_node; in gfc_conv_intrinsic_bound()
1456 se->expr = fold_build3_loc (input_location, COND_EXPR, in gfc_conv_intrinsic_bound()
1474 se->expr = fold_build3_loc (input_location, COND_EXPR, in gfc_conv_intrinsic_bound()
1485 se->expr = fold_build2_loc (input_location, PLUS_EXPR, in gfc_conv_intrinsic_bound()
1488 se->expr = fold_build2_loc (input_location, MAX_EXPR, in gfc_conv_intrinsic_bound()
1489 gfc_array_index_type, se->expr, in gfc_conv_intrinsic_bound()
1493 se->expr = gfc_index_one_node; in gfc_conv_intrinsic_bound()
1497 se->expr = convert (type, se->expr); in gfc_conv_intrinsic_bound()
1502 conv_intrinsic_cobound (gfc_se * se, gfc_expr * expr) in conv_intrinsic_cobound() argument
1525 gfc_add_block_to_block (&se->pre, &argse.pre); in conv_intrinsic_cobound()
1526 gfc_add_block_to_block (&se->post, &argse.post); in conv_intrinsic_cobound()
1529 if (se->ss) in conv_intrinsic_cobound()
1534 gcc_assert (se->loop->dimen == 1); in conv_intrinsic_cobound()
1535 gcc_assert (se->ss->info->expr == expr); in conv_intrinsic_cobound()
1537 bound = se->loop->loopvar[0]; in conv_intrinsic_cobound()
1540 gfc_advance_se_ss_chain (se); in conv_intrinsic_cobound()
1548 gfc_add_block_to_block (&se->pre, &argse.pre); in conv_intrinsic_cobound()
1564 bound = gfc_evaluate_now (bound, &se->pre); in conv_intrinsic_cobound()
1572 gfc_trans_runtime_check (true, false, cond, &se->pre, &expr->where, in conv_intrinsic_cobound()
1645 se->expr = fold_build3_loc (input_location, COND_EXPR, in conv_intrinsic_cobound()
1650 se->expr = resbound; in conv_intrinsic_cobound()
1653 se->expr = resbound; in conv_intrinsic_cobound()
1656 se->expr = convert (type, se->expr); in conv_intrinsic_cobound()
1661 conv_intrinsic_stride (gfc_se * se, gfc_expr * expr) in conv_intrinsic_stride() argument
1675 gfc_add_block_to_block (&se->pre, &argse.pre); in conv_intrinsic_stride()
1676 gfc_add_block_to_block (&se->post, &argse.post); in conv_intrinsic_stride()
1682 gfc_add_block_to_block (&se->pre, &argse.pre); in conv_intrinsic_stride()
1685 se->expr = gfc_conv_descriptor_stride_get (desc, tmp); in conv_intrinsic_stride()
1690 gfc_conv_intrinsic_abs (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_abs() argument
1694 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_abs()
1700 se->expr = fold_build1_loc (input_location, ABS_EXPR, TREE_TYPE (arg), in gfc_conv_intrinsic_abs()
1706 se->expr = build_call_expr_loc (input_location, cabs, 1, arg); in gfc_conv_intrinsic_abs()
1718 gfc_conv_intrinsic_cmplx (gfc_se * se, gfc_expr * expr, int both) in gfc_conv_intrinsic_cmplx() argument
1730 gfc_conv_intrinsic_function_args (se, expr, args, num_args); in gfc_conv_intrinsic_cmplx()
1743 se->expr = fold_build2_loc (input_location, COMPLEX_EXPR, type, real, imag); in gfc_conv_intrinsic_cmplx()
1756 gfc_conv_intrinsic_mod (gfc_se * se, gfc_expr * expr, int modulo) in gfc_conv_intrinsic_mod() argument
1766 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_mod()
1775 se->expr = fold_build2_loc (input_location, FLOOR_MOD_EXPR, type, in gfc_conv_intrinsic_mod()
1778 se->expr = fold_build2_loc (input_location, TRUNC_MOD_EXPR, type, in gfc_conv_intrinsic_mod()
1791 se->expr = build_call_array_loc (input_location, in gfc_conv_intrinsic_mod()
1799 args[0] = gfc_evaluate_now (args[0], &se->pre); in gfc_conv_intrinsic_mod()
1800 args[1] = gfc_evaluate_now (args[1], &se->pre); in gfc_conv_intrinsic_mod()
1825 tmp = gfc_evaluate_now (se->expr, &se->pre); in gfc_conv_intrinsic_mod()
1838 test = gfc_evaluate_now (test, &se->pre); in gfc_conv_intrinsic_mod()
1839 se->expr = fold_build3_loc (input_location, COND_EXPR, type, test, in gfc_conv_intrinsic_mod()
1865 se->expr = fold_build3_loc (input_location, COND_EXPR, type, test, in gfc_conv_intrinsic_mod()
1886 gfc_conv_intrinsic_dshift (gfc_se * se, gfc_expr * expr, bool dshiftl) in gfc_conv_intrinsic_dshift() argument
1892 gfc_conv_intrinsic_function_args (se, expr, args, 3); in gfc_conv_intrinsic_dshift()
1900 arg1 = gfc_evaluate_now (args[0], &se->pre); in gfc_conv_intrinsic_dshift()
1901 arg2 = gfc_evaluate_now (args[1], &se->pre); in gfc_conv_intrinsic_dshift()
1902 shift = gfc_evaluate_now (args[2], &se->pre); in gfc_conv_intrinsic_dshift()
1927 se->expr = res; in gfc_conv_intrinsic_dshift()
1934 gfc_conv_intrinsic_dim (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_dim() argument
1942 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_dim()
1946 val = gfc_evaluate_now (val, &se->pre); in gfc_conv_intrinsic_dim()
1950 se->expr = fold_build3_loc (input_location, COND_EXPR, type, tmp, zero, val); in gfc_conv_intrinsic_dim()
1961 gfc_conv_intrinsic_sign (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_sign() argument
1967 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_sign()
1984 se->expr = fold_build3_loc (input_location, COND_EXPR, in gfc_conv_intrinsic_sign()
1992 se->expr = build_call_expr_loc (input_location, tmp, 2, in gfc_conv_intrinsic_sign()
2002 args[0] = gfc_evaluate_now (args[0], &se->pre); in gfc_conv_intrinsic_sign()
2009 tmp = gfc_evaluate_now (tmp, &se->pre); in gfc_conv_intrinsic_sign()
2013 se->expr = fold_build2_loc (input_location, BIT_XOR_EXPR, type, in gfc_conv_intrinsic_sign()
2022 gfc_conv_intrinsic_present (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_present() argument
2028 se->expr = gfc_conv_expr_present (arg->symtree->n.sym); in gfc_conv_intrinsic_present()
2029 se->expr = convert (gfc_typenode_for_spec (&expr->ts), se->expr); in gfc_conv_intrinsic_present()
2036 gfc_conv_intrinsic_dprod (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_dprod() argument
2041 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_dprod()
2047 se->expr = fold_build2_loc (input_location, MULT_EXPR, type, args[0], in gfc_conv_intrinsic_dprod()
2055 gfc_conv_intrinsic_char (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_char() argument
2063 gfc_conv_intrinsic_function_args (se, expr, arg, num_args); in gfc_conv_intrinsic_char()
2069 gfc_add_modify (&se->pre, var, arg[0]); in gfc_conv_intrinsic_char()
2070 se->expr = gfc_build_addr_expr (build_pointer_type (type), var); in gfc_conv_intrinsic_char()
2071 se->string_length = build_int_cst (gfc_charlen_type_node, 1); in gfc_conv_intrinsic_char()
2076 gfc_conv_intrinsic_ctime (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_ctime() argument
2092 gfc_conv_intrinsic_function_args (se, expr, &args[2], num_args - 2); in gfc_conv_intrinsic_ctime()
2100 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_ctime()
2107 gfc_add_expr_to_block (&se->post, tmp); in gfc_conv_intrinsic_ctime()
2109 se->expr = var; in gfc_conv_intrinsic_ctime()
2110 se->string_length = len; in gfc_conv_intrinsic_ctime()
2115 gfc_conv_intrinsic_fdate (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_fdate() argument
2131 gfc_conv_intrinsic_function_args (se, expr, &args[2], num_args - 2); in gfc_conv_intrinsic_fdate()
2139 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_fdate()
2146 gfc_add_expr_to_block (&se->post, tmp); in gfc_conv_intrinsic_fdate()
2148 se->expr = var; in gfc_conv_intrinsic_fdate()
2149 se->string_length = len; in gfc_conv_intrinsic_fdate()
2156 gfc_conv_intrinsic_ttynam (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_ttynam() argument
2172 gfc_conv_intrinsic_function_args (se, expr, &args[2], num_args - 2); in gfc_conv_intrinsic_ttynam()
2180 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_ttynam()
2187 gfc_add_expr_to_block (&se->post, tmp); in gfc_conv_intrinsic_ttynam()
2189 se->expr = var; in gfc_conv_intrinsic_ttynam()
2190 se->string_length = len; in gfc_conv_intrinsic_ttynam()
2210 gfc_conv_intrinsic_minmax (gfc_se * se, gfc_expr * expr, enum tree_code op) in gfc_conv_intrinsic_minmax() argument
2224 gfc_conv_intrinsic_function_args (se, expr, args, nargs); in gfc_conv_intrinsic_minmax()
2232 args[0] = gfc_evaluate_now (args[0], &se->pre); in gfc_conv_intrinsic_minmax()
2235 gfc_add_modify (&se->pre, mvar, args[0]); in gfc_conv_intrinsic_minmax()
2256 val = gfc_evaluate_now (val, &se->pre); in gfc_conv_intrinsic_minmax()
2283 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_minmax()
2286 se->expr = mvar; in gfc_conv_intrinsic_minmax()
2293 gfc_conv_intrinsic_minmax_char (gfc_se * se, gfc_expr * expr, int op) in gfc_conv_intrinsic_minmax_char() argument
2301 gfc_conv_intrinsic_function_args (se, expr, &args[4], nargs); in gfc_conv_intrinsic_minmax_char()
2323 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_minmax_char()
2330 gfc_add_expr_to_block (&se->post, tmp); in gfc_conv_intrinsic_minmax_char()
2332 se->expr = var; in gfc_conv_intrinsic_minmax_char()
2333 se->string_length = len; in gfc_conv_intrinsic_minmax_char()
2371 gfc_conv_intrinsic_funcall (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_funcall() argument
2376 gcc_assert (!se->ss || se->ss->info->expr == expr); in gfc_conv_intrinsic_funcall()
2378 if (se->ss) in gfc_conv_intrinsic_funcall()
2430 gfc_conv_procedure_call (se, sym, expr->value.function.actual, expr, in gfc_conv_intrinsic_funcall()
2455 gfc_conv_intrinsic_anyall (gfc_se * se, gfc_expr * expr, enum tree_code op) in gfc_conv_intrinsic_anyall() argument
2469 if (se->ss) in gfc_conv_intrinsic_anyall()
2471 gfc_conv_intrinsic_funcall (se, expr); in gfc_conv_intrinsic_anyall()
2483 gfc_add_modify (&se->pre, resvar, tmp); in gfc_conv_intrinsic_anyall()
2536 gfc_add_block_to_block (&se->pre, &loop.pre); in gfc_conv_intrinsic_anyall()
2537 gfc_add_block_to_block (&se->pre, &loop.post); in gfc_conv_intrinsic_anyall()
2540 se->expr = resvar; in gfc_conv_intrinsic_anyall()
2545 gfc_conv_intrinsic_count (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_count() argument
2556 if (se->ss) in gfc_conv_intrinsic_count()
2558 gfc_conv_intrinsic_funcall (se, expr); in gfc_conv_intrinsic_count()
2567 gfc_add_modify (&se->pre, resvar, build_int_cst (type, 0)); in gfc_conv_intrinsic_count()
2602 gfc_add_block_to_block (&se->pre, &loop.pre); in gfc_conv_intrinsic_count()
2603 gfc_add_block_to_block (&se->pre, &loop.post); in gfc_conv_intrinsic_count()
2606 se->expr = resvar; in gfc_conv_intrinsic_count()
2614 enter_nested_loop (gfc_se *se) in enter_nested_loop() argument
2616 se->ss = se->ss->nested_ss; in enter_nested_loop()
2617 gcc_assert (se->ss == se->ss->loop->ss); in enter_nested_loop()
2619 return se->ss->loop; in enter_nested_loop()
2625 gfc_conv_intrinsic_arith (gfc_se * se, gfc_expr * expr, enum tree_code op, in gfc_conv_intrinsic_arith() argument
2647 parent_se = se; in gfc_conv_intrinsic_arith()
2660 gfc_add_modify (&se->pre, scale, in gfc_conv_intrinsic_arith()
2675 gfc_add_modify (&se->pre, resvar, tmp); in gfc_conv_intrinsic_arith()
2723 ploop = enter_nested_loop (se); in gfc_conv_intrinsic_arith()
2848 tmp = build3_v (COND_EXPR, se->ss->info->data.scalar.value, tmp, in gfc_conv_intrinsic_arith()
2850 gfc_advance_se_ss_chain (se); in gfc_conv_intrinsic_arith()
2862 gfc_add_block_to_block (&se->pre, &block); in gfc_conv_intrinsic_arith()
2863 gcc_assert (se->post.head == NULL); in gfc_conv_intrinsic_arith()
2867 gfc_add_block_to_block (&se->pre, &ploop->pre); in gfc_conv_intrinsic_arith()
2868 gfc_add_block_to_block (&se->pre, &ploop->post); in gfc_conv_intrinsic_arith()
2884 se->expr = resvar; in gfc_conv_intrinsic_arith()
2891 gfc_conv_intrinsic_dot_product (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_dot_product() argument
2913 gfc_add_modify (&se->pre, resvar, tmp); in gfc_conv_intrinsic_dot_product()
2980 gfc_add_block_to_block (&se->pre, &loop.pre); in gfc_conv_intrinsic_dot_product()
2981 gfc_add_block_to_block (&se->pre, &loop.post); in gfc_conv_intrinsic_dot_product()
2984 se->expr = resvar; in gfc_conv_intrinsic_dot_product()
3055 gfc_conv_intrinsic_minmaxloc (gfc_se * se, gfc_expr * expr, enum tree_code op) in gfc_conv_intrinsic_minmaxloc() argument
3081 if (se->ss) in gfc_conv_intrinsic_minmaxloc()
3083 gfc_conv_intrinsic_funcall (se, expr); in gfc_conv_intrinsic_minmaxloc()
3148 gfc_add_modify (&se->pre, limit, tmp); in gfc_conv_intrinsic_minmaxloc()
3396 gfc_add_block_to_block (&se->pre, &block); in gfc_conv_intrinsic_minmaxloc()
3400 gfc_add_block_to_block (&se->pre, &loop.pre); in gfc_conv_intrinsic_minmaxloc()
3401 gfc_add_block_to_block (&se->pre, &loop.post); in gfc_conv_intrinsic_minmaxloc()
3405 se->expr = convert (type, pos); in gfc_conv_intrinsic_minmaxloc()
3502 gfc_conv_intrinsic_minmaxval (gfc_se * se, gfc_expr * expr, enum tree_code op) in gfc_conv_intrinsic_minmaxval() argument
3525 if (se->ss) in gfc_conv_intrinsic_minmaxval()
3527 gfc_conv_intrinsic_funcall (se, expr); in gfc_conv_intrinsic_minmaxval()
3580 gfc_add_modify (&se->pre, limit, tmp); in gfc_conv_intrinsic_minmaxval()
3647 gfc_add_modify (&se->pre, nonempty_var, boolean_false_node); in gfc_conv_intrinsic_minmaxval()
3662 gfc_add_modify (&se->pre, fast, boolean_false_node); in gfc_conv_intrinsic_minmaxval()
3874 gfc_add_block_to_block (&se->pre, &block); in gfc_conv_intrinsic_minmaxval()
3878 gfc_add_block_to_block (&se->pre, &loop.pre); in gfc_conv_intrinsic_minmaxval()
3879 gfc_add_block_to_block (&se->pre, &loop.post); in gfc_conv_intrinsic_minmaxval()
3884 se->expr = limit; in gfc_conv_intrinsic_minmaxval()
3889 gfc_conv_intrinsic_btest (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_btest() argument
3895 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_btest()
3904 se->expr = convert (type, tmp); in gfc_conv_intrinsic_btest()
3910 gfc_conv_intrinsic_bitcomp (gfc_se * se, gfc_expr * expr, enum tree_code op) in gfc_conv_intrinsic_bitcomp() argument
3914 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_bitcomp()
3929 se->expr = fold_build2_loc (input_location, op, boolean_type_node, in gfc_conv_intrinsic_bitcomp()
3936 gfc_conv_intrinsic_bitop (gfc_se * se, gfc_expr * expr, enum tree_code op) in gfc_conv_intrinsic_bitop() argument
3940 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_bitop()
3941 se->expr = fold_build2_loc (input_location, op, TREE_TYPE (args[0]), in gfc_conv_intrinsic_bitop()
3947 gfc_conv_intrinsic_not (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_not() argument
3951 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_not()
3952 se->expr = fold_build1_loc (input_location, BIT_NOT_EXPR, in gfc_conv_intrinsic_not()
3958 gfc_conv_intrinsic_singlebitop (gfc_se * se, gfc_expr * expr, int set) in gfc_conv_intrinsic_singlebitop() argument
3965 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_singlebitop()
3977 se->expr = fold_build2_loc (input_location, op, type, args[0], tmp); in gfc_conv_intrinsic_singlebitop()
3983 gfc_conv_intrinsic_ibits (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_ibits() argument
3990 gfc_conv_intrinsic_function_args (se, expr, args, 3); in gfc_conv_intrinsic_ibits()
3999 se->expr = fold_build2_loc (input_location, BIT_AND_EXPR, type, tmp, mask); in gfc_conv_intrinsic_ibits()
4003 gfc_conv_intrinsic_shift (gfc_se * se, gfc_expr * expr, bool right_shift, in gfc_conv_intrinsic_shift() argument
4008 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_shift()
4010 args[0] = gfc_evaluate_now (args[0], &se->pre); in gfc_conv_intrinsic_shift()
4011 args[1] = gfc_evaluate_now (args[1], &se->pre); in gfc_conv_intrinsic_shift()
4019 se->expr = fold_build2_loc (input_location, in gfc_conv_intrinsic_shift()
4024 se->expr = fold_convert (type, se->expr); in gfc_conv_intrinsic_shift()
4033 se->expr = fold_build3_loc (input_location, COND_EXPR, type, cond, in gfc_conv_intrinsic_shift()
4034 build_int_cst (type, 0), se->expr); in gfc_conv_intrinsic_shift()
4042 gfc_conv_intrinsic_ishft (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_ishft() argument
4054 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_ishft()
4056 args[0] = gfc_evaluate_now (args[0], &se->pre); in gfc_conv_intrinsic_ishft()
4057 args[1] = gfc_evaluate_now (args[1], &se->pre); in gfc_conv_intrinsic_ishft()
4086 se->expr = fold_build3_loc (input_location, COND_EXPR, type, cond, in gfc_conv_intrinsic_ishft()
4094 gfc_conv_intrinsic_ishftc (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_ishftc() argument
4107 gfc_conv_intrinsic_function_args (se, expr, args, num_args); in gfc_conv_intrinsic_ishftc()
4144 se->expr = build_call_expr_loc (input_location, in gfc_conv_intrinsic_ishftc()
4149 se->expr = convert (type, se->expr); in gfc_conv_intrinsic_ishftc()
4156 args[0] = gfc_evaluate_now (args[0], &se->pre); in gfc_conv_intrinsic_ishftc()
4157 args[1] = gfc_evaluate_now (args[1], &se->pre); in gfc_conv_intrinsic_ishftc()
4175 se->expr = fold_build3_loc (input_location, COND_EXPR, type, tmp, args[0], in gfc_conv_intrinsic_ishftc()
4191 gfc_conv_intrinsic_leadz (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_leadz() argument
4203 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_leadz()
4234 arg = gfc_evaluate_now (arg, &se->pre); in gfc_conv_intrinsic_leadz()
4297 se->expr = fold_build3_loc (input_location, COND_EXPR, result_type, cond, in gfc_conv_intrinsic_leadz()
4309 gfc_conv_intrinsic_trailz (gfc_se * se, gfc_expr *expr) in gfc_conv_intrinsic_trailz() argument
4320 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_trailz()
4351 arg = gfc_evaluate_now (arg, &se->pre); in gfc_conv_intrinsic_trailz()
4406 se->expr = fold_build3_loc (input_location, COND_EXPR, result_type, cond, in gfc_conv_intrinsic_trailz()
4415 gfc_conv_intrinsic_popcnt_poppar (gfc_se * se, gfc_expr *expr, int parity) in gfc_conv_intrinsic_popcnt_poppar() argument
4423 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_popcnt_poppar()
4467 arg = gfc_evaluate_now (arg, &se->pre); in gfc_conv_intrinsic_popcnt_poppar()
4482 se->expr = fold_build2_loc (input_location, BIT_XOR_EXPR, result_type, in gfc_conv_intrinsic_popcnt_poppar()
4485 se->expr = fold_build2_loc (input_location, PLUS_EXPR, result_type, in gfc_conv_intrinsic_popcnt_poppar()
4497 se->expr = fold_convert (result_type, in gfc_conv_intrinsic_popcnt_poppar()
4511 conv_generic_with_optional_char_arg (gfc_se* se, gfc_expr* expr, in conv_generic_with_optional_char_arg() argument
4555 gfc_conv_procedure_call (se, sym, expr->value.function.actual, expr, in conv_generic_with_optional_char_arg()
4563 gfc_conv_intrinsic_len (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_len() argument
4572 gcc_assert (!se->ss); in gfc_conv_intrinsic_len()
4587 get_array_ctor_strlen (&se->pre, arg->value.constructor, &len); in gfc_conv_intrinsic_len()
4612 gfc_init_se (&argse, se); in gfc_conv_intrinsic_len()
4617 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_len()
4618 gfc_add_block_to_block (&se->post, &argse.post); in gfc_conv_intrinsic_len()
4622 se->expr = convert (type, len); in gfc_conv_intrinsic_len()
4627 gfc_conv_intrinsic_len_trim (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_len_trim() argument
4632 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_len_trim()
4642 se->expr = build_call_expr_loc (input_location, in gfc_conv_intrinsic_len_trim()
4644 se->expr = convert (type, se->expr); in gfc_conv_intrinsic_len_trim()
4651 gfc_conv_intrinsic_index_scan_verify (gfc_se * se, gfc_expr * expr, in gfc_conv_intrinsic_index_scan_verify() argument
4670 gfc_conv_intrinsic_function_args (se, expr, args, num_args); in gfc_conv_intrinsic_index_scan_verify()
4679 se->expr = build_call_array_loc (input_location, in gfc_conv_intrinsic_index_scan_verify()
4682 se->expr = convert (type, se->expr); in gfc_conv_intrinsic_index_scan_verify()
4688 gfc_conv_intrinsic_ichar (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_ichar() argument
4694 gfc_conv_intrinsic_function_args (se, expr, args, nargs); in gfc_conv_intrinsic_ichar()
4700 se->expr = build_fold_indirect_ref_loc (input_location, in gfc_conv_intrinsic_ichar()
4702 se->expr = convert (type, se->expr); in gfc_conv_intrinsic_ichar()
4709 gfc_conv_intrinsic_isnan (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_isnan() argument
4713 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_isnan()
4714 se->expr = build_call_expr_loc (input_location, in gfc_conv_intrinsic_isnan()
4717 STRIP_TYPE_NOPS (se->expr); in gfc_conv_intrinsic_isnan()
4718 se->expr = fold_convert (gfc_typenode_for_spec (&expr->ts), se->expr); in gfc_conv_intrinsic_isnan()
4726 gfc_conv_has_intvalue (gfc_se * se, gfc_expr * expr, const int value) in gfc_conv_has_intvalue() argument
4730 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_has_intvalue()
4731 se->expr = fold_build2_loc (input_location, EQ_EXPR, in gfc_conv_has_intvalue()
4741 gfc_conv_intrinsic_merge (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_merge() argument
4754 gfc_conv_intrinsic_function_args (se, expr, args, num_args); in gfc_conv_intrinsic_merge()
4773 &se->pre); in gfc_conv_intrinsic_merge()
4774 se->string_length = len; in gfc_conv_intrinsic_merge()
4777 se->expr = fold_build3_loc (input_location, COND_EXPR, type, mask, tsource, in gfc_conv_intrinsic_merge()
4785 gfc_conv_intrinsic_merge_bits (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_merge_bits() argument
4789 gfc_conv_intrinsic_function_args (se, expr, args, 3); in gfc_conv_intrinsic_merge_bits()
4790 mask = gfc_evaluate_now (args[2], &se->pre); in gfc_conv_intrinsic_merge_bits()
4800 se->expr = fold_build2_loc (input_location, BIT_IOR_EXPR, type, in gfc_conv_intrinsic_merge_bits()
4809 gfc_conv_intrinsic_mask (gfc_se * se, gfc_expr * expr, int left) in gfc_conv_intrinsic_mask() argument
4814 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_mask()
4815 arg = gfc_evaluate_now (arg, &se->pre); in gfc_conv_intrinsic_mask()
4856 se->expr = fold_convert (type, res); in gfc_conv_intrinsic_mask()
4862 gfc_conv_intrinsic_fraction (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_fraction() argument
4869 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_fraction()
4871 se->expr = build_call_expr_loc (input_location, frexp, 2, in gfc_conv_intrinsic_fraction()
4874 se->expr = fold_convert (type, se->expr); in gfc_conv_intrinsic_fraction()
4883 gfc_conv_intrinsic_nearest (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_nearest() argument
4891 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_nearest()
4896 se->expr = build_call_expr_loc (input_location, nextafter, 2, in gfc_conv_intrinsic_nearest()
4898 se->expr = fold_convert (type, se->expr); in gfc_conv_intrinsic_nearest()
4920 gfc_conv_intrinsic_spacing (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_spacing() argument
4935 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_spacing()
4936 arg = gfc_evaluate_now (arg, &se->pre); in gfc_conv_intrinsic_spacing()
4964 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_spacing()
4965 se->expr = res; in gfc_conv_intrinsic_spacing()
4983 gfc_conv_intrinsic_rrspacing (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_rrspacing() argument
4997 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_rrspacing()
4998 arg = gfc_evaluate_now (arg, &se->pre); in gfc_conv_intrinsic_rrspacing()
5002 gfc_add_modify (&se->pre, x, in gfc_conv_intrinsic_rrspacing()
5020 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_rrspacing()
5022 se->expr = fold_convert (type, x); in gfc_conv_intrinsic_rrspacing()
5028 gfc_conv_intrinsic_scale (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_scale() argument
5035 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_scale()
5036 se->expr = build_call_expr_loc (input_location, scalbn, 2, in gfc_conv_intrinsic_scale()
5039 se->expr = fold_convert (type, se->expr); in gfc_conv_intrinsic_scale()
5046 gfc_conv_intrinsic_set_exponent (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_set_exponent() argument
5054 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_set_exponent()
5060 se->expr = build_call_expr_loc (input_location, scalbn, 2, tmp, in gfc_conv_intrinsic_set_exponent()
5062 se->expr = fold_convert (type, se->expr); in gfc_conv_intrinsic_set_exponent()
5067 gfc_conv_intrinsic_size (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_size() argument
5085 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_size()
5086 gfc_add_block_to_block (&se->post, &argse.post); in gfc_conv_intrinsic_size()
5087 arg1 = gfc_evaluate_now (argse.expr, &se->pre); in gfc_conv_intrinsic_size()
5100 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_size()
5118 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_size()
5121 tmp = gfc_evaluate_now (tmp, &se->pre); in gfc_conv_intrinsic_size()
5122 se->expr = fold_build3_loc (input_location, COND_EXPR, in gfc_conv_intrinsic_size()
5127 se->expr = NULL_TREE; in gfc_conv_intrinsic_size()
5136 se->expr = NULL_TREE; in gfc_conv_intrinsic_size()
5139 se->expr = fncall0; in gfc_conv_intrinsic_size()
5141 if (se->expr == NULL_TREE) in gfc_conv_intrinsic_size()
5149 se->expr = fold_build2_loc (input_location, MINUS_EXPR, in gfc_conv_intrinsic_size()
5151 se->expr = fold_build2_loc (input_location, PLUS_EXPR, in gfc_conv_intrinsic_size()
5153 se->expr, gfc_index_one_node); in gfc_conv_intrinsic_size()
5154 se->expr = fold_build2_loc (input_location, MAX_EXPR, in gfc_conv_intrinsic_size()
5155 gfc_array_index_type, se->expr, in gfc_conv_intrinsic_size()
5160 se->expr = convert (type, se->expr); in gfc_conv_intrinsic_size()
5184 gfc_conv_intrinsic_sizeof (gfc_se *se, gfc_expr *expr) in gfc_conv_intrinsic_sizeof() argument
5211 se->expr = size_of_string_in_bytes (arg->ts.kind, in gfc_conv_intrinsic_sizeof()
5214 se->expr = fold_convert (gfc_array_index_type, size_in_bytes (type)); in gfc_conv_intrinsic_sizeof()
5246 se->expr = source_bytes; in gfc_conv_intrinsic_sizeof()
5249 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_sizeof()
5254 gfc_conv_intrinsic_storage_size (gfc_se *se, gfc_expr *expr) in gfc_conv_intrinsic_storage_size() argument
5295 se->expr = fold_build2_loc (input_location, MULT_EXPR, result_type, tmp, in gfc_conv_intrinsic_storage_size()
5297 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_storage_size()
5304 gfc_conv_intrinsic_strcmp (gfc_se * se, gfc_expr * expr, enum tree_code op) in gfc_conv_intrinsic_strcmp() argument
5308 gfc_conv_intrinsic_function_args (se, expr, args, 4); in gfc_conv_intrinsic_strcmp()
5310 se->expr in gfc_conv_intrinsic_strcmp()
5314 se->expr = fold_build2_loc (input_location, op, in gfc_conv_intrinsic_strcmp()
5315 gfc_typenode_for_spec (&expr->ts), se->expr, in gfc_conv_intrinsic_strcmp()
5316 build_int_cst (TREE_TYPE (se->expr), 0)); in gfc_conv_intrinsic_strcmp()
5321 gfc_conv_intrinsic_adjust (gfc_se * se, gfc_expr * expr, tree fndecl) in gfc_conv_intrinsic_adjust() argument
5329 gfc_conv_intrinsic_function_args (se, expr, &args[1], 2); in gfc_conv_intrinsic_adjust()
5333 var = gfc_conv_string_tmp (se, type, len); in gfc_conv_intrinsic_adjust()
5338 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_adjust()
5339 se->expr = var; in gfc_conv_intrinsic_adjust()
5340 se->string_length = len; in gfc_conv_intrinsic_adjust()
5360 gfc_conv_intrinsic_transfer (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_transfer() argument
5385 if (se->loop) in gfc_conv_intrinsic_transfer()
5386 info = &se->ss->info->data.array; in gfc_conv_intrinsic_transfer()
5468 gfc_add_block_to_block (&block, &se->post); in gfc_conv_intrinsic_transfer()
5469 gfc_init_block (&se->post); in gfc_conv_intrinsic_transfer()
5470 gfc_add_block_to_block (&se->post, &block); in gfc_conv_intrinsic_transfer()
5502 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_transfer()
5503 gfc_add_block_to_block (&se->post, &argse.post); in gfc_conv_intrinsic_transfer()
5529 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_transfer()
5530 gfc_add_block_to_block (&se->post, &argse.post); in gfc_conv_intrinsic_transfer()
5555 gfc_add_modify (&se->pre, dest_word_len, tmp); in gfc_conv_intrinsic_transfer()
5568 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_transfer()
5569 gfc_add_block_to_block (&se->post, &argse.post); in gfc_conv_intrinsic_transfer()
5585 gfc_add_modify (&se->pre, size_bytes, tmp); in gfc_conv_intrinsic_transfer()
5586 gfc_add_modify (&se->pre, size_words, in gfc_conv_intrinsic_transfer()
5595 n = se->loop->order[0]; in gfc_conv_intrinsic_transfer()
5596 if (se->loop->to[n] != NULL_TREE) in gfc_conv_intrinsic_transfer()
5599 se->loop->to[n], se->loop->from[n]); in gfc_conv_intrinsic_transfer()
5604 gfc_add_modify (&se->pre, size_words, tmp); in gfc_conv_intrinsic_transfer()
5605 gfc_add_modify (&se->pre, size_bytes, in gfc_conv_intrinsic_transfer()
5610 size_words, se->loop->from[n]); in gfc_conv_intrinsic_transfer()
5618 se->loop->from[n] = gfc_index_zero_node; in gfc_conv_intrinsic_transfer()
5621 se->loop->to[n] = upper; in gfc_conv_intrinsic_transfer()
5625 gfc_trans_create_temp_array (&se->pre, &se->post, se->ss, mold_type, in gfc_conv_intrinsic_transfer()
5643 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_transfer()
5645 se->expr = info->descriptor; in gfc_conv_intrinsic_transfer()
5647 se->string_length = fold_convert (gfc_charlen_type_node, dest_word_len); in gfc_conv_intrinsic_transfer()
5691 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_transfer()
5698 gfc_add_expr_to_block (&se->post, tmp); in gfc_conv_intrinsic_transfer()
5700 se->expr = tmpdecl; in gfc_conv_intrinsic_transfer()
5701 se->string_length = fold_convert (gfc_charlen_type_node, dest_word_len); in gfc_conv_intrinsic_transfer()
5714 tmp = gfc_call_malloc (&se->pre, TREE_TYPE (cdata), dest_word_len); in gfc_conv_intrinsic_transfer()
5715 gfc_add_modify (&se->pre, cdata, tmp); in gfc_conv_intrinsic_transfer()
5729 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_transfer()
5740 gfc_add_modify (&se->pre, vptr, fold_convert (TREE_TYPE (vptr), tmp)); in gfc_conv_intrinsic_transfer()
5743 se->expr = tmpdecl; in gfc_conv_intrinsic_transfer()
5752 gfc_conv_allocated (gfc_se *se, gfc_expr *expr) in gfc_conv_allocated() argument
5789 se->expr = convert (gfc_typenode_for_spec (&expr->ts), tmp); in gfc_conv_allocated()
5800 gfc_conv_associated (gfc_se *se, gfc_expr *expr) in gfc_conv_associated() argument
5848 gfc_add_block_to_block (&se->pre, &arg1se.pre); in gfc_conv_associated()
5849 gfc_add_block_to_block (&se->post, &arg1se.post); in gfc_conv_associated()
5852 se->expr = tmp; in gfc_conv_associated()
5884 gfc_add_block_to_block (&se->pre, &arg1se.pre); in gfc_conv_associated()
5885 gfc_add_block_to_block (&se->post, &arg1se.post); in gfc_conv_associated()
5890 se->expr = fold_build2_loc (input_location, TRUTH_AND_EXPR, in gfc_conv_associated()
5918 gfc_add_block_to_block (&se->pre, &arg2se.pre); in gfc_conv_associated()
5919 gfc_add_block_to_block (&se->post, &arg2se.post); in gfc_conv_associated()
5920 se->expr = build_call_expr_loc (input_location, in gfc_conv_associated()
5923 se->expr = convert (boolean_type_node, se->expr); in gfc_conv_associated()
5924 se->expr = fold_build2_loc (input_location, TRUTH_AND_EXPR, in gfc_conv_associated()
5925 boolean_type_node, se->expr, in gfc_conv_associated()
5932 se->expr = fold_build2_loc (input_location, TRUTH_AND_EXPR, in gfc_conv_associated()
5934 se->expr, nonzero_charlen); in gfc_conv_associated()
5937 se->expr = convert (gfc_typenode_for_spec (&expr->ts), se->expr); in gfc_conv_associated()
5945 gfc_conv_same_type_as (gfc_se *se, gfc_expr *expr) in gfc_conv_same_type_as() argument
6005 se->expr = convert (gfc_typenode_for_spec (&expr->ts), tmp); in gfc_conv_same_type_as()
6012 gfc_conv_intrinsic_sc_kind (gfc_se *se, gfc_expr *expr) in gfc_conv_intrinsic_sc_kind() argument
6016 gfc_conv_intrinsic_function_args (se, expr, args, 2); in gfc_conv_intrinsic_sc_kind()
6017 se->expr = build_call_expr_loc (input_location, in gfc_conv_intrinsic_sc_kind()
6019 se->expr = fold_convert (gfc_typenode_for_spec (&expr->ts), se->expr); in gfc_conv_intrinsic_sc_kind()
6026 gfc_conv_intrinsic_si_kind (gfc_se *se, gfc_expr *expr) in gfc_conv_intrinsic_si_kind() argument
6030 gfc_conv_intrinsic_function_args (se, expr, &arg, 1); in gfc_conv_intrinsic_si_kind()
6038 se->expr = build_call_expr_loc (input_location, in gfc_conv_intrinsic_si_kind()
6040 se->expr = fold_convert (type, se->expr); in gfc_conv_intrinsic_si_kind()
6047 gfc_conv_intrinsic_sr_kind (gfc_se *se, gfc_expr *expr) in gfc_conv_intrinsic_sr_kind() argument
6056 gfc_init_se (&argse, se); in gfc_conv_intrinsic_sr_kind()
6076 gfc_add_block_to_block (&se->pre, &argse.pre); in gfc_conv_intrinsic_sr_kind()
6077 gfc_add_block_to_block (&se->post, &argse.post); in gfc_conv_intrinsic_sr_kind()
6083 se->expr = build_call_expr_loc_vec (input_location, in gfc_conv_intrinsic_sr_kind()
6085 se->expr = fold_convert (type, se->expr); in gfc_conv_intrinsic_sr_kind()
6092 gfc_conv_intrinsic_trim (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_trim() argument
6111 gfc_conv_intrinsic_function_args (se, expr, &args[2], num_args - 2); in gfc_conv_intrinsic_trim()
6126 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_trim()
6133 gfc_add_expr_to_block (&se->post, tmp); in gfc_conv_intrinsic_trim()
6135 se->expr = var; in gfc_conv_intrinsic_trim()
6136 se->string_length = len; in gfc_conv_intrinsic_trim()
6143 gfc_conv_intrinsic_repeat (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_repeat() argument
6156 gfc_conv_intrinsic_function_args (se, expr, args, 3); in gfc_conv_intrinsic_repeat()
6157 slen = fold_convert (size_type_node, gfc_evaluate_now (args[0], &se->pre)); in gfc_conv_intrinsic_repeat()
6159 ncopies = gfc_evaluate_now (args[2], &se->pre); in gfc_conv_intrinsic_repeat()
6165 gfc_trans_runtime_check (true, false, cond, &se->pre, &expr->where, in gfc_conv_intrinsic_repeat()
6177 gfc_add_modify (&se->pre, n, tmp); in gfc_conv_intrinsic_repeat()
6197 gfc_trans_runtime_check (true, false, cond, &se->pre, &expr->where, in gfc_conv_intrinsic_repeat()
6205 dest = gfc_conv_string_tmp (se, build_pointer_type (type), dlen); in gfc_conv_intrinsic_repeat()
6259 gfc_add_expr_to_block (&se->pre, tmp); in gfc_conv_intrinsic_repeat()
6262 se->expr = dest; in gfc_conv_intrinsic_repeat()
6263 se->string_length = dlen; in gfc_conv_intrinsic_repeat()
6270 gfc_conv_intrinsic_iargc (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_iargc() argument
6285 se->expr = tmp; in gfc_conv_intrinsic_iargc()
6293 gfc_conv_intrinsic_loc (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_loc() argument
6298 gcc_assert (!se->ss); in gfc_conv_intrinsic_loc()
6302 gfc_conv_expr_reference (se, arg_expr); in gfc_conv_intrinsic_loc()
6304 gfc_conv_array_parameter (se, arg_expr, true, NULL, NULL, NULL); in gfc_conv_intrinsic_loc()
6305 se->expr= convert (gfc_get_int_type (gfc_index_integer_kind), se->expr); in gfc_conv_intrinsic_loc()
6310 gfc_add_modify (&se->pre, temp_var, se->expr); in gfc_conv_intrinsic_loc()
6311 se->expr = temp_var; in gfc_conv_intrinsic_loc()
6322 conv_isocbinding_function (gfc_se *se, gfc_expr *expr) in conv_isocbinding_function() argument
6329 gfc_conv_expr_reference (se, arg->expr); in conv_isocbinding_function()
6331 gfc_conv_array_parameter (se, arg->expr, true, NULL, NULL, NULL); in conv_isocbinding_function()
6334 gfc_conv_expr_descriptor (se, arg->expr); in conv_isocbinding_function()
6335 se->expr = gfc_conv_descriptor_data_get (se->expr); in conv_isocbinding_function()
6342 se->expr = convert (pvoid_type_node, se->expr); in conv_isocbinding_function()
6343 se->expr = gfc_evaluate_now (se->expr, &se->pre); in conv_isocbinding_function()
6346 gfc_conv_expr_reference (se, arg->expr); in conv_isocbinding_function()
6357 gfc_add_block_to_block (&se->pre, &arg1se.pre); in conv_isocbinding_function()
6358 gfc_add_block_to_block (&se->post, &arg1se.post); in conv_isocbinding_function()
6364 se->expr = fold_build2_loc (input_location, NE_EXPR, boolean_type_node, in conv_isocbinding_function()
6376 gfc_add_block_to_block (&se->pre, &arg2se.pre); in conv_isocbinding_function()
6377 gfc_add_block_to_block (&se->post, &arg2se.post); in conv_isocbinding_function()
6389 se->expr = fold_build2_loc (input_location, TRUTH_AND_EXPR, in conv_isocbinding_function()
6407 gfc_se se; in conv_isocbinding_subroutine() local
6417 gfc_init_se (&se, NULL); in conv_isocbinding_subroutine()
6420 gfc_add_block_to_block (&se.pre, &cptrse.pre); in conv_isocbinding_subroutine()
6421 gfc_add_block_to_block (&se.post, &cptrse.post); in conv_isocbinding_subroutine()
6428 gfc_add_block_to_block (&se.pre, &fptrse.pre); in conv_isocbinding_subroutine()
6429 gfc_add_block_to_block (&se.post, &fptrse.post); in conv_isocbinding_subroutine()
6434 se.expr = fold_build2_loc (input_location, MODIFY_EXPR, in conv_isocbinding_subroutine()
6439 gfc_add_expr_to_block (&se.pre, se.expr); in conv_isocbinding_subroutine()
6440 gfc_add_block_to_block (&se.pre, &se.post); in conv_isocbinding_subroutine()
6441 return gfc_finish_block (&se.pre); in conv_isocbinding_subroutine()
6515 gfc_add_expr_to_block (&se.pre, gfc_finish_block (&block)); in conv_isocbinding_subroutine()
6516 gfc_add_block_to_block (&se.pre, &se.post); in conv_isocbinding_subroutine()
6517 return gfc_finish_block (&se.pre); in conv_isocbinding_subroutine()
6526 gfc_conv_intrinsic_function (gfc_se * se, gfc_expr * expr) in gfc_conv_intrinsic_function() argument
6540 se->ignore_optional = 1; in gfc_conv_intrinsic_function()
6549 conv_generic_with_optional_char_arg (se, expr, 1, 3); in gfc_conv_intrinsic_function()
6553 gfc_conv_intrinsic_funcall (se, expr); in gfc_conv_intrinsic_function()
6567 gfc_conv_intrinsic_repeat (se, expr); in gfc_conv_intrinsic_function()
6571 gfc_conv_intrinsic_trim (se, expr); in gfc_conv_intrinsic_function()
6575 gfc_conv_intrinsic_sc_kind (se, expr); in gfc_conv_intrinsic_function()
6579 gfc_conv_intrinsic_si_kind (se, expr); in gfc_conv_intrinsic_function()
6583 gfc_conv_intrinsic_sr_kind (se, expr); in gfc_conv_intrinsic_function()
6587 gfc_conv_intrinsic_exponent (se, expr); in gfc_conv_intrinsic_function()
6599 gfc_conv_intrinsic_index_scan_verify (se, expr, fndecl); in gfc_conv_intrinsic_function()
6611 gfc_conv_intrinsic_index_scan_verify (se, expr, fndecl); in gfc_conv_intrinsic_function()
6615 gfc_conv_allocated (se, expr); in gfc_conv_intrinsic_function()
6619 gfc_conv_associated(se, expr); in gfc_conv_intrinsic_function()
6623 gfc_conv_same_type_as (se, expr); in gfc_conv_intrinsic_function()
6627 gfc_conv_intrinsic_abs (se, expr); in gfc_conv_intrinsic_function()
6638 gfc_conv_intrinsic_adjust (se, expr, fndecl); in gfc_conv_intrinsic_function()
6649 gfc_conv_intrinsic_adjust (se, expr, fndecl); in gfc_conv_intrinsic_function()
6653 gfc_conv_intrinsic_imagpart (se, expr); in gfc_conv_intrinsic_function()
6657 gfc_conv_intrinsic_aint (se, expr, RND_TRUNC); in gfc_conv_intrinsic_function()
6661 gfc_conv_intrinsic_anyall (se, expr, EQ_EXPR); in gfc_conv_intrinsic_function()
6665 gfc_conv_intrinsic_aint (se, expr, RND_ROUND); in gfc_conv_intrinsic_function()
6669 gfc_conv_intrinsic_bitop (se, expr, BIT_AND_EXPR); in gfc_conv_intrinsic_function()
6673 gfc_conv_intrinsic_anyall (se, expr, NE_EXPR); in gfc_conv_intrinsic_function()
6677 gfc_conv_intrinsic_btest (se, expr); in gfc_conv_intrinsic_function()
6681 gfc_conv_intrinsic_bitcomp (se, expr, GE_EXPR); in gfc_conv_intrinsic_function()
6685 gfc_conv_intrinsic_bitcomp (se, expr, GT_EXPR); in gfc_conv_intrinsic_function()
6689 gfc_conv_intrinsic_bitcomp (se, expr, LE_EXPR); in gfc_conv_intrinsic_function()
6693 gfc_conv_intrinsic_bitcomp (se, expr, LT_EXPR); in gfc_conv_intrinsic_function()
6699 conv_isocbinding_function (se, expr); in gfc_conv_intrinsic_function()
6704 gfc_conv_intrinsic_char (se, expr); in gfc_conv_intrinsic_function()
6711 gfc_conv_intrinsic_conversion (se, expr); in gfc_conv_intrinsic_function()
6720 gfc_conv_intrinsic_int (se, expr, RND_TRUNC); in gfc_conv_intrinsic_function()
6724 gfc_conv_intrinsic_int (se, expr, RND_ROUND); in gfc_conv_intrinsic_function()
6728 gfc_conv_intrinsic_int (se, expr, RND_CEIL); in gfc_conv_intrinsic_function()
6732 gfc_conv_intrinsic_int (se, expr, RND_FLOOR); in gfc_conv_intrinsic_function()
6736 gfc_conv_intrinsic_mod (se, expr, 0); in gfc_conv_intrinsic_function()
6740 gfc_conv_intrinsic_mod (se, expr, 1); in gfc_conv_intrinsic_function()
6744 gfc_conv_intrinsic_cmplx (se, expr, name[5] == '1'); in gfc_conv_intrinsic_function()
6748 gfc_conv_intrinsic_iargc (se, expr); in gfc_conv_intrinsic_function()
6752 gfc_conv_intrinsic_cmplx (se, expr, 1); in gfc_conv_intrinsic_function()
6756 gfc_conv_intrinsic_conjg (se, expr); in gfc_conv_intrinsic_function()
6760 gfc_conv_intrinsic_count (se, expr); in gfc_conv_intrinsic_function()
6764 gfc_conv_intrinsic_ctime (se, expr); in gfc_conv_intrinsic_function()
6768 gfc_conv_intrinsic_dim (se, expr); in gfc_conv_intrinsic_function()
6772 gfc_conv_intrinsic_dot_product (se, expr); in gfc_conv_intrinsic_function()
6776 gfc_conv_intrinsic_dprod (se, expr); in gfc_conv_intrinsic_function()
6780 gfc_conv_intrinsic_dshift (se, expr, true); in gfc_conv_intrinsic_function()
6784 gfc_conv_intrinsic_dshift (se, expr, false); in gfc_conv_intrinsic_function()
6788 gfc_conv_intrinsic_fdate (se, expr); in gfc_conv_intrinsic_function()
6792 gfc_conv_intrinsic_fraction (se, expr); in gfc_conv_intrinsic_function()
6796 gfc_conv_intrinsic_arith (se, expr, BIT_AND_EXPR, false); in gfc_conv_intrinsic_function()
6800 gfc_conv_intrinsic_bitop (se, expr, BIT_AND_EXPR); in gfc_conv_intrinsic_function()
6804 gfc_conv_intrinsic_arith (se, expr, BIT_IOR_EXPR, false); in gfc_conv_intrinsic_function()
6808 gfc_conv_intrinsic_singlebitop (se, expr, 0); in gfc_conv_intrinsic_function()
6812 gfc_conv_intrinsic_ibits (se, expr); in gfc_conv_intrinsic_function()
6816 gfc_conv_intrinsic_singlebitop (se, expr, 1); in gfc_conv_intrinsic_function()
6822 gfc_conv_intrinsic_ichar (se, expr); in gfc_conv_intrinsic_function()
6826 gfc_conv_intrinsic_iargc (se, expr); in gfc_conv_intrinsic_function()
6830 gfc_conv_intrinsic_bitop (se, expr, BIT_XOR_EXPR); in gfc_conv_intrinsic_function()
6842 gfc_conv_intrinsic_index_scan_verify (se, expr, fndecl); in gfc_conv_intrinsic_function()
6846 gfc_conv_intrinsic_bitop (se, expr, BIT_IOR_EXPR); in gfc_conv_intrinsic_function()
6850 gfc_conv_intrinsic_arith (se, expr, BIT_XOR_EXPR, false); in gfc_conv_intrinsic_function()
6854 gfc_conv_has_intvalue (se, expr, LIBERROR_END); in gfc_conv_intrinsic_function()
6858 gfc_conv_has_intvalue (se, expr, LIBERROR_EOR); in gfc_conv_intrinsic_function()
6862 gfc_conv_intrinsic_isnan (se, expr); in gfc_conv_intrinsic_function()
6866 gfc_conv_intrinsic_shift (se, expr, false, false); in gfc_conv_intrinsic_function()
6870 gfc_conv_intrinsic_shift (se, expr, true, true); in gfc_conv_intrinsic_function()
6874 gfc_conv_intrinsic_shift (se, expr, true, true); in gfc_conv_intrinsic_function()
6878 gfc_conv_intrinsic_shift (se, expr, false, false); in gfc_conv_intrinsic_function()
6882 gfc_conv_intrinsic_shift (se, expr, true, false); in gfc_conv_intrinsic_function()
6886 gfc_conv_intrinsic_ishft (se, expr); in gfc_conv_intrinsic_function()
6890 gfc_conv_intrinsic_ishftc (se, expr); in gfc_conv_intrinsic_function()
6894 gfc_conv_intrinsic_leadz (se, expr); in gfc_conv_intrinsic_function()
6898 gfc_conv_intrinsic_trailz (se, expr); in gfc_conv_intrinsic_function()
6902 gfc_conv_intrinsic_popcnt_poppar (se, expr, 0); in gfc_conv_intrinsic_function()
6906 gfc_conv_intrinsic_popcnt_poppar (se, expr, 1); in gfc_conv_intrinsic_function()
6910 gfc_conv_intrinsic_bound (se, expr, 0); in gfc_conv_intrinsic_function()
6914 conv_intrinsic_cobound (se, expr); in gfc_conv_intrinsic_function()
6920 gfc_conv_expr (se, expr->value.function.actual->expr); in gfc_conv_intrinsic_function()
6924 gfc_conv_intrinsic_len (se, expr); in gfc_conv_intrinsic_function()
6928 gfc_conv_intrinsic_len_trim (se, expr); in gfc_conv_intrinsic_function()
6932 gfc_conv_intrinsic_strcmp (se, expr, GE_EXPR); in gfc_conv_intrinsic_function()
6936 gfc_conv_intrinsic_strcmp (se, expr, GT_EXPR); in gfc_conv_intrinsic_function()
6940 gfc_conv_intrinsic_strcmp (se, expr, LE_EXPR); in gfc_conv_intrinsic_function()
6944 gfc_conv_intrinsic_strcmp (se, expr, LT_EXPR); in gfc_conv_intrinsic_function()
6948 gfc_conv_intrinsic_mask (se, expr, 1); in gfc_conv_intrinsic_function()
6952 gfc_conv_intrinsic_mask (se, expr, 0); in gfc_conv_intrinsic_function()
6957 gfc_conv_intrinsic_minmax_char (se, expr, 1); in gfc_conv_intrinsic_function()
6959 gfc_conv_intrinsic_minmax (se, expr, GT_EXPR); in gfc_conv_intrinsic_function()
6963 gfc_conv_intrinsic_minmaxloc (se, expr, GT_EXPR); in gfc_conv_intrinsic_function()
6967 gfc_conv_intrinsic_minmaxval (se, expr, GT_EXPR); in gfc_conv_intrinsic_function()
6971 gfc_conv_intrinsic_merge (se, expr); in gfc_conv_intrinsic_function()
6975 gfc_conv_intrinsic_merge_bits (se, expr); in gfc_conv_intrinsic_function()
6980 gfc_conv_intrinsic_minmax_char (se, expr, -1); in gfc_conv_intrinsic_function()
6982 gfc_conv_intrinsic_minmax (se, expr, LT_EXPR); in gfc_conv_intrinsic_function()
6986 gfc_conv_intrinsic_minmaxloc (se, expr, LT_EXPR); in gfc_conv_intrinsic_function()
6990 gfc_conv_intrinsic_minmaxval (se, expr, LT_EXPR); in gfc_conv_intrinsic_function()
6994 gfc_conv_intrinsic_nearest (se, expr); in gfc_conv_intrinsic_function()
6998 gfc_conv_intrinsic_arith (se, expr, PLUS_EXPR, true); in gfc_conv_intrinsic_function()
7002 gfc_conv_intrinsic_not (se, expr); in gfc_conv_intrinsic_function()
7006 gfc_conv_intrinsic_bitop (se, expr, BIT_IOR_EXPR); in gfc_conv_intrinsic_function()
7010 gfc_conv_intrinsic_arith (se, expr, NE_EXPR, false); in gfc_conv_intrinsic_function()
7014 gfc_conv_intrinsic_present (se, expr); in gfc_conv_intrinsic_function()
7018 gfc_conv_intrinsic_arith (se, expr, MULT_EXPR, false); in gfc_conv_intrinsic_function()
7022 gfc_conv_intrinsic_rank (se, expr); in gfc_conv_intrinsic_function()
7026 gfc_conv_intrinsic_rrspacing (se, expr); in gfc_conv_intrinsic_function()
7030 gfc_conv_intrinsic_set_exponent (se, expr); in gfc_conv_intrinsic_function()
7034 gfc_conv_intrinsic_scale (se, expr); in gfc_conv_intrinsic_function()
7038 gfc_conv_intrinsic_sign (se, expr); in gfc_conv_intrinsic_function()
7042 gfc_conv_intrinsic_size (se, expr); in gfc_conv_intrinsic_function()
7047 gfc_conv_intrinsic_sizeof (se, expr); in gfc_conv_intrinsic_function()
7051 gfc_conv_intrinsic_storage_size (se, expr); in gfc_conv_intrinsic_function()
7055 gfc_conv_intrinsic_spacing (se, expr); in gfc_conv_intrinsic_function()
7059 conv_intrinsic_stride (se, expr); in gfc_conv_intrinsic_function()
7063 gfc_conv_intrinsic_arith (se, expr, PLUS_EXPR, false); in gfc_conv_intrinsic_function()
7067 if (se->ss && se->ss->info->useflags) in gfc_conv_intrinsic_function()
7069 gfc_conv_tmp_array_ref (se); in gfc_conv_intrinsic_function()
7071 gfc_conv_intrinsic_transfer (se, expr); in gfc_conv_intrinsic_function()
7075 gfc_conv_intrinsic_ttynam (se, expr); in gfc_conv_intrinsic_function()
7079 gfc_conv_intrinsic_bound (se, expr, 1); in gfc_conv_intrinsic_function()
7083 conv_intrinsic_cobound (se, expr); in gfc_conv_intrinsic_function()
7087 gfc_conv_intrinsic_bitop (se, expr, BIT_XOR_EXPR); in gfc_conv_intrinsic_function()
7091 gfc_conv_intrinsic_loc (se, expr); in gfc_conv_intrinsic_function()
7098 conv_intrinsic_cobound (se, expr); in gfc_conv_intrinsic_function()
7100 trans_this_image (se, expr); in gfc_conv_intrinsic_function()
7104 trans_image_index (se, expr); in gfc_conv_intrinsic_function()
7108 trans_num_images (se); in gfc_conv_intrinsic_function()
7153 gfc_conv_intrinsic_funcall (se, expr); in gfc_conv_intrinsic_function()
7165 gfc_conv_intrinsic_lib_function (se, expr); in gfc_conv_intrinsic_function()