There are several Pseudo in PowerPC backend.
eg:
- ISel Pseudo-instructions , which has let usesCustomInserter=1 in td ExpandISelPseudos -> EmitInstrWithCustomInserter will deal with them.
- Post-RA pseudo instruction, which has let isPseudo = 1 in td, or Standard pseudo (SUBREG_TO_REG,COPY etc.) ExpandPostRAPseudos -> expandPostRAPseudo will expand them
- Multi-instruction pseudo operations will expand them PPCAsmPrinter::EmitInstruction
- Pseudo instruction in CodeEmitter, which has encoding of 0.
Currently, in td files, especially PPCInstrVSX.td,
we did not distinguish Post-RA pseudo instruction and Pseudo instruction in CodeEmitter very clearly.
This patch is to
- Rename Pseudo<> class to PPCEmitTimePseudo, which means encoding of 0 in CodeEmitter
- Introduce new class PPCPostRAExpPseudo <> for previous PostRA Pseudo
- Introduce new class PPCCustomInserterPseudo <> for previous Isel Pseudo