diff mbox series

[Ada] Follow-on efficiency improvements

Message ID 20210923131237.GA2727175@adacore.com
State New
Headers show
Series [Ada] Follow-on efficiency improvements | expand

Commit Message

Pierre-Marie de Rodat Sept. 23, 2021, 1:12 p.m. UTC
This patch improves compiler efficiency by placing the Homonym attribute
at offset zero. Homonym is a heavily used field.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

	* gen_il-gen.adb: Set the number of concrete nodes that have the
	Homonym field to a higher number than any other field. This
	isn't true, but it forces Homonym's offset to be chosen first,
	so it will be at offset zero and hence slot zero.
diff mbox series

Patch

diff --git a/gcc/ada/gen_il-gen.adb b/gcc/ada/gen_il-gen.adb
--- a/gcc/ada/gen_il-gen.adb
+++ b/gcc/ada/gen_il-gen.adb
@@ -1036,6 +1036,13 @@  package body Gen_IL.Gen is
             Append (All_Fields, F);
          end loop;
 
+         --  Force Homonym to be at offset zero, which speeds up the
+         --  compiler. The Sort below will place Homonym first in
+         --  All_Fields.
+
+         Num_Concrete_Have_Field (Homonym) :=
+           Num_Concrete_Have_Field (Nkind) + 1;
+
          --  Sort All_Fields based on how many concrete types have the field.
          --  This is for efficiency; we want to choose the offsets of the most
          --  common fields first, so they get low numbers.