1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00

[llvm-exegesis] Don't use unsupported aliasing instructions

Since some instruction types aren't allowed as the main instruction also
don't allow them for aliasing instructions.

Differential Revision: https://reviews.llvm.org/D73220
This commit is contained in:
Miloš Stojanović 2020-01-23 12:28:50 +01:00
parent 0c1c818a0d
commit 02c4274a22

View File

@ -49,6 +49,13 @@ computeAliasingInstructions(const LLVMState &State, const Instruction *Instr,
if (OtherOpcode == Instr->Description.getOpcode())
continue;
const Instruction &OtherInstr = State.getIC().getInstr(OtherOpcode);
const MCInstrDesc &OtherInstrDesc = OtherInstr.Description;
// Ignore instructions that we cannot run.
if (OtherInstrDesc.isPseudo() ||
OtherInstrDesc.isBranch() || OtherInstrDesc.isIndirectBranch() ||
OtherInstrDesc.isCall() || OtherInstrDesc.isReturn()) {
continue;
}
if (OtherInstr.hasMemoryOperands())
continue;
if (!State.getExegesisTarget().allowAsBackToBack(OtherInstr))