[1/2] libdw: Use INTUSE with dwarf_get_units

Message ID 20231207013504.40300-2-amerey@redhat.com
State Committed
Delegated to: Aaron Merey
Headers
Series dwarf_getaranges: Build aranges list from CUs |

Commit Message

Aaron Merey Dec. 7, 2023, 1:35 a.m. UTC
  Add INTDECL for dwarf_get_units and call dwarf_get_units with INTUSE.

Signed-off-by: Aaron Merey <amerey@redhat.com>
---
 libdw/dwarf_get_units.c       |  1 +
 libdw/dwarf_next_lines.c      |  8 +--
 libdw/libdwP.h                | 91 +++++++++++++++++------------------
 libdw/libdw_find_split_unit.c |  4 +-
 4 files changed, 52 insertions(+), 52 deletions(-)
  

Comments

Mark Wielaard Dec. 21, 2023, 11:56 p.m. UTC | #1
Hi Aaron,

On Wed, Dec 06, 2023 at 08:35:03PM -0500, Aaron Merey wrote:
> Add INTDECL for dwarf_get_units and call dwarf_get_units with INTUSE.

This is obviously OK. Although it is a bit of a micro-optimization.

Thanks,

Mark
  
Aaron Merey Dec. 22, 2023, 9:02 p.m. UTC | #2
On Thu, Dec 21, 2023 at 6:56 PM Mark Wielaard <mark@klomp.org> wrote:
>
> On Wed, Dec 06, 2023 at 08:35:03PM -0500, Aaron Merey wrote:
> > Add INTDECL for dwarf_get_units and call dwarf_get_units with INTUSE.
>
> This is obviously OK. Although it is a bit of a micro-optimization.

Thanks, pushed as commit c1058da5a

Aaron
  

Patch

diff --git a/libdw/dwarf_get_units.c b/libdw/dwarf_get_units.c
index 6215bf4b..407ed2ba 100644
--- a/libdw/dwarf_get_units.c
+++ b/libdw/dwarf_get_units.c
@@ -129,3 +129,4 @@  dwarf_get_units (Dwarf *dwarf, Dwarf_CU *cu, Dwarf_CU **next_cu,
 
   return 0;
 }
+INTDEF(dwarf_get_units)
diff --git a/libdw/dwarf_next_lines.c b/libdw/dwarf_next_lines.c
index 9b76b47e..74854ecd 100644
--- a/libdw/dwarf_next_lines.c
+++ b/libdw/dwarf_next_lines.c
@@ -99,8 +99,8 @@  dwarf_next_lines (Dwarf *dbg, Dwarf_Off off,
       Dwarf_CU *given_cu = *cu;
       Dwarf_CU *next_cu = given_cu;
       bool found = false;
-      while (dwarf_get_units (dbg, next_cu, &next_cu, NULL, NULL,
-			      &cudie, NULL) == 0)
+      while (INTUSE(dwarf_get_units) (dbg, next_cu, &next_cu, NULL, NULL,
+				      &cudie, NULL) == 0)
 	{
 	  if (dwarf_hasattr (&cudie, DW_AT_stmt_list))
 	    {
@@ -131,8 +131,8 @@  dwarf_next_lines (Dwarf *dbg, Dwarf_Off off,
 	     tables. Need to do a linear search (but stop at the given
 	     CU, since we already searched those.  */
 	  next_cu = NULL;
-	  while (dwarf_get_units (dbg, next_cu, &next_cu, NULL, NULL,
-				  &cudie, NULL) == 0
+	  while (INTUSE(dwarf_get_units) (dbg, next_cu, &next_cu, NULL, NULL,
+					  &cudie, NULL) == 0
 		 && next_cu != given_cu)
 	    {
 	      Dwarf_Attribute attr;
diff --git a/libdw/libdwP.h b/libdw/libdwP.h
index aef42267..5aca9082 100644
--- a/libdw/libdwP.h
+++ b/libdw/libdwP.h
@@ -414,6 +414,49 @@  struct Dwarf_CU
   void *endp;
 };
 
+/* Aliases to avoid PLTs.  */
+INTDECL (dwarf_aggregate_size)
+INTDECL (dwarf_attr)
+INTDECL (dwarf_attr_integrate)
+INTDECL (dwarf_begin)
+INTDECL (dwarf_begin_elf)
+INTDECL (dwarf_child)
+INTDECL (dwarf_default_lower_bound)
+INTDECL (dwarf_dieoffset)
+INTDECL (dwarf_diename)
+INTDECL (dwarf_end)
+INTDECL (dwarf_entrypc)
+INTDECL (dwarf_errmsg)
+INTDECL (dwarf_formaddr)
+INTDECL (dwarf_formblock)
+INTDECL (dwarf_formref_die)
+INTDECL (dwarf_formsdata)
+INTDECL (dwarf_formstring)
+INTDECL (dwarf_formudata)
+INTDECL (dwarf_getabbrevattr_data)
+INTDECL (dwarf_getalt)
+INTDECL (dwarf_getarange_addr)
+INTDECL (dwarf_getarangeinfo)
+INTDECL (dwarf_getaranges)
+INTDECL (dwarf_getlocation_die)
+INTDECL (dwarf_getsrcfiles)
+INTDECL (dwarf_getsrclines)
+INTDECL (dwarf_get_units)
+INTDECL (dwarf_hasattr)
+INTDECL (dwarf_haschildren)
+INTDECL (dwarf_haspc)
+INTDECL (dwarf_highpc)
+INTDECL (dwarf_lowpc)
+INTDECL (dwarf_nextcu)
+INTDECL (dwarf_next_unit)
+INTDECL (dwarf_offdie)
+INTDECL (dwarf_peel_type)
+INTDECL (dwarf_ranges)
+INTDECL (dwarf_setalt)
+INTDECL (dwarf_siblingof)
+INTDECL (dwarf_srclang)
+INTDECL (dwarf_tag)
+
 #define ISV4TU(cu) ((cu)->version == 4 && (cu)->sec_idx == IDX_debug_types)
 
 /* Compute the offset of a CU's first DIE from the CU offset.
@@ -1061,8 +1104,8 @@  str_offsets_base_off (Dwarf *dbg, Dwarf_CU *cu)
   if (cu == NULL && dbg != NULL)
     {
       Dwarf_CU *first_cu;
-      if (dwarf_get_units (dbg, NULL, &first_cu,
-			   NULL, NULL, NULL, NULL) == 0)
+      if (INTUSE(dwarf_get_units) (dbg, NULL, &first_cu,
+				   NULL, NULL, NULL, NULL) == 0)
 	cu = first_cu;
     }
 
@@ -1379,48 +1422,4 @@  void __libdw_set_debugdir (Dwarf *dbg);
 char * __libdw_filepath (const char *debugdir, const char *dir,
 			 const char *file)
   internal_function;
-
-
-/* Aliases to avoid PLTs.  */
-INTDECL (dwarf_aggregate_size)
-INTDECL (dwarf_attr)
-INTDECL (dwarf_attr_integrate)
-INTDECL (dwarf_begin)
-INTDECL (dwarf_begin_elf)
-INTDECL (dwarf_child)
-INTDECL (dwarf_default_lower_bound)
-INTDECL (dwarf_dieoffset)
-INTDECL (dwarf_diename)
-INTDECL (dwarf_end)
-INTDECL (dwarf_entrypc)
-INTDECL (dwarf_errmsg)
-INTDECL (dwarf_formaddr)
-INTDECL (dwarf_formblock)
-INTDECL (dwarf_formref_die)
-INTDECL (dwarf_formsdata)
-INTDECL (dwarf_formstring)
-INTDECL (dwarf_formudata)
-INTDECL (dwarf_getabbrevattr_data)
-INTDECL (dwarf_getalt)
-INTDECL (dwarf_getarange_addr)
-INTDECL (dwarf_getarangeinfo)
-INTDECL (dwarf_getaranges)
-INTDECL (dwarf_getlocation_die)
-INTDECL (dwarf_getsrcfiles)
-INTDECL (dwarf_getsrclines)
-INTDECL (dwarf_hasattr)
-INTDECL (dwarf_haschildren)
-INTDECL (dwarf_haspc)
-INTDECL (dwarf_highpc)
-INTDECL (dwarf_lowpc)
-INTDECL (dwarf_nextcu)
-INTDECL (dwarf_next_unit)
-INTDECL (dwarf_offdie)
-INTDECL (dwarf_peel_type)
-INTDECL (dwarf_ranges)
-INTDECL (dwarf_setalt)
-INTDECL (dwarf_siblingof)
-INTDECL (dwarf_srclang)
-INTDECL (dwarf_tag)
-
 #endif	/* libdwP.h */
diff --git a/libdw/libdw_find_split_unit.c b/libdw/libdw_find_split_unit.c
index 533f8072..34e29e9d 100644
--- a/libdw/libdw_find_split_unit.c
+++ b/libdw/libdw_find_split_unit.c
@@ -51,8 +51,8 @@  try_split_file (Dwarf_CU *cu, const char *dwo_path)
       if (split_dwarf != NULL)
 	{
 	  Dwarf_CU *split = NULL;
-	  while (dwarf_get_units (split_dwarf, split, &split,
-				  NULL, NULL, NULL, NULL) == 0)
+	  while (INTUSE(dwarf_get_units) (split_dwarf, split, &split,
+					  NULL, NULL, NULL, NULL) == 0)
 	    {
 	      if (split->unit_type == DW_UT_split_compile
 		  && cu->unit_id8 == split->unit_id8)