[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