[DTrace-devel] [PATCH] Remove obsolete (PCB) pcb_dret and (DIFO) dtdo_rtype
Kris Van Hees
kris.van.hees at oracle.com
Mon Sep 14 12:52:01 PDT 2020
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
include/dtrace/difo.h | 1 -
libdtrace/dt_as.c | 7 ++-----
libdtrace/dt_cg.c | 9 ++-------
libdtrace/dt_dof.c | 2 +-
libdtrace/dt_pcb.h | 1 -
5 files changed, 5 insertions(+), 15 deletions(-)
diff --git a/include/dtrace/difo.h b/include/dtrace/difo.h
index 39894869..4190bc93 100644
--- a/include/dtrace/difo.h
+++ b/include/dtrace/difo.h
@@ -39,7 +39,6 @@ typedef struct dtrace_difo {
uint_t dtdo_len; /* length of instruction buffer */
uint_t dtdo_strlen; /* length of string table */
uint_t dtdo_varlen; /* length of variable table */
- dtrace_diftype_t dtdo_rtype; /* return type */
uint_t dtdo_reclen; /* length of trace record */
uint_t dtdo_refcnt; /* owner reference count */
uint_t dtdo_destructive; /* invokes destructive subroutines */
diff --git a/libdtrace/dt_as.c b/libdtrace/dt_as.c
index 24353a43..3169cf66 100644
--- a/libdtrace/dt_as.c
+++ b/libdtrace/dt_as.c
@@ -571,13 +571,10 @@ fail:
dp->dtdo_strtab = NULL;
/*
- * Fill in the DIFO return type from the type associated with the
- * node saved in pcb_dret, and then clear pcb_difo and pcb_dret
- * now that the assembler has completed successfully.
+ *
+ * Clear pcb_difo * now that the assembler has completed successfully.
*/
- dt_node_diftype(dtp, pcb->pcb_dret, &dp->dtdo_rtype);
pcb->pcb_difo = NULL;
- pcb->pcb_dret = NULL;
/*
* Fill in the trace data record length. This is used to determine the
diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
index 13ae7e2a..642e746c 100644
--- a/libdtrace/dt_cg.c
+++ b/libdtrace/dt_cg.c
@@ -3123,9 +3123,6 @@ dt_cg(dt_pcb_t *pcb, dt_node_t *dnp)
dt_irlist_create(&pcb->pcb_ir);
pcb->pcb_exitlbl = dt_irlist_label(&pcb->pcb_ir);
- assert(pcb->pcb_dret == NULL);
- pcb->pcb_dret = dnp;
-
pcb->pcb_bufoff = 0;
if (dt_node_is_dynamic(dnp))
@@ -3147,8 +3144,6 @@ dt_cg(dt_pcb_t *pcb, dt_node_t *dnp)
dt_cg_prologue(pcb, dnp->dn_pred);
for (act = dnp->dn_acts; act != NULL; act = act->dn_list) {
- pcb->pcb_dret = act->dn_expr;
-
if (act->dn_kind == DT_NODE_DFUNC) {
const dt_cg_actdesc_t *actdp;
dt_ident_t *idp;
@@ -3161,9 +3156,9 @@ dt_cg(dt_pcb_t *pcb, dt_node_t *dnp)
} else {
dt_cg_node(act->dn_expr, &pcb->pcb_ir,
pcb->pcb_regs);
- assert (pcb->pcb_dret->dn_reg != -1);
+ assert (act->dn_expr->dn_reg != -1);
dt_regset_free(pcb->pcb_regs,
- pcb->pcb_dret->dn_reg);
+ act->dn_expr->dn_reg);
}
}
diff --git a/libdtrace/dt_dof.c b/libdtrace/dt_dof.c
index 0b8ad9de..b0962b55 100644
--- a/libdtrace/dt_dof.c
+++ b/libdtrace/dt_dof.c
@@ -251,7 +251,7 @@ dof_add_difo(dt_dof_t *ddo, const dtrace_difo_t *dp)
*/
assert(nsecs <= sizeof (dsecs) / sizeof (dsecs[0]));
dofd = alloca(sizeof (dtrace_diftype_t) + sizeof (dsecs));
- memcpy(&dofd->dofd_rtype, &dp->dtdo_rtype, sizeof (dtrace_diftype_t));
+ memset(&dofd->dofd_rtype, 0, sizeof (dtrace_diftype_t));
memcpy(&dofd->dofd_links, dsecs, sizeof (dof_secidx_t) * nsecs);
hdrsec = dof_add_lsect(ddo, dofd, DOF_SECT_DIFOHDR,
diff --git a/libdtrace/dt_pcb.h b/libdtrace/dt_pcb.h
index e19c61fc..cc39a0f3 100644
--- a/libdtrace/dt_pcb.h
+++ b/libdtrace/dt_pcb.h
@@ -53,7 +53,6 @@ typedef struct dt_pcb {
dtrace_datadesc_t *pcb_ddesc; /* data record description */
int pcb_maxrecs; /* alloc'd number of data record descriptions */
dtrace_attribute_t pcb_amin; /* stability minimum for compilation */
- dt_node_t *pcb_dret; /* node containing return type for assembler */
dtrace_difo_t *pcb_difo; /* intermediate DIF object made by assembler */
dtrace_prog_t *pcb_prog; /* intermediate program made by compiler */
dtrace_stmtdesc_t *pcb_stmt; /* intermediate stmt made by compiler */
--
2.28.0
More information about the DTrace-devel
mailing list