[DTrace-devel] [PATCH 08/14] Replace idp with fnp for function calls

Kris Van Hees kris.van.hees at oracle.com
Tue May 23 05:03:46 UTC 2023


On Mon, May 01, 2023 at 11:47:16PM -0400, eugene.loh--- via DTrace-devel wrote:
> From: Eugene Loh <eugene.loh at oracle.com>
> 
> Both dt_cg_load_var() and dt_cg_store_var() use "idp" to refer
> to a variable id pointer and then reuse this variable to point
> to a function.  The code is clearer if a new variable name is
> used instead of reusing an old name.
> 
> Signed-off-by: Eugene Loh <eugene.loh at oracle.com>

Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>

> ---
>  libdtrace/dt_cg.c | 32 +++++++++++++++++---------------
>  1 file changed, 17 insertions(+), 15 deletions(-)
> 
> diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
> index 37237dec..bcc64768 100644
> --- a/libdtrace/dt_cg.c
> +++ b/libdtrace/dt_cg.c
> @@ -2508,16 +2508,17 @@ static void
>  dt_cg_load_var(dt_node_t *dst, dt_irlist_t *dlp, dt_regset_t *drp)
>  {
>  	dt_ident_t	*idp = dt_ident_resolve(dst->dn_ident);
> +	dt_ident_t	*fnp;
>  
>  	idp->di_flags |= DT_IDFLG_DIFR;
>  
>  	if (dst->dn_ident->di_kind == DT_IDENT_ARRAY) {
> -		dt_ident_t	*idp = dt_dlib_get_func(yypcb->pcb_hdl, "dt_get_assoc");
>  		uint_t		varid;
>  
> +		fnp = dt_dlib_get_func(yypcb->pcb_hdl, "dt_get_assoc");
>  		TRACE_REGSET("    assoc_op: Begin");
>  
> -		assert(idp != NULL);
> +		assert(fnp != NULL);
>  		assert(dst->dn_kind == DT_NODE_VAR);
>  		assert(!(dst->dn_ident->di_flags & DT_IDFLG_LOCAL));
>  		assert(dst->dn_args != NULL);
> @@ -2539,7 +2540,7 @@ dt_cg_load_var(dt_node_t *dst, dt_irlist_t *dlp, dt_regset_t *drp)
>  		emit(dlp,  BPF_MOV_IMM(BPF_REG_4, 0));
>  		dt_cg_zerosptr(BPF_REG_5, dlp, drp);
>  		dt_regset_xalloc(drp, BPF_REG_0);
> -		emite(dlp, BPF_CALL_FUNC(idp->di_id), idp);
> +		emite(dlp, BPF_CALL_FUNC(fnp->di_id), fnp);
>  		dt_regset_free_args(drp);
>  
>  		if (dst->dn_flags & DT_NF_REF) {
> @@ -2573,8 +2574,8 @@ dt_cg_load_var(dt_node_t *dst, dt_irlist_t *dlp, dt_regset_t *drp)
>  	if (idp->di_flags & DT_IDFLG_TLS) {	/* TLS var */
>  		uint_t	varid = idp->di_id - DIF_VAR_OTHER_UBASE;
>  
> -		idp = dt_dlib_get_func(yypcb->pcb_hdl, "dt_get_tvar");
> -		assert(idp != NULL);
> +		fnp = dt_dlib_get_func(yypcb->pcb_hdl, "dt_get_tvar");
> +		assert(fnp != NULL);
>  
>  		if ((dst->dn_reg = dt_regset_alloc(drp)) == -1)
>  			longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
> @@ -2586,7 +2587,7 @@ dt_cg_load_var(dt_node_t *dst, dt_irlist_t *dlp, dt_regset_t *drp)
>  		emit(dlp,  BPF_MOV_IMM(BPF_REG_3, 0));
>  		dt_cg_zerosptr(BPF_REG_4, dlp, drp);
>  		dt_regset_xalloc(drp, BPF_REG_0);
> -		emite(dlp, BPF_CALL_FUNC(idp->di_id), idp);
> +		emite(dlp, BPF_CALL_FUNC(fnp->di_id), fnp);
>  		dt_regset_free_args(drp);
>  
>  		if (dst->dn_flags & DT_NF_REF) {
> @@ -2652,10 +2653,10 @@ dt_cg_load_var(dt_node_t *dst, dt_irlist_t *dlp, dt_regset_t *drp)
>  	emit(dlp, BPF_LOAD(BPF_DW, BPF_REG_1, BPF_REG_FP, DT_STK_DCTX));
>  	emit(dlp, BPF_MOV_IMM(BPF_REG_2, idp->di_id));
>  	emit(dlp, BPF_MOV_IMM(BPF_REG_3, 0));
> -	idp = dt_dlib_get_func(yypcb->pcb_hdl, "dt_get_bvar");
> -	assert(idp != NULL);
> +	fnp = dt_dlib_get_func(yypcb->pcb_hdl, "dt_get_bvar");
> +	assert(fnp != NULL);
>  	dt_regset_xalloc(drp, BPF_REG_0);
> -	emite(dlp, BPF_CALL_FUNC(idp->di_id), idp);
> +	emite(dlp, BPF_CALL_FUNC(fnp->di_id), fnp);
>  	dt_regset_free_args(drp);
>  
>  	dt_cg_check_fault(yypcb);
> @@ -3183,6 +3184,7 @@ dt_cg_store_var(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp,
>  	uint_t	varid, lbl_done;
>  	int	reg;
>  	size_t	size;
> +	dt_ident_t *fnp;
>  
>  	idp->di_flags |= DT_IDFLG_DIFW;
>  
> @@ -3207,8 +3209,8 @@ dt_cg_store_var(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp,
>  
>  		varid = idp->di_id - DIF_VAR_OTHER_UBASE;
>  		size = idp->di_size;
> -		idp = dt_dlib_get_func(yypcb->pcb_hdl, "dt_get_assoc");
> -		assert(idp != NULL);
> +		fnp = dt_dlib_get_func(yypcb->pcb_hdl, "dt_get_assoc");
> +		assert(fnp != NULL);
>  
>  		if (dt_regset_xalloc_args(drp) == -1)
>  			longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
> @@ -3220,7 +3222,7 @@ dt_cg_store_var(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp,
>  		emit(dlp,  BPF_MOV_REG(BPF_REG_4, dnp->dn_reg));
>  		dt_cg_zerosptr(BPF_REG_5, dlp, drp);
>  		dt_regset_xalloc(drp, BPF_REG_0);
> -		emite(dlp, BPF_CALL_FUNC(idp->di_id), idp);
> +		emite(dlp, BPF_CALL_FUNC(fnp->di_id), fnp);
>  		dt_regset_free_args(drp);
>  		lbl_done = dt_irlist_label(dlp);
>  		emit(dlp,  BPF_BRANCH_IMM(BPF_JEQ, dnp->dn_reg, 0, lbl_done));
> @@ -3267,8 +3269,8 @@ dt_cg_store_var(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp,
>  		varid = idp->di_id - DIF_VAR_OTHER_UBASE;
>  		size = idp->di_size;
>  
> -		idp = dt_dlib_get_func(yypcb->pcb_hdl, "dt_get_tvar");
> -		assert(idp != NULL);
> +		fnp = dt_dlib_get_func(yypcb->pcb_hdl, "dt_get_tvar");
> +		assert(fnp != NULL);
>  
>  		if (dt_regset_xalloc_args(drp) == -1)
>  			longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
> @@ -3278,7 +3280,7 @@ dt_cg_store_var(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp,
>  		emit(dlp,  BPF_MOV_REG(BPF_REG_3, dnp->dn_reg));
>  		dt_cg_zerosptr(BPF_REG_4, dlp, drp);
>  		dt_regset_xalloc(drp, BPF_REG_0);
> -		emite(dlp, BPF_CALL_FUNC(idp->di_id), idp);
> +		emite(dlp, BPF_CALL_FUNC(fnp->di_id), fnp);
>  		dt_regset_free_args(drp);
>  		lbl_done = dt_irlist_label(dlp);
>  		emit(dlp,  BPF_BRANCH_IMM(BPF_JEQ, dnp->dn_reg, 0, lbl_done));
> -- 
> 2.18.4
> 
> 
> _______________________________________________
> DTrace-devel mailing list
> DTrace-devel at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/dtrace-devel



More information about the DTrace-devel mailing list