[DTrace-devel] [PATCH 08/14] Replace idp with fnp for function calls
eugene.loh at oracle.com
eugene.loh at oracle.com
Tue May 2 03:47:16 UTC 2023
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>
---
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
More information about the DTrace-devel
mailing list