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] |
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] |