forked from OSchip/llvm-project
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:
parent
d2182d6c2c
commit
ccc11a9f30
|
@ -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;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue