This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC PATCH] Reducing GCC initialization time by merging builtins


The attached patch illustrates the following idea: we can replace
several builtins having the same signature with one auxiliary builtin
with a special argument. This argument will specify which particular
builtin the auxiliary one should expand to. We pull the argument out
at the expand stage and based on its value specify which exactly
builtin we want to get: we add info about ISA restrictions and
according named pattern. And then it is translated as always.

The benefit is that at the initialization time we process as many
builtins as many different signatures there are. If we take three
static arrays in gcc/config/i386/i386.c with builtin descriptions
(namely, bdesc_args, bdesc_special_args, bdesc_round_args) and apply
the idea, we can turn 2163 builtin to only 677 (3.2 times less or
minus 1486).

Attachment: patch.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]