On 2/12/25 6:44 PM, 钟居哲 wrote:
VSETVL PASS is supposed to insert "vsetvli" into optimal place so
"vsetvli" inserted by VSETVL PASS shouldn't involved into instruction
scheduling.
vsetvl pass inserts based on needs of vector instructions. The
scheduler will move code to try and minimize the critical path length.
That includes potentially hoisting any insn into different control
blocks if doing so has the same semantics, which is what's happening
here. The hoisting, AFAICT doesn't change semantics.
jeff