David Faust d3f586ec50 ctf, btf: restructure CTF/BTF emission
This commit makes some structural changes to the CTF/BTF debug info
emission.  In particular:

 a) CTF is new always fully generated and emitted before any
    BTF-related procedures are run.  This means that BTF-related
    functions can change, even irreversibly, the shared in-memory
    representation used by the two formats without issue.

 b) BTF generation has fewer entry points, and is cleanly divided
    into early_finish and finish.

 c) BTF is now always emitted at finish (called from dwarf2out_finish),
    for all targets in non-LTO builds, rather than being emitted at
    early_finish for targets other than BPF CO-RE.  In LTO builds,
    BTF is emitted at early_finish as before.

    Note that this change alone does not alter the contents of BTF at
    all, regardless of whether it would have previously been emitted at
    early_finish or finish, because the calculation of the BTF to be
    emitted is not moved by this patch, only the write-out.

The changes are transparent to both CTF and BTF emission.

gcc/
	* btfout.cc (btf_init_postprocess): Rename to...
	(btf_early_finish): ...this.
	(btf_output): Rename to...
	(btf_finish): ...this.
	* ctfc.h: Analogous changes.
	* dwarf2ctf.cc (ctf_debug_early_finish): Conditionally call
	btf_early_finish, or ctf_finalize as appropriate.  Emit BTF
	here for LTO builds.
	(ctf_debug_finish): Always call btf_finish here if generating
	BTF info in non-LTO builds.
	(ctf_debug_finalize, ctf_debug_init_postprocess): Delete.
	* dwarf2out.cc (dwarf2out_early_finish): Remove call to
	ctf_debug_init_postprocess.
2024-07-02 10:16:12 -07:00
2024-05-09 10:58:01 +00:00
2024-04-17 00:18:45 +00:00
2024-06-06 00:16:43 +00:00
2024-06-28 00:18:04 +00:00
2024-04-16 00:18:06 +00:00
2024-05-30 00:16:44 +00:00
2024-06-26 00:17:38 +00:00
2024-06-17 00:16:32 +00:00
2024-03-17 00:17:21 +00:00
2024-06-22 00:18:44 +00:00
2024-04-03 00:17:29 +00:00
2024-07-02 00:17:36 +00:00
2024-06-15 00:16:29 +00:00
2024-06-07 00:16:38 +00:00
2024-05-30 00:16:44 +00:00
2024-04-29 11:39:58 -07:00
2024-07-02 00:17:36 +00:00
2024-02-21 13:51:26 +01:00
2024-04-03 00:17:29 +00:00
2024-06-01 00:17:20 +00:00
2024-04-03 00:17:29 +00:00
2024-06-01 00:17:20 +00:00
2024-05-09 10:58:01 +00:00
2024-02-17 00:17:08 +00:00
2024-05-09 10:58:01 +00:00
2024-06-29 00:17:22 +00:00
2024-06-01 00:17:20 +00:00
2024-04-27 00:18:05 +00:00
2024-07-02 00:17:36 +00:00

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.
Description
No description provided
Readme 2.7 GiB
Languages
C++ 30.7%
C 30.1%
Ada 14.4%
D 6.1%
Go 5.7%
Other 12.5%