#include "defs.h"#include "glob.h"#include "stab.h"#include "strtab.h"#include "erfe90.h"#include "errors.h"#include "config_targ.h"#include "wn.h"#include "wn_util.h"#include "const.h"#include "wintrinsic.h"#include "f90_utils.h"#include "i_cvrt.h"#include "cwh_defines.h"#include "cwh_addr.h"#include "cwh_block.h"#include "cwh_stk.h"#include "cwh_types.h"#include "cwh_expr.h"#include "cwh_stmt.h"#include "cwh_preg.h"#include "cwh_stab.h"#include "cwh_intrin.h"#include "cwh_intrin.i"
Go to the source code of this file.
Defines | |
| #define | do_simple(name, numargs, numpop) |
| #define | do_simple_nt(name, numargs, numpop) |
| #define | MAXARGS 6 |
| #define | do_transformational(name, intrn, numargs, is_numeric) |
| #define | do_transformational_cvt(name, intrn, numargs, is_numeric) |
| #define | do_char_intrin(name, intr, args) void name(TYPE type) {cwh_char_intrin(intr,args);} |
| #define | do_char_intrin_nt(name, intr, args) void name(void) {cwh_char_intrin(intr,args);} |
| #define | SELECT_INTRINSIC(t, f) |
| #define | UNIMPLEMENTED(fname) void fname() {printf("%3d %s\n",__LINE__,# fname);} |
| #define | IEEE_INTRINCALL(name, intrin, rty, nargs, warn_msg) extern void name (void) {cwh_intrin_ieee_intrin_call_helper(INTRN_##intrin,rty,nargs,warn_msg,#intrin); } |
| #define | SYNC_INTRIN(name, iname, nargs) |
Functions | |
| static WN * | cwh_intrin_get_return_value (TYPE_ID rtype, char *name) |
| static t_enum | t_from_mtype (TYPE_ID ty) |
| static WN * | cwh_intrin_null_parm (void) |
| ST * | cwh_intrin_make_intrinsic_symbol (char *name, TYPE_ID bt) |
| WN * | cwh_intrin_wrap_value_parm (WN *w) |
| WN * | cwh_intrin_wrap_ref_parm (WN *wa, TY_IDX ty) |
| WN * | cwh_intrin_wrap_char_parm (WN *wa, WN *sz) |
| static void | simple_intrinsic (i_enum intrin, TYPE_ID bt, INT numargs, INT numpop) |
| static void | simple_intrinsic_nt (i_enum intrin, INT numargs, INT numpop) |
| do_simple (acos, 1, 0) do_simple(asin | |
| do_simple (atan, 1, 0) do_simple(atan2 | |
| do_simple (conjg, 1, 0) do_simple(cos | |
| do_simple (cosh, 1, 0) do_simple(exp | |
| do_simple_nt (fraction, 1, 0) do_simple(ishftc | |
| do_simple (log, 1, 0) do_simple(log10 | |
| do_simple (mod, 2, 0) do_simple(modulo | |
| do_simple (nextafter, 2, 0) do_simple(rrspace | |
| do_simple (sin, 1, 0) do_simple(sinh | |
| do_simple (space, 1, 1) do_simple(sqrt | |
| do_simple (tan, 1, 0) do_simple(tanh | |
| do_simple (acosd, 1, 0) do_simple(asind | |
| do_simple (atand, 1, 0) do_simple(atan2d | |
| do_simple (cosd, 1, 0) do_simple(sind | |
| do_simple (tand, 1, 0) void fei_complex(TYPE type) | |
| void | fei_abs (TYPE type) |
| void | fei_cot (TYPE type) |
| void | fei_exponentiate (TYPE type) |
| void | fei_round (TYPE type) |
| void | fei_trunc (TYPE type) |
| void | fei_scale (TYPE type) |
| void | fei_near (TYPE type) |
| void | fei_set_exponent (TYPE type) |
| void | fei_exponent (TYPE type) |
| void | fei_pos_diff (TYPE type) |
| void | fei_sign_xfer (TYPE type) |
| void | fei_ieee_sign_xfer (TYPE type) |
| static void | cwh_ceiling_floor (TYPE type, OPERATOR opr) |
| void | fei_ceiling (TYPE type) |
| void | fei_floor (TYPE type) |
| static void | cwh_do_tranformational (INTRINSIC intrn, INT numargs, TYPE rtype, BOOL is_numeric, BOOL cvt_to_rtype) |
| do_transformational (fei_spread, INTRN_SPREAD, 3, FALSE) do_transformational(fei_transpose | |
| FALSE | do_transformational (fei_all, INTRN_ALL, 2, TRUE) do_transformational(fei_any |
| FALSE TRUE | do_transformational (fei_product, INTRN_PRODUCT, 3, TRUE) do_transformational(fei_sum |
| FALSE TRUE TRUE | do_transformational (fei_maxval, INTRN_MAXVAL, 3, TRUE) do_transformational(fei_minval |
| FALSE TRUE TRUE TRUE | do_transformational (fei_maxloc, INTRN_MAXLOC, 2, TRUE) do_transformational(fei_minloc |
| FALSE TRUE TRUE TRUE TRUE | do_transformational (fei__maxloc, INTRN_MAXLOC, 3, TRUE) do_transformational(fei__minloc |
| FALSE TRUE TRUE TRUE TRUE TRUE | do_transformational (fei_pack, INTRN_PACK, 3, FALSE) do_transformational(fei_unpack |
| FALSE TRUE TRUE TRUE TRUE TRUE FALSE | do_transformational (fei_cshift, INTRN_CSHIFT, 3, FALSE) do_transformational(fei_eoshift |
| FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE void | fei_matmul (TYPE rtype) |
| void | fei_dot_product (TYPE rtype) |
| void | fei_dot_product_logical (TYPE rtype) |
| void | fei_count (TYPE type) |
| void | fei_malloc (void) |
| void | fei_alloc (void) |
| void | fei_mfree (void) |
| void | fei_free (void) |
| void | fei_ranf (TYPE type) |
| void | fei_ranget (TYPE type) |
| void | fei_ranset (TYPE type) |
| void | fei_rtc (TYPE type) |
| void | fei_unit (void) |
| void | fei_length (void) |
| void | fei_present (void) |
| void | fei_ibits (TYPE type) |
| void | fei_mvbits (TYPE type) |
| static void | cwh_char_intrin (INTRINSIC intr, INT numargs) |
| do_char_intrin (fei_scan, INTRN_SCAN, 3) do_char_intrin(fei_verify | |
| do_char_intrin_nt (fei_index, INTRN_F90INDEX, 3) do_char_intrin_nt(fei_len_trim | |
| do_char_intrin_nt (fei_len, INTRN_I4CLEN, 1) void fei_adjustl(TYPE type) | |
| void | fei_adjustr (TYPE type) |
| void | fei_ieee_round (TYPE type) |
| void | fei_ieee_trunc (TYPE type) |
| static void | cwh_intrin_popcnt_leadz_helper (INTRINSIC i1, INTRINSIC i2, INTRINSIC i4, INTRINSIC i8, TYPE rtype, TYPE arg) |
| void | fei_popcnt (TYPE type, TYPE arg) |
| void | fei_leadz (TYPE type, TYPE arg) |
| void | fei_poppar (TYPE type, TYPE arg) |
| static void | cwh_funny_fp_intrinsic (INTRINSIC intr, INT numargs, WN **args, TY_IDX ty, BOOL cvtf4, WN *ae) |
| void | fei_scalb (TYPE type) |
| void | fei_remainder (TYPE type) |
| void | fei_logb (TYPE type) |
| void | fei_isfinite (TYPE type) |
| void | fei_isnan (TYPE type) |
| void | fei_isunordered (TYPE type) |
| void | fei_fpclass (TYPE type) |
| static void | cwh_intrin_ieee_intrin_call_helper (INTRINSIC intrin, TYPE_ID type, INT nargs, BOOL issue_warning, char *iname) |
| IEEE_INTRINCALL (fei_set_all_estat, SET_IEEE_EXCEPTIONS, MTYPE_V, 1, TRUE) | |
| IEEE_INTRINCALL (fei_get_interupt, GET_IEEE_INTERRUPTS, MTYPE_I4, 0, FALSE) | |
| IEEE_INTRINCALL (fei_get_all_estat, GET_IEEE_EXCEPTIONS, MTYPE_I4, 0, TRUE) | |
| IEEE_INTRINCALL (fei_readsr, GET_IEEE_STATUS, MTYPE_I4, 1, TRUE) | |
| IEEE_INTRINCALL (fei_get_rmode, GET_IEEE_ROUNDING_MODE, MTYPE_I4, 0, FALSE) | |
| IEEE_INTRINCALL (fei_set_rmode, SET_IEEE_ROUNDING_MODE, MTYPE_V, 1, TRUE) | |
| IEEE_INTRINCALL (fei_set_ieee_stat, SET_IEEE_STATUS, MTYPE_V, 1, TRUE) | |
| IEEE_INTRINCALL (fei_set_interupt, SET_IEEE_INTERRUPTS, MTYPE_V, 1, TRUE) | |
| IEEE_INTRINCALL (fei_set_estat, SET_IEEE_EXCEPTION, MTYPE_V, 2, TRUE) | |
| IEEE_INTRINCALL (fei_dsbl_interupt, DISABLE_IEEE_INTERRUPT, MTYPE_V, 1, TRUE) | |
| IEEE_INTRINCALL (fei_enbl_interupt, ENABLE_IEEE_INTERRUPT, MTYPE_V, 1, TRUE) | |
| static void | cwh_intrin_ieee_intrin_helper (INTRINSIC intrin, BOOL issue_warning, char *iname) |
| void | fei_test_interupt (void) |
| void | fei_test_estat (void) |
| void | fei_omp_set_lock (void) |
| void | fei_omp_unset_lock (void) |
| void | fei_omp_test_lock (void) |
| static void | cwh_intrin_sync_intrin (INTRINSIC i4intrin, INTRINSIC i8intrin, TYPE_ID rtype, INT num_args) |
| void | fei_synchronize (void) |
| void | fei_lock_release (void) |
| WN * | cwh_intrin_call (INTRINSIC intr, INT16 numargs, WN **k, WN **sz, BOOL *v, TYPE_ID bt) |
| WN * | cwh_intrin_op (INTRINSIC intr, INT16 numargs, WN **k, WN **sz, BOOL *v, TYPE_ID bt) |
| static WN * | cwh_intrin_build (WN **k, INTRINSIC intr, TYPE_ID bt, INT numargs) |
| void | cwh_whirl_simplfier_control (BOOL onoff) |
Variables | |
| static char * | source_file = __FILE__ |
| static ST * | ranget_st = NULL |
| static ST * | ranset_st = NULL |
| static ST * | rtc_st = NULL |
| static ST * | unit_st = NULL |
| static ST * | length_st = NULL |
| static ST * | getpos_st = NULL |
| static ST * | omp_set_lock_st = NULL |
| static ST * | omp_unset_lock_st = NULL |
| static ST * | omp_test_lock_st = NULL |
| INTRN_TRANSPOSE | |
| FALSE | INTRN_ANY |
| FALSE TRUE | INTRN_SUM |
| FALSE TRUE TRUE | INTRN_MINVAL |
| FALSE TRUE TRUE TRUE | INTRN_MINLOC |
| FALSE TRUE TRUE TRUE TRUE TRUE | INTRN_UNPACK |
| FALSE TRUE TRUE TRUE TRUE TRUE FALSE | INTRN_EOSHIFT |
| INTRN_VERIFY | |
| INTRN_LENTRIM | |
Definition at line 1656 of file cwh_intrin.cxx.
Definition at line 1657 of file cwh_intrin.cxx.
void fei_##name(TYPE type) \ {simple_intrinsic(i_##name,TY_mtype(cast_to_TY(t_TY(type))),numargs,numpop);}
Definition at line 429 of file cwh_intrin.cxx.
void fei_##name(void) \ {simple_intrinsic_nt(i_##name,numargs,numpop);}
Definition at line 432 of file cwh_intrin.cxx.
Definition at line 1071 of file cwh_intrin.cxx.
Definition at line 1074 of file cwh_intrin.cxx.
| #define IEEE_INTRINCALL | ( | name, | |||
| intrin, | |||||
| rty, | |||||
| nargs, | |||||
| warn_msg | ) | extern void name (void) {cwh_intrin_ieee_intrin_call_helper(INTRN_##intrin,rty,nargs,warn_msg,#intrin); } |
Definition at line 2027 of file cwh_intrin.cxx.
| #define MAXARGS 6 |
Definition at line 983 of file cwh_intrin.cxx.
Referenced by cwh_do_tranformational().
| #define SELECT_INTRINSIC | ( | t, | |||
| f | ) |
Definition at line 1848 of file cwh_intrin.cxx.
Referenced by fei_fpclass(), fei_isfinite(), fei_isnan(), fei_isunordered(), fei_logb(), fei_remainder(), and fei_scalb().
| #define SYNC_INTRIN | ( | name, | |||
| iname, | |||||
| nargs | ) |
void name (TYPE type) {\ cwh_intrin_sync_intrin(INTRN_##iname##_I4,INTRN_##iname##_I8,TY_mtype(cast_to_TY(t_TY(type))),nargs);}
Definition at line 2233 of file cwh_intrin.cxx.
| #define UNIMPLEMENTED | ( | fname | ) | void fname() {printf("%3d %s\n",__LINE__,# fname);} |
Definition at line 1992 of file cwh_intrin.cxx.
Definition at line 936 of file cwh_intrin.cxx.
References cast_to_TY, cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_make_typed_opcode(), cwh_stk_push(), NULL, t_TY, TY_mtype(), wn, WN_CreateExp1(), WN_item, and WN_rtype().
Referenced by fei_ceiling(), and fei_floor().

Definition at line 1627 of file cwh_intrin.cxx.
References cwh_expr_address(), cwh_expr_operand(), cwh_intrin_wrap_char_parm(), cwh_intrin_wrap_value_parm(), cwh_stk_get_class(), cwh_stk_pop_STR(), cwh_stk_push(), f_NONE, INT, NULL, OPC_I4INTRINSIC_OP, STR_item, wn, WN_COPY_Tree(), WN_Create_Intrinsic(), and WN_item.

| static void cwh_do_tranformational | ( | INTRINSIC | intrn, | |
| INT | numargs, | |||
| TYPE | rtype, | |||
| BOOL | is_numeric, | |||
| BOOL | cvt_to_rtype | |||
| ) | [static] |
Definition at line 986 of file cwh_intrin.cxx.
References cast_to_TY, cwh_convert_to_ty(), cwh_expr_address(), cwh_expr_operand(), cwh_intrin_null_parm(), cwh_intrin_wrap_value_parm(), cwh_make_typed_opcode(), cwh_stk_get_class(), cwh_stk_get_TY(), cwh_stk_pop_STR(), cwh_stk_push_STR(), cwh_stk_push_typed(), cwh_types_make_pointer_type(), cwh_wrap_cvtl(), F90_Wrap_ARREXP(), f_NONE, FALSE, INT, KIND_POINTER, MAXARGS, MTYPE_M, MTYPE_V, NULL, OPC_MINTRINSIC_OP, OPCODE_make_op(), OPR_INTRINSIC_OP, Pointer_Mtype, STR_item, t_TY, TRUE, TY_kind(), TY_mtype(), TY_pointed(), wn, WN_COPY_Tree(), WN_Create_Intrinsic(), WN_CreateMload(), WN_CreateParm(), WN_item, WN_operator(), WN_PARM_BY_VALUE, WN_set_opcode(), and WNRTY.

| static void cwh_funny_fp_intrinsic | ( | INTRINSIC | intr, | |
| INT | numargs, | |||
| WN ** | args, | |||
| TY_IDX | ty, | |||
| BOOL | cvtf4, | |||
| WN * | ae | |||
| ) | [static] |
Definition at line 1813 of file cwh_intrin.cxx.
References cwh_convert_to_ty(), cwh_expr_restore_arrayexp(), cwh_intrin_wrap_value_parm(), cwh_make_typed_opcode(), cwh_stk_push_typed(), INT, MTYPE_F4, MTYPE_F8, MTYPE_V, OPC_F8INTRINSIC_OP, OPR_INTRINSIC_OP, TY_mtype(), wn, WN_Create_Intrinsic(), WN_item, and WN_rtype().
Referenced by fei_fpclass(), fei_isfinite(), fei_isnan(), fei_isunordered(), fei_logb(), fei_remainder(), and fei_scalb().

Definition at line 2360 of file cwh_intrin.cxx.
References cwh_intrin_wrap_value_parm(), cwh_make_typed_opcode(), INT, MTYPE_V, OPR_INTRINSIC_OP, wn, and WN_Create_Intrinsic().
Referenced by fei_abs(), fei_alloc(), fei_exponent(), fei_exponentiate(), fei_ieee_trunc(), fei_near(), fei_scale(), fei_set_exponent(), fei_trunc(), simple_intrinsic(), and simple_intrinsic_nt().

Definition at line 2283 of file cwh_intrin.cxx.
References cwh_block_append(), cwh_intrin_wrap_char_parm(), cwh_intrin_wrap_ref_parm(), cwh_intrin_wrap_value_parm(), cwh_make_typed_opcode(), INTRN_CONCATEXPR, MTYPE_V, NULL, OPR_INTRINSIC_CALL, wn, WN_Create_Intrinsic(), and WN_Set_Call_Default_Flags.
Referenced by cwh_addr_insert_bounds_check(), cwh_intrin_ieee_intrin_call_helper(), cwh_intrin_ieee_intrin_helper(), cwh_intrin_sync_intrin(), cwh_stmt_character_icall(), fei_concat(), fei_free(), fei_malloc(), and fei_mfree().

Definition at line 113 of file cwh_intrin.cxx.
References cwh_block_append(), cwh_expr_operand(), cwh_preg_next_preg(), NULL, PREG_det::preg, wn, WN_LdidPreg(), and WN_StidPreg.
Referenced by cwh_intrin_ieee_intrin_helper(), cwh_intrin_sync_intrin(), fei_length(), fei_malloc(), fei_omp_test_lock(), fei_rtc(), and fei_unit().

| static void cwh_intrin_ieee_intrin_call_helper | ( | INTRINSIC | intrin, | |
| TYPE_ID | type, | |||
| INT | nargs, | |||
| BOOL | issue_warning, | |||
| char * | iname | |||
| ) | [static] |
Definition at line 1998 of file cwh_intrin.cxx.
References Be_Type_Tbl, cwh_expr_operand(), cwh_intrin_call(), cwh_stk_push(), cwh_stmt_return_scalar(), EC_IEEE_Intrinsic_Warning, ErrMsg(), FALSE, INT, MTYPE_V, NULL, Opt_Level, TRUE, wn, and WN_item.

| static void cwh_intrin_ieee_intrin_helper | ( | INTRINSIC | intrin, | |
| BOOL | issue_warning, | |||
| char * | iname | |||
| ) | [static] |
Definition at line 2046 of file cwh_intrin.cxx.
References cwh_block_exchange_current(), cwh_block_new_and_current(), cwh_expr_operand(), cwh_intrin_call(), cwh_intrin_get_return_value(), cwh_stk_push(), cwh_stk_push_typed(), cwh_stmt_return_scalar(), EC_IEEE_Intrinsic_Warning, ErrMsg(), FALSE, logical4_ty, MTYPE_I4, NULL, OPC_I4COMMA, Opt_Level, TRUE, wn, WN_CreateComma(), and WN_item.
Referenced by fei_test_estat(), and fei_test_interupt().

Definition at line 179 of file cwh_intrin.cxx.
References Be_Type_Tbl, cwh_stab_mk_fn_0args(), EXPORT_PREEMPTIBLE, and GLOBAL_SYMTAB.
Referenced by cwh_inline_allocate(), fei_length(), fei_omp_set_lock(), fei_omp_test_lock(), fei_omp_unset_lock(), fei_ranget(), fei_ranset(), fei_rtc(), and fei_unit().

| static WN* cwh_intrin_null_parm | ( | void | ) | [static] |
Definition at line 161 of file cwh_intrin.cxx.
References Be_Type_Tbl, MTYPE_I4, MTYPE_V, wn, WN_CreateParm(), and WN_Zerocon().
Referenced by cwh_do_tranformational(), fei_dot_product(), and fei_dot_product_logical().

Definition at line 2327 of file cwh_intrin.cxx.
References cwh_intrin_wrap_char_parm(), cwh_intrin_wrap_ref_parm(), cwh_intrin_wrap_value_parm(), cwh_make_typed_opcode(), MTYPE_V, NULL, OPR_INTRINSIC_OP, wn, and WN_Create_Intrinsic().
Referenced by cwh_expr_compare_char().

| static void cwh_intrin_popcnt_leadz_helper | ( | INTRINSIC | i1, | |
| INTRINSIC | i2, | |||
| INTRINSIC | i4, | |||
| INTRINSIC | i8, | |||
| TYPE | rtype, | |||
| TYPE | arg | |||
| ) | [static] |
Definition at line 1724 of file cwh_intrin.cxx.
References Be_Type_Tbl, cwh_convert_to_ty(), cwh_expr_bincalc(), cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_intrin_wrap_value_parm(), cwh_stk_push(), DevAssert, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_is_integral, MTYPE_size_reg, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, NULL, OPC_I4INTRINSIC_OP, OPR_BAND, t_TY, TY_mtype(), wn, WN_Create_Intrinsic(), WN_Intconst(), WN_item, and WN_Tas().
Referenced by fei_leadz(), and fei_popcnt().

| static void cwh_intrin_sync_intrin | ( | INTRINSIC | i4intrin, | |
| INTRINSIC | i8intrin, | |||
| TYPE_ID | rtype, | |||
| INT | num_args | |||
| ) | [static] |
Definition at line 2172 of file cwh_intrin.cxx.
References Be_Type_Tbl, cwh_addr_address_ST(), cwh_addr_store_ST(), cwh_block_append(), cwh_expr_address(), cwh_expr_operand(), cwh_expr_set_flags(), cwh_intrin_call(), cwh_intrin_get_return_value(), cwh_stab_temp_ST(), cwh_stk_get_class(), cwh_stk_push(), cwh_stmt_return_scalar(), f_T_PASSED, FALSE, INT, MTYPE_I8, MTYPE_V, NULL, ST_item, TRUE, wn, WN_CreateBarrier(), WN_item, and WNRTY.
Referenced by fei_lock_release(), and fei_synchronize().

Definition at line 268 of file cwh_intrin.cxx.
References cwh_intrin_wrap_ref_parm(), cwh_types_ch_parm_TY(), DevAssert, NULL, and wn.
Referenced by cwh_char_intrin(), cwh_intrin_call(), cwh_intrin_op(), cwh_stmt_call_helper(), and fei_stop().

Definition at line 239 of file cwh_intrin.cxx.
References cwh_types_WN_TY(), Pointer_Mtype, TRUE, wn, WN_CreateParm(), and WN_PARM_BY_REFERENCE.
Referenced by cwh_inline_allocate(), cwh_intrin_call(), cwh_intrin_op(), cwh_intrin_wrap_char_parm(), cwh_stmt_call_helper(), and fei_allocate().

Definition at line 196 of file cwh_intrin.cxx.
References Be_Type_Tbl, cwh_types_WN_TY(), FALSE, MTYPE_M, NULL, OPR_PARM, WN_CreateParm(), WN_PARM_BY_VALUE, WN_rtype(), and WNOPR.
Referenced by cwh_char_intrin(), cwh_do_tranformational(), cwh_funny_fp_intrinsic(), cwh_inline_allocate(), cwh_intrin_build(), cwh_intrin_call(), cwh_intrin_op(), cwh_intrin_popcnt_leadz_helper(), cwh_stmt_call_helper(), cwh_stmt_insert_conformance_check(), fei_allocate(), fei_count(), fei_dot_product(), fei_dot_product_logical(), fei_matmul(), fei_round(), fei_stop(), and fei_trunc().

| void cwh_whirl_simplfier_control | ( | BOOL | onoff | ) |
Definition at line 2389 of file cwh_intrin.cxx.
References WN_Simplifier_Enable().

| do_char_intrin | ( | fei_scan | , | |
| INTRN_SCAN | , | |||
| 3 | ||||
| ) |
| do_char_intrin_nt | ( | fei_len | , | |
| INTRN_I4CLEN | , | |||
| 1 | ||||
| ) |
Definition at line 1663 of file cwh_intrin.cxx.
References cwh_stk_push(), cwh_stmt_character_icall(), INTRN_ADJUSTL, NULL, and WN_item.

| do_char_intrin_nt | ( | fei_index | , | |
| INTRN_F90INDEX | , | |||
| 3 | ||||
| ) |
| do_simple | ( | tand | , | |
| 1 | , | |||
| 0 | ||||
| ) |
Definition at line 464 of file cwh_intrin.cxx.
References cast_to_TY, cwh_convert_to_ty(), cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_stk_push(), GET_ITAB_WOP, i_complex, INT, MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_F4, MTYPE_F8, MTYPE_FQ, NULL, t_TY, TY_mtype(), wn, WN_CreateExp2(), and WN_item.

| do_simple | ( | cosd | , | |
| 1 | , | |||
| 0 | ||||
| ) |
| do_simple | ( | atand | , | |
| 1 | , | |||
| 0 | ||||
| ) |
| do_simple | ( | acosd | , | |
| 1 | , | |||
| 0 | ||||
| ) |
| do_simple | ( | tan | , | |
| 1 | , | |||
| 0 | ||||
| ) |
| do_simple | ( | space | , | |
| 1 | , | |||
| 1 | ||||
| ) |
| do_simple | ( | sin | , | |
| 1 | , | |||
| 0 | ||||
| ) |
| do_simple | ( | nextafter | , | |
| 2 | , | |||
| 0 | ||||
| ) |
| do_simple | ( | mod | , | |
| 2 | , | |||
| 0 | ||||
| ) |
| do_simple | ( | log | , | |
| 1 | , | |||
| 0 | ||||
| ) |
| do_simple | ( | cosh | , | |
| 1 | , | |||
| 0 | ||||
| ) |
| do_simple | ( | conjg | , | |
| 1 | , | |||
| 0 | ||||
| ) |
| do_simple | ( | atan | , | |
| 1 | , | |||
| 0 | ||||
| ) |
| do_simple | ( | acos | , | |
| 1 | , | |||
| 0 | ||||
| ) |
| do_simple_nt | ( | fraction | , | |
| 1 | , | |||
| 0 | ||||
| ) |
| FALSE TRUE TRUE TRUE TRUE TRUE FALSE do_transformational | ( | fei_cshift | , | |
| INTRN_CSHIFT | , | |||
| 3 | , | |||
| FALSE | ||||
| ) |
| FALSE TRUE TRUE TRUE TRUE TRUE do_transformational | ( | fei_pack | , | |
| INTRN_PACK | , | |||
| 3 | , | |||
| FALSE | ||||
| ) |
| FALSE TRUE TRUE TRUE TRUE do_transformational | ( | fei__maxloc | , | |
| INTRN_MAXLOC | , | |||
| 3 | , | |||
| TRUE | ||||
| ) |
| FALSE TRUE TRUE TRUE do_transformational | ( | fei_maxloc | , | |
| INTRN_MAXLOC | , | |||
| 2 | , | |||
| TRUE | ||||
| ) |
| FALSE TRUE TRUE do_transformational | ( | fei_maxval | , | |
| INTRN_MAXVAL | , | |||
| 3 | , | |||
| TRUE | ||||
| ) |
| FALSE TRUE do_transformational | ( | fei_product | , | |
| INTRN_PRODUCT | , | |||
| 3 | , | |||
| TRUE | ||||
| ) |
| FALSE do_transformational | ( | fei_all | , | |
| INTRN_ALL | , | |||
| 2 | , | |||
| TRUE | ||||
| ) |
| do_transformational | ( | fei_spread | , | |
| INTRN_SPREAD | , | |||
| 3 | , | |||
| FALSE | ||||
| ) |
| void fei_abs | ( | TYPE | type | ) |
Definition at line 532 of file cwh_intrin.cxx.
References cast_to_TY, cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_intrin_build(), cwh_stk_push(), cwh_types_scalar_TY(), cwh_types_WN_TY(), cwh_wrap_cvtl(), FALSE, i_abs, INTRN_F4C4ABS, INTRN_F8C8ABS, INTRN_FQCQABS, MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_is_complex, NULL, simple_intrinsic(), t_TY, TY_mtype(), wn, and WN_item.
Referenced by cvrt_exp_to_pdg(), fei_ieee_sign_xfer(), and fei_sign_xfer().

| void fei_adjustr | ( | TYPE | type | ) |
Definition at line 1685 of file cwh_intrin.cxx.
References cwh_stk_push(), cwh_stmt_character_icall(), INTRN_ADJUSTR, NULL, and WN_item.
Referenced by cvrt_exp_to_pdg().

| void fei_alloc | ( | void | ) |
Definition at line 1309 of file cwh_intrin.cxx.
References cwh_expr_operand(), cwh_intrin_build(), cwh_stk_push(), Heap_Allocation_Threshold, INTRN_F90_DYNAMICTEMPALLOC, INTRN_F90_HEAPTEMPALLOC, INTRN_F90_STACKTEMPALLOC, NULL, Pointer_Mtype, wn, and WN_item.
Referenced by cvrt_exp_to_pdg().

| void fei_ceiling | ( | TYPE | type | ) |
Definition at line 957 of file cwh_intrin.cxx.
References cwh_ceiling_floor(), and OPR_CEIL.
Referenced by cvrt_exp_to_pdg().

| void fei_cot | ( | TYPE | type | ) |
Definition at line 572 of file cwh_intrin.cxx.
References cwh_expr_operand(), cwh_stk_push(), fei_div(), fei_tan(), MTYPE_I4, NULL, one, wn, WN_Intconst(), and WN_item.
Referenced by cvrt_exp_to_pdg().

| void fei_count | ( | TYPE | type | ) |
Definition at line 1231 of file cwh_intrin.cxx.
References cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_intrin_wrap_value_parm(), cwh_make_typed_opcode(), cwh_stk_push(), F90_Wrap_ARREXP(), INTRN_COUNT, MTYPE_B, MTYPE_I4, MTYPE_I8, MTYPE_V, NULL, OPR_INTRINSIC_OP, OPR_NE, Pointer_Size, wn, WN_Create_Intrinsic(), WN_CreateExp2(), WN_Intconst(), WN_item, WN_rtype(), and WN_Zerocon().
Referenced by cvrt_exp_to_pdg().

| void fei_dot_product | ( | TYPE | rtype | ) |
Definition at line 1141 of file cwh_intrin.cxx.
References cast_to_TY, cwh_convert_to_ty(), cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_intrin_null_parm(), cwh_intrin_wrap_value_parm(), cwh_make_typed_opcode(), cwh_stk_push_typed(), cwh_wrap_cvtl(), INTRN_C4CONJG, INTRN_C8CONJG, INTRN_CQCONJG, INTRN_SUM, MTYPE_C4, MTYPE_C8, MTYPE_is_complex, MTYPE_V, NULL, OPR_INTRINSIC_OP, OPR_MPY, t_TY, TY_mtype(), wn, WN_Create_Intrinsic(), WN_CreateExp2(), and WN_item.
Referenced by cvrt_exp_to_pdg().

| void fei_dot_product_logical | ( | TYPE | rtype | ) |
Definition at line 1201 of file cwh_intrin.cxx.
References cast_to_TY, cwh_convert_to_ty(), cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_get_highest_type(), cwh_intrin_null_parm(), cwh_intrin_wrap_value_parm(), cwh_make_typed_opcode(), cwh_stk_push_typed(), INTRN_ANY, MTYPE_V, NULL, OPC_I4LAND, OPR_INTRINSIC_OP, t_TY, wn, WN_Create_Intrinsic(), WN_CreateExp2(), and WN_item.
Referenced by cvrt_exp_to_pdg().

| void fei_exponent | ( | TYPE | type | ) |
Definition at line 816 of file cwh_intrin.cxx.
References cast_to_TY, cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_intrin_build(), cwh_stk_push(), GET_ITAB_IOP, i_exponent, NULL, t_TY, TY_mtype(), wn, WN_item, and WN_rtype().
Referenced by cvrt_exp_to_pdg().

| void fei_exponentiate | ( | TYPE | type | ) |
Definition at line 585 of file cwh_intrin.cxx.
References cast_to_TY, cwh_convert_to_ty(), cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_get_typed_operand(), cwh_intrin_build(), cwh_stk_push(), INTRN_C4EXPEXPR, INTRN_C4I4EXPEXPR, INTRN_C4I8EXPEXPR, INTRN_C8EXPEXPR, INTRN_C8I4EXPEXPR, INTRN_C8I8EXPEXPR, INTRN_CQEXPEXPR, INTRN_CQI4EXPEXPR, INTRN_CQI8EXPEXPR, INTRN_F4EXPEXPR, INTRN_F4I4EXPEXPR, INTRN_F4I8EXPEXPR, INTRN_F8EXPEXPR, INTRN_F8I4EXPEXPR, INTRN_F8I8EXPEXPR, INTRN_FQEXPEXPR, INTRN_FQI4EXPEXPR, INTRN_FQI8EXPEXPR, INTRN_I4EXPEXPR, INTRN_I8EXPEXPR, MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, NULL, t_TY, TY_mtype(), wn, WN_item, and WN_rtype().
Referenced by cvrt_exp_to_pdg().

| void fei_floor | ( | TYPE | type | ) |
Definition at line 962 of file cwh_intrin.cxx.
References cwh_ceiling_floor(), and OPR_FLOOR.
Referenced by cvrt_exp_to_pdg().

| void fei_fpclass | ( | TYPE | type | ) |
Definition at line 1979 of file cwh_intrin.cxx.
References Be_Type_Tbl, cwh_expr_operand(), cwh_funny_fp_intrinsic(), FALSE, MTYPE_I4, NULL, SELECT_INTRINSIC, and WN_rtype().
Referenced by cvrt_exp_to_pdg().

| void fei_free | ( | void | ) |
Definition at line 1352 of file cwh_intrin.cxx.
References cwh_expr_operand(), cwh_intrin_call(), Heap_Allocation_Threshold, INTRN_F90_DYNAMICTEMPFREE, INTRN_F90_HEAPTEMPFREE, INTRN_F90_STACKTEMPFREE, NULL, Pointer_Mtype, TRUE, and val.
Referenced by cvrt_exp_to_pdg().

| void fei_ibits | ( | TYPE | type | ) |
Definition at line 1547 of file cwh_intrin.cxx.
References cast_to_TY, cwh_expr_bincalc(), cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_generate_bitmask(), cwh_stk_push(), cwh_wrap_cvtl(), len, Mtype_comparison(), NULL, OPR_BAND, t_TY, TY_mtype(), WN_item, and WN_Lshr.
Referenced by cvrt_exp_to_pdg().

| void fei_ieee_round | ( | TYPE | type | ) |
Definition at line 1693 of file cwh_intrin.cxx.
References fei_cvtop().
Referenced by cvrt_exp_to_pdg().

| void fei_ieee_sign_xfer | ( | TYPE | type | ) |
Definition at line 879 of file cwh_intrin.cxx.
References Be_Type_Tbl, cast_to_TY, cwh_expr_bincalc(), cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_stk_push(), fei_abs(), fei_sign_xfer(), MTYPE_bit_size, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_I4, MTYPE_I8, NULL, OPR_BIOR, t_TY, TY_mtype(), WN_Intconst(), WN_item, WN_Lshr, WN_LT, WN_Shl, WN_Tas(), WN_Zerocon(), and WNRTY.
Referenced by cvrt_exp_to_pdg().

| void fei_ieee_trunc | ( | TYPE | type | ) |
Definition at line 1700 of file cwh_intrin.cxx.
References cast_to_TY, cwh_convert_to_ty(), cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_intrin_build(), cwh_stk_push_typed(), cwh_wrap_cvtl(), GET_ITAB_IOP, i_ieee_int, MTYPE_FQ, NULL, t_TY, TY_mtype(), and WN_item.
Referenced by cvrt_exp_to_pdg().

| void fei_isfinite | ( | TYPE | type | ) |
Definition at line 1936 of file cwh_intrin.cxx.
References cwh_expr_operand(), cwh_funny_fp_intrinsic(), logical4_ty, NULL, SELECT_INTRINSIC, TRUE, and WN_rtype().
Referenced by cvrt_exp_to_pdg().

| void fei_isnan | ( | TYPE | type | ) |
Definition at line 1950 of file cwh_intrin.cxx.
References cwh_expr_operand(), cwh_funny_fp_intrinsic(), FALSE, logical4_ty, NULL, SELECT_INTRINSIC, and WN_rtype().
Referenced by cvrt_exp_to_pdg().

| void fei_isunordered | ( | TYPE | type | ) |
Definition at line 1964 of file cwh_intrin.cxx.
References cwh_expr_operand(), cwh_funny_fp_intrinsic(), logical4_ty, NULL, SELECT_INTRINSIC, TRUE, and WN_rtype().
Referenced by cvrt_exp_to_pdg().

Definition at line 1782 of file cwh_intrin.cxx.
References cwh_intrin_popcnt_leadz_helper(), INTRN_I1LEADZ, INTRN_I2LEADZ, INTRN_I4LEADZ, and INTRN_I8LEADZ.
Referenced by cvrt_exp_to_pdg().

| void fei_length | ( | void | ) |
Definition at line 1494 of file cwh_intrin.cxx.
References ADDR_item, Be_Type_Tbl, cwh_expr_address(), cwh_intrin_get_return_value(), cwh_intrin_make_intrinsic_symbol(), cwh_stk_push(), cwh_stmt_call_helper(), f_T_PASSED, MTYPE_I4, ST_item, wn, and WN_item.
Referenced by cvrt_exp_to_pdg().

| void fei_lock_release | ( | void | ) |
Definition at line 2259 of file cwh_intrin.cxx.
References cwh_intrin_sync_intrin(), INTRN_LOCK_RELEASE_I4, INTRN_LOCK_RELEASE_I8, and MTYPE_V.
Referenced by cvrt_exp_to_pdg().

| void fei_logb | ( | TYPE | type | ) |
Definition at line 1885 of file cwh_intrin.cxx.
References Be_Type_Tbl, cast_to_TY, cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_funny_fp_intrinsic(), cwh_get_typed_operand(), cwh_stk_push_typed(), cwh_wrap_cvtl(), MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_is_integral, NULL, OPC_I4MIN, SELECT_INTRINSIC, t_TY, TRUE, TY_mtype(), wn, WN_COPY_Tree(), WN_CreateExp2(), WN_EQ, WN_Intconst(), WN_item, WN_rtype(), WN_Select, and WN_Zerocon().
Referenced by cvrt_exp_to_pdg().

| void fei_malloc | ( | void | ) |
Definition at line 1281 of file cwh_intrin.cxx.
References Be_Type_Tbl, current_srcpos, cwh_expr_operand(), cwh_intrin_call(), cwh_intrin_get_return_value(), cwh_stk_push(), cwh_stmt_return_scalar(), FALSE, INTRN_U4I4MALLOC, INTRN_U8I8MALLOC, NULL, Pointer_Mtype, Pointer_Size, TRUE, USRCPOS_linenum, wn, WN_item, and WN_Set_Call_Does_Mem_Alloc.
Referenced by cvrt_exp_to_pdg().

| FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE void fei_matmul | ( | TYPE | rtype | ) |
Definition at line 1104 of file cwh_intrin.cxx.
References cast_to_TY, cwh_convert_to_ty(), cwh_expr_operand(), cwh_intrin_wrap_value_parm(), cwh_stk_push_typed(), cwh_wrap_cvtl(), F90_Wrap_ARREXP(), INT, INTRN_MATMUL, MTYPE_B, MTYPE_V, NULL, OPCODE_make_op(), OPR_INTRINSIC_OP, t_TY, TY_is_logical(), TY_mtype(), wn, WN_Create_Intrinsic(), and WN_item.
Referenced by cvrt_exp_to_pdg().

| void fei_mfree | ( | void | ) |
Definition at line 1336 of file cwh_intrin.cxx.
References cwh_expr_operand(), cwh_intrin_call(), INTRN_U4FREE, INTRN_U8FREE, MTYPE_V, NULL, Pointer_Size, TRUE, val, and WN_Set_Call_Does_Mem_Free.
Referenced by cvrt_exp_to_pdg().
