On 5/24/23 22:19, juzhe.zh...@rivai.ai wrote:
>> It's highly unlikely we'll switch from the mechanisms we're using.
They're pretty deeply embedded into how all the ports are developed and
work.
We just take a look at the build file. It seems that the functions
generated by define_insn
are so many. Do we have the chance optimize it?
I believe the tablegen mechanism in LLVM is well optimized in case of
generated files and functions
so that they won't be affected to much as instructions go up.
Any define_insn or define_expand with a name that does not begin with a
'*' will result in a function in insn-emit.
Those functions allow us to generate those patterns either from generic
parts of the compiler or from within the target. So if I have
(define_insn "fubar" ...)
I can say
rtx x = gen_fubar (...);
To constuct RTL matching the pattern for "fubar".
So if there are patterns with names that are not used in this way, you
can prefix their name with '*' to suppress creation of the generator
function. I have not looked to see if this would help our situation.
jeff