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

Reply via email to