Find a file
Bob Duff 76f9c7f44f [Ada] Variable-sized node types
gcc/ada/

	* atree.ads, atree.adb: Major rewrite to support variable-sized
	node types. Add pragmas Suppress and Assertion_Policy.  We now
	have an extra level of indirection: Node_Offsets is a table
	mapping Node_Ids to the offset of the start of each node in
	Slots. Slots is a table containing one or more contiguous slots
	for each node. Each slot is a 32-bit unchecked union that can
	contain any mixture of 1, 2, 4, 8, and 32-bit fields that fits.
	The old low-level getters and setters (e.g.  Flag123) are
	removed.
	* gen_il-fields.ads, gen_il-gen-gen_entities.adb,
	gen_il-gen-gen_nodes.adb, gen_il-gen.adb, gen_il-gen.ads,
	gen_il-main.adb, gen_il-types.ads, gen_il-utils.adb,
	gen_il-utils.ads, gen_il.adb, gen_il.ads: New gen_il program
	that generates various Ada and C++ files. In particular, the
	following files are generated by gen_il: einfo-entities.adb
	einfo-entities.ads, gnatvsn.ads, nmake.adb, nmake.ads,
	seinfo.ads, seinfo_tables.adb, seinfo_tables.ads,
	sinfo-nodes.adb, sinfo-nodes.ads, einfo.h, and sinfo.h.
	* sinfo-utils.adb, sinfo-utils.ads, einfo-utils.adb,
	einfo-utils.ads: New files containing code that needs to refer
	to Sinfo.Nodes and Einfo.Entities. This code is mostly moved
	here from Sinfo and Einfo to break cycles.
	* back_end.adb: Pass node_offsets_ptr and slots_ptr to gigi,
	instead of nodes_ptr and flags_ptr. The Nodes and Flags tables
	no longer exist. (Note that gigi never used the Flags table.)
	* sinfo-cn.ads (Change_Identifier_To_Defining_Identifier,
	Change_Character_Literal_To_Defining_Character_Literal,
	Change_Operator_Symbol_To_Defining_Operator_Symbol): Turn N into
	an IN formal.
	* sinfo-cn.adb: Update.  Add assertions, which can be removed at
	some point.  Rewrite to use higher-level facilities.  Make sure
	vanishing fields are zeroed out.  Add with/use for new packages.
	* sem_util.adb: Remove "Assert(False)" immediately followed by
	"raise Program_Error".  Use higher-level facilities such as
	Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
	routines that no longer exist. Use Get_Comes_From_Source_Default
	instead of Default_Node.Comes_From_Source (Default_Node no
	longer exists).  Use Set_Basic_Convention instead of
	Basic_Set_Convention.  Add with/use for new packages.
	* sem_util.ads: The Convention field had getter Convention and
	setter Basic_Set_Convention. Make that more uniform: there is
	now a field called Basic_Convention, with Basic_Convention and
	Set_Basic_Convention as getter/setter, and write Convention and
	Set_Convention here.
	* nlists.adb: Rewrite to use abstractions, rather then depending
	on low-level implementation details of Atree. Necessary because
	those details have changed. Add with/use for new packages.
	* sem_ch12.adb: Use higher-level facilities such as
	Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
	routines that no longer exist. Add with/use for new packages.
	* exp_cg.adb, sem_ch10.adb, sem_ch4.adb, sem_eval.adb,
	sem_prag.adb, sem_warn.adb: Change expanded names to refer to
	the new packages for things that moved. Add with/use for new
	packages.
	* sem_ch3.adb: Likewise. Reinitialize vanishing fields.
	* exp_disp.adb: Likewise. Remove failing assertion.
	* sinfo.ads, einfo.ads: Remove code that is now generated into
	Sinfo.Nodes and Einfo.Entities.
	* sinfo.adb, einfo.adb: Replace bodies with "pragma No_Body;".
	We should delete these at some point, but No_Body makes make
	files easier. Some code is moved to Sinfo.Nodes, Einfo.Entities,
	Sinfo.Utils, and Einfo.Utils. Some is no longer necessary.
	* treepr.adb: Rewrite to use new tables. We no longer need
	treeprs.ads.
	* treepr.ads: Add comment.
	* types.ads: Move types Component_Alignment_Kind and
	Float_Rep_Kind here.
	* atree.h: Major update to match atree.ads changes.  Add slot
	types, for use by getters/setters.
	* types.h: Move types Component_Alignment_Kind and
	Float_Rep_Kind here.
	* fe.h: Rewrite to deal with code that has changed or moved from
	Atree, Sinfo, Einfo.
	* nlists.h: Move some code to fe.h.
	* alloc.ads: Split Nodes_* constants into Node_Offsets and
	Slots, because Atree has two separate tables.  Increase values.
	Remove Nodes_Release_Threshold. Improve comment.
	* debug.adb, gnat1drv.adb: Remove obsolete gnatd.A and gnatd.N
	switches.  Add with/use for new packages.
	* opt.ads: Minor comment fix.
	* aspects.adb, checks.adb, comperr.adb, contracts.adb,
	cstand.adb, debug_a.adb, errout.adb, eval_fat.adb, exp_aggr.adb,
	exp_atag.adb, exp_attr.adb, exp_ch11.adb, exp_ch12.adb,
	exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb,
	exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb,
	exp_code.adb, exp_dbug.adb, exp_dist.adb, exp_fixd.adb,
	exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb,
	exp_put_image.adb, exp_sel.adb, exp_smem.adb, exp_spark.adb,
	exp_strm.adb, exp_tss.adb, exp_unst.adb, exp_util.adb,
	exp_util.ads, expander.adb, freeze.adb, frontend.adb,
	get_targ.ads, ghost.adb, gnat_cuda.adb, impunit.adb, inline.adb,
	itypes.adb, itypes.ads, layout.adb, lib.adb, lib-load.adb,
	lib-writ.adb, lib-xref.adb, lib-xref.ads,
	lib-xref-spark_specific.adb, live.adb, par.adb, par_sco.adb,
	pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb,
	scn.adb, sem.adb, sem.ads, sem_aggr.adb, sem_attr.adb,
	sem_aux.adb, sem_case.adb, sem_cat.adb, sem_ch11.adb,
	sem_ch13.adb, sem_ch2.adb, sem_ch5.adb, sem_ch6.adb,
	sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb,
	sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb,
	sem_intr.adb, sem_mech.adb, sem_res.adb, sem_scil.adb,
	sem_smem.adb, sem_type.adb, set_targ.ads, sinput.adb,
	sinput-l.adb, sprint.adb, style.adb, styleg.adb, tbuild.adb,
	tbuild.ads, uname.adb: Add with/use for new packages.
	* libgnat/a-stoubu.adb, libgnat/a-stouut.adb: Simplify to ease
	bootstrap.
	* libgnat/a-stobfi.adb, libgnat/a-stoufi.adb (Create_File,
	Create_New_File): Create file in binary format, to avoid
	introducing unwanted text conversions on Windows. Simplify to
	ease bootstrap.
	* libgnat/a-stteou__bootstrap.ads: New.
	* ceinfo.adb, csinfo.adb, nmake.adt, treeprs.adt, xeinfo.adb,
	xnmake.adb, xsinfo.adb, xtreeprs.adb: Delete.
	* Make-generated.in: Build and run the gen_il program to
	generate files. The files are generated in the ada/gen_il
	subdirectory, and then moved up to ada.  We rely on gnatmake (as
	opposed to make) to build the gen_il program efficiently (i.e.
	don't do anything if the sources didn't change).
	* gcc-interface/Makefile.in (ADAFLAGS): Add -gnatU.
	(GNATMAKE_OBJS): Add new object files.
	(GENERATED_FILES_FOR_TOOLS): New variable.
	(../stamp-tools): Create a link for all
	GENERATED_FILES_FOR_TOOLS.
	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add new object
	files.  Remove ada/treeprs.o.
	(GNATBIND_OBJS): Add new object files.
	(ada.mostlyclean): Remove ada/sdefault.adb and add
	ada/stamp-gen_il.
	(ada.maintainer-clean): Remove ada/treeprs.ads.
	(update-sources): Remove obsolete target.
	(ada_generated_files): Rename to...
	(ADA_GENERATED_FILES): ... this.  Add new source files.  Add
	comment.

	* gcc-interface/trans.c: Remove obsolete Nodes_Ptr and
	Flags_ptr.  Add Node_Offsets_Ptr and Slots_Ptr, which point to
	the corresponding tables in Atree.
	* gcc-interface/gigi.h (gigi): New parameters for initializing
	Node_Offsets_Ptr and Slots_Ptr.
	* gcc-interface/decl.c: Numeric_Kind,
	Discrete_Or_Fixed_Point_Kind, and Record_Kind were
	nonhierarchical, and were therefore removed for simplicity.
	Replace uses with calls to Is_In_... functions.

gnattools/

	* Makefile.in (GENERATED_FILES_FOR_TOOLS): New variable.
	($(GCC_DIR)/stamp-tools): Walk it for the first copy operation.
2021-05-07 05:29:09 -04:00
c++tools Daily bump. 2021-04-02 00:16:26 +00:00
config Daily bump. 2021-05-04 00:16:53 +00:00
contrib Daily bump. 2021-04-28 00:16:36 +00:00
fixincludes Daily bump. 2020-12-15 00:16:35 +00:00
gcc [Ada] Variable-sized node types 2021-05-07 05:29:09 -04:00
gnattools [Ada] Variable-sized node types 2021-05-07 05:29:09 -04:00
gotools Daily bump. 2021-02-03 00:16:23 +00:00
include Daily bump. 2021-05-07 00:16:33 +00:00
INSTALL
intl Daily bump. 2021-04-17 00:16:25 +00:00
libada Update copyright years. 2021-01-04 10:26:59 +01:00
libatomic Daily bump. 2021-01-16 00:16:29 +00:00
libbacktrace Daily bump. 2021-05-04 00:16:53 +00:00
libcc1 Daily bump. 2021-05-06 00:16:37 +00:00
libcody Daily bump. 2021-04-07 00:16:39 +00:00
libcpp Daily bump. 2021-05-07 00:16:33 +00:00
libdecnumber Daily bump. 2021-05-04 00:16:53 +00:00
libffi Daily bump. 2021-01-06 00:16:55 +00:00
libgcc Daily bump. 2021-04-30 00:16:37 +00:00
libgfortran Daily bump. 2021-05-06 00:16:37 +00:00
libgo libgo: update to Go1.16.3 release 2021-04-12 15:23:16 -07:00
libgomp Daily bump. 2021-05-05 00:16:54 +00:00
libhsail-rt Daily bump. 2021-01-06 00:16:55 +00:00
libiberty Daily bump. 2021-05-07 00:16:33 +00:00
libitm Daily bump. 2021-01-16 00:16:29 +00:00
libobjc Daily bump. 2021-01-06 00:16:55 +00:00
liboffloadmic Daily bump. 2021-01-06 00:16:55 +00:00
libphobos Daily bump. 2021-04-22 00:16:32 +00:00
libquadmath Daily bump. 2021-01-06 00:16:55 +00:00
libsanitizer Daily bump. 2021-04-18 00:16:21 +00:00
libssp Daily bump. 2021-01-06 00:16:55 +00:00
libstdc++-v3 Daily bump. 2021-05-07 00:16:33 +00:00
libvtv Daily bump. 2021-01-06 00:16:55 +00:00
lto-plugin Daily bump. 2021-05-04 00:16:53 +00:00
maintainer-scripts Daily bump. 2021-04-21 00:16:23 +00:00
zlib Daily bump. 2021-01-06 00:16:55 +00:00
.dir-locals.el .dir-locals.el: Set 'fill-column' to 80 for c-mode 2020-12-14 12:19:56 +01:00
.gitattributes
.gitignore Sync .gitignore with binutils-gdb 2020-12-02 11:04:01 -07:00
ABOUT-NLS
ar-lib
ChangeLog Daily bump. 2021-05-05 00:16:54 +00:00
ChangeLog.jit
ChangeLog.tree-ssa
compile
config-ml.in config-ml.in: Suppress output from multi-do recipes 2020-11-09 14:28:37 +00:00
config.guess config.sub, config.guess : Import upstream 2021-01-25. 2021-02-23 17:21:10 +08:00
config.rpath
config.sub config.sub, config.guess : Import upstream 2021-01-25. 2021-02-23 17:21:10 +08:00
configure Replace AC_PROG_CC with AC_PROG_CC_C99 in top level configure file. 2021-05-04 13:39:04 +01:00
configure.ac Replace AC_PROG_CC with AC_PROG_CC_C99 in top level configure file. 2021-05-04 13:39:04 +01:00
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
depcomp
install-sh
libtool-ldflags
libtool.m4 Update GNU/Hurd configure support 2021-01-05 16:04:14 -07:00
ltgcc.m4
ltmain.sh Do not use HAVE_DOS_BASED_FILE_SYSTEM for Cygwin. 2020-04-17 09:22:51 +02:00
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
MAINTAINERS MAINTAINERS: Add myself for write after approval 2021-04-23 09:12:43 -07:00
Makefile.def sim: drop dep on configure-gdb 2021-03-12 19:48:13 -05:00
Makefile.in sim: drop dep on configure-gdb 2021-03-12 19:48:13 -05:00
Makefile.tpl Add -fprofile-reproducible=parallel-runs to STAGEfeedback_CFLAGS to Makefile.tpl. 2021-03-11 16:18:56 +01:00
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
README
symlink-tree
test-driver
ylwrap

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.