public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r12-1854] Enable BTF generation in the BPF backend
@ 2021-06-28 17:29 Jose E. Marchesi
  0 siblings, 0 replies; only message in thread
From: Jose E. Marchesi @ 2021-06-28 17:29 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:d5cf2b5db325fd5c053ca7bc8d6a54a06cd71124

commit r12-1854-gd5cf2b5db325fd5c053ca7bc8d6a54a06cd71124
Author: Indu Bhagat <indu.bhagat@oracle.com>
Date:   Thu May 20 11:21:39 2021 -0700

    Enable BTF generation in the BPF backend
    
    This patch changes the BPF GCC backend in order to use the DWARF debug
    hooks and therefore enables the user to generate BTF debugging
    information with -gbtf.  Generating BTF is crucial when compiling BPF
    programs, since the CO-RE (compile-once, run-everwhere) mechanism
    used by the kernel BPF loader relies on it.
    
    Note that since in eBPF it is not possible to unwind frames due to the
    restrictive nature of the target architecture, we are disabling the
    generation of CFA in this target.
    
    2021-06-28  David Faust <david.faust@oracle.com>
    
            * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
            frame related.
            (bpf_expand_epilogue): Likewise.
            * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
            Do not define DBX_DEBUGGING_INFO.

Diff:
---
 gcc/config/bpf/bpf.c |  4 ----
 gcc/config/bpf/bpf.h | 12 ++----------
 2 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/gcc/config/bpf/bpf.c b/gcc/config/bpf/bpf.c
index 126d4a2798d..e635f9edb40 100644
--- a/gcc/config/bpf/bpf.c
+++ b/gcc/config/bpf/bpf.c
@@ -349,7 +349,6 @@ bpf_expand_prologue (void)
 						      hard_frame_pointer_rtx,
 						      fp_offset - 8));
 		  insn = emit_move_insn (mem, gen_rtx_REG (DImode, regno));
-		  RTX_FRAME_RELATED_P (insn) = 1;
 		  fp_offset -= 8;
 		}
 	    }
@@ -364,7 +363,6 @@ bpf_expand_prologue (void)
     {
       insn = emit_move_insn (stack_pointer_rtx,
 			     hard_frame_pointer_rtx);
-      RTX_FRAME_RELATED_P (insn) = 1;
 
       if (size > 0)
 	{
@@ -372,7 +370,6 @@ bpf_expand_prologue (void)
 					 gen_rtx_PLUS (Pmode,
 						       stack_pointer_rtx,
 						       GEN_INT (-size))));
-	  RTX_FRAME_RELATED_P (insn) = 1;
 	}
     }
 }
@@ -412,7 +409,6 @@ bpf_expand_epilogue (void)
 						      hard_frame_pointer_rtx,
 						      fp_offset - 8));
 		  insn = emit_move_insn (gen_rtx_REG (DImode, regno), mem);
-		  RTX_FRAME_RELATED_P (insn) = 1;
 		  fp_offset -= 8;
 		}
 	    }
diff --git a/gcc/config/bpf/bpf.h b/gcc/config/bpf/bpf.h
index 80195cea5b2..82be0c3e190 100644
--- a/gcc/config/bpf/bpf.h
+++ b/gcc/config/bpf/bpf.h
@@ -235,17 +235,9 @@ enum reg_class
 
 /**** Debugging Info ****/
 
-/* We cannot support DWARF2 because of the limitations of eBPF.  */
+/* In eBPF it is not possible to unwind frames. Disable CFA.  */
 
-/* elfos.h insists in using DWARF.  Undo that here.  */
-#ifdef DWARF2_DEBUGGING_INFO
-# undef DWARF2_DEBUGGING_INFO
-#endif
-#ifdef PREFERRED_DEBUGGING_TYPE
-# undef PREFERRED_DEBUGGING_TYPE
-#endif
-
-#define DBX_DEBUGGING_INFO
+#define DWARF2_FRAME_INFO 0
 
 /**** Stack Layout and Calling Conventions.  */


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-06-28 17:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-28 17:29 [gcc r12-1854] Enable BTF generation in the BPF backend Jose E. Marchesi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).