Spilling and reloading AMX registers are expensive. We allow PTILEZEROV
and PTILELOADDV to be rematerializable to avoid the register spilling.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/X86/X86InstrInfo.cpp | ||
---|---|---|
1010 | Sorry. I just noticed the ptileloaddv is also rematerialized. I'm not sure about it, because we need the stride (encoded as index) information and we need also make sure the memory address is global variable. What do you think? |
llvm/lib/Target/X86/X86InstrInfo.cpp | ||
---|---|---|
1010 | We may need to make sure the memory is not modified before reload. Constant pool should be ok. |
llvm/lib/Target/X86/X86InstrInfo.cpp | ||
---|---|---|
1010 | I did a research and found it has difficulties: |
llvm/lib/Target/X86/X86InstrInfo.cpp | ||
---|---|---|
1010 | I agree to disable it first, and re-enable it when we have a safe approach. |
llvm/lib/Target/X86/X86InstrInfo.cpp | ||
---|---|---|
1010 | Thanks. Done by rG42e025f9deab. |
Sorry. I just noticed the ptileloaddv is also rematerialized. I'm not sure about it, because we need the stride (encoded as index) information and we need also make sure the memory address is global variable. What do you think?