cwh_intrin.cxx File Reference

#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"
Include dependency graph for cwh_intrin.cxx:

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 WNcwh_intrin_get_return_value (TYPE_ID rtype, char *name)
static t_enum t_from_mtype (TYPE_ID ty)
static WNcwh_intrin_null_parm (void)
STcwh_intrin_make_intrinsic_symbol (char *name, TYPE_ID bt)
WNcwh_intrin_wrap_value_parm (WN *w)
WNcwh_intrin_wrap_ref_parm (WN *wa, TY_IDX ty)
WNcwh_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)
WNcwh_intrin_call (INTRINSIC intr, INT16 numargs, WN **k, WN **sz, BOOL *v, TYPE_ID bt)
WNcwh_intrin_op (INTRINSIC intr, INT16 numargs, WN **k, WN **sz, BOOL *v, TYPE_ID bt)
static WNcwh_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 STranget_st = NULL
static STranset_st = NULL
static STrtc_st = NULL
static STunit_st = NULL
static STlength_st = NULL
static STgetpos_st = NULL
static STomp_set_lock_st = NULL
static STomp_unset_lock_st = NULL
static STomp_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

Define Documentation

#define do_char_intrin ( name,
intr,
args   )     void name(TYPE type) {cwh_char_intrin(intr,args);}

Definition at line 1656 of file cwh_intrin.cxx.

#define do_char_intrin_nt ( name,
intr,
args   )     void name(void) {cwh_char_intrin(intr,args);}

Definition at line 1657 of file cwh_intrin.cxx.

#define do_simple ( name,
numargs,
numpop   ) 
Value:
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.

#define do_simple_nt ( name,
numargs,
numpop   ) 
Value:
void fei_##name(void) \
{simple_intrinsic_nt(i_##name,numargs,numpop);}

Definition at line 432 of file cwh_intrin.cxx.

#define do_transformational ( name,
intrn,
numargs,
is_numeric   ) 
Value:
void name(TYPE rtype) \
   {cwh_do_tranformational(intrn,numargs,rtype,is_numeric,FALSE);}

Definition at line 1071 of file cwh_intrin.cxx.

#define do_transformational_cvt ( name,
intrn,
numargs,
is_numeric   ) 
Value:
void name(TYPE rtype) \
   {cwh_do_tranformational(intrn,numargs,rtype,is_numeric,TRUE);}

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   ) 
Value:
((t==MTYPE_F4) ? INTRN_F4##f : \
                               ((t==MTYPE_F8) ? INTRN_F8##f : INTRN_FQ##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   ) 
Value:
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.


Function Documentation

static void cwh_ceiling_floor ( TYPE  type,
OPERATOR  opr 
) [static]

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().

Here is the call graph for this function:

static void cwh_char_intrin ( INTRINSIC  intr,
INT  numargs 
) [static]
static void cwh_do_tranformational ( INTRINSIC  intrn,
INT  numargs,
TYPE  rtype,
BOOL  is_numeric,
BOOL  cvt_to_rtype 
) [static]
static void cwh_funny_fp_intrinsic ( INTRINSIC  intr,
INT  numargs,
WN **  args,
TY_IDX  ty,
BOOL  cvtf4,
WN ae 
) [static]
static WN* cwh_intrin_build ( WN **  k,
INTRINSIC  intr,
TYPE_ID  bt,
INT  numargs 
) [static]
WN* cwh_intrin_call ( INTRINSIC  intr,
INT16  numargs,
WN **  k,
WN **  sz,
BOOL v,
TYPE_ID  bt 
)
static WN* cwh_intrin_get_return_value ( TYPE_ID  rtype,
char *  name 
) [static]
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.

Here is the call graph for this function:

static void cwh_intrin_ieee_intrin_helper ( INTRINSIC  intrin,
BOOL  issue_warning,
char *  iname 
) [static]
ST* cwh_intrin_make_intrinsic_symbol ( char *  name,
TYPE_ID  bt 
)
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().

Here is the call graph for this function:

WN* cwh_intrin_op ( INTRINSIC  intr,
INT16  numargs,
WN **  k,
WN **  sz,
BOOL v,
TYPE_ID  bt 
)
static void cwh_intrin_popcnt_leadz_helper ( INTRINSIC  i1,
INTRINSIC  i2,
INTRINSIC  i4,
INTRINSIC  i8,
TYPE  rtype,
TYPE  arg 
) [static]
static void cwh_intrin_sync_intrin ( INTRINSIC  i4intrin,
INTRINSIC  i8intrin,
TYPE_ID  rtype,
INT  num_args 
) [static]
WN* cwh_intrin_wrap_char_parm ( WN wa,
WN sz 
)

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().

Here is the call graph for this function:

WN* cwh_intrin_wrap_ref_parm ( WN wa,
TY_IDX  ty 
)
WN* cwh_intrin_wrap_value_parm ( WN w  ) 
void cwh_whirl_simplfier_control ( BOOL  onoff  ) 

Definition at line 2389 of file cwh_intrin.cxx.

References WN_Simplifier_Enable().

Here is the call graph for this function:

do_char_intrin ( fei_scan  ,
INTRN_SCAN  ,
 
)
do_char_intrin_nt ( fei_len  ,
INTRN_I4CLEN  ,
 
)
Type Constraints

Definition at line 1663 of file cwh_intrin.cxx.

References cwh_stk_push(), cwh_stmt_character_icall(), INTRN_ADJUSTL, NULL, and WN_item.

Here is the call graph for this function:

do_char_intrin_nt ( fei_index  ,
INTRN_F90INDEX  ,
 
)
Type Constraints
do_simple ( tand  ,
,
 
)
do_simple ( cosd  ,
,
 
)
do_simple ( atand  ,
,
 
)
do_simple ( acosd  ,
,
 
)
do_simple ( tan  ,
,
 
)
do_simple ( space  ,
,
 
)
do_simple ( sin  ,
,
 
)
do_simple ( nextafter  ,
,
 
)
do_simple ( mod  ,
,
 
)
do_simple ( log  ,
,
 
)
do_simple ( cosh  ,
,
 
)
do_simple ( conjg  ,
,
 
)
do_simple ( atan  ,
,
 
)
do_simple ( acos  ,
,
 
)
do_simple_nt ( fraction  ,
,
 
)
FALSE TRUE TRUE TRUE TRUE TRUE FALSE do_transformational ( fei_cshift  ,
INTRN_CSHIFT  ,
,
FALSE   
)
Type Constraints
FALSE TRUE TRUE TRUE TRUE TRUE do_transformational ( fei_pack  ,
INTRN_PACK  ,
,
FALSE   
)
Type Constraints
FALSE TRUE TRUE TRUE TRUE do_transformational ( fei__maxloc  ,
INTRN_MAXLOC  ,
,
TRUE   
)
Type Constraints
FALSE TRUE TRUE TRUE do_transformational ( fei_maxloc  ,
INTRN_MAXLOC  ,
,
TRUE   
)
Type Constraints
FALSE TRUE TRUE do_transformational ( fei_maxval  ,
INTRN_MAXVAL  ,
,
TRUE   
)
Type Constraints
FALSE TRUE do_transformational ( fei_product  ,
INTRN_PRODUCT  ,
,
TRUE   
)
Type Constraints
FALSE do_transformational ( fei_all  ,
INTRN_ALL  ,
,
TRUE   
)
Type Constraints
do_transformational ( fei_spread  ,
INTRN_SPREAD  ,
,
FALSE   
)
void fei_abs ( TYPE  type  ) 
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().

Here is the call graph for this function:

void fei_alloc ( void   ) 
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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

void fei_count ( TYPE  type  ) 
void fei_dot_product ( TYPE  rtype  ) 
void fei_dot_product_logical ( TYPE  rtype  ) 
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().

Here is the call graph for this function:

void fei_exponentiate ( TYPE  type  ) 
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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

void fei_free ( void   ) 
void fei_ibits ( TYPE  type  ) 
void fei_ieee_round ( TYPE  type  ) 

Definition at line 1693 of file cwh_intrin.cxx.

References fei_cvtop().

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_ieee_sign_xfer ( TYPE  type  ) 
void fei_ieee_trunc ( TYPE  type  ) 
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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

void fei_leadz ( TYPE  type,
TYPE  arg 
)

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().

Here is the call graph for this function:

void fei_length ( void   ) 
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().

Here is the call graph for this function:

void fei_logb ( TYPE  type  ) 
void fei_malloc ( void   ) 
FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE void fei_matmul ( TYPE  rtype  ) 
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().

Here is the call graph for this function: