GlobalISel: Assume G_INTRINSIC* are convergent

This is safer in case anyone tries to run MI optimization passes on
pre-selected MIR. If there turns out to be a real reason to do this,
we might need to add separate convergent intrinsic opcodes.
This commit is contained in:
Matt Arsenault 2020-01-19 22:16:44 -05:00
parent d2182d6c2c
commit ccc11a9f30
1 changed files with 8 additions and 0 deletions

View File

@ -960,6 +960,10 @@ def G_INTRINSIC : GenericInstruction {
let OutOperandList = (outs);
let InOperandList = (ins unknown:$intrin, variable_ops);
let hasSideEffects = 0;
// Conservatively assume this is convergent. If there turnes out to
// be a need, there should be separate convergent intrinsic opcode.s
let isConvergent = 1;
}
// Intrinsic with side effects.
@ -969,6 +973,10 @@ def G_INTRINSIC_W_SIDE_EFFECTS : GenericInstruction {
let hasSideEffects = 1;
let mayLoad = 1;
let mayStore = 1;
// Conservatively assume this is convergent. If there turnes out to
// be a need, there should be separate convergent intrinsic opcode.s
let isConvergent = 1;
}
//------------------------------------------------------------------------------