Amongst other things (I expect) this is necessary to ensure decent backtraces
when an "unreachable" is involved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297413
91177308-0d34-0410-b5e6-
96231b3b80d8
for (auto &Arg: CI.arg_operands())
Args.push_back(getOrCreateVReg(*Arg));
+ MF->getFrameInfo().setHasCalls(true);
return CLI->lowerCall(MIRBuilder, CI, Res, Args, [&]() {
return getOrCreateVReg(*CI.getCalledValue());
});
auto &CLI = *MIRBuilder.getMF().getSubtarget().getCallLowering();
auto &TLI = *MIRBuilder.getMF().getSubtarget().getTargetLowering();
const char *Name = TLI.getLibcallName(getRTLibDesc(MI.getOpcode(), Size));
+ MIRBuilder.getMF().getFrameInfo().setHasCalls(true);
CLI.lowerCall(
MIRBuilder, MachineOperand::CreateES(Name),
{MI.getOperand(0).getReg(), Ty},
}
; CHECK-LABEL: name: test_arr_call
+; CHECK: hasCalls: true
; CHECK: [[ARG:%[0-9]+]](s256) = G_LOAD
; CHECK: [[E0:%[0-9]+]](s64) = G_EXTRACT [[ARG]](s256), 0
bb.0.entry:
liveins: %d0, %d1, %s2, %s3
+ ; CHECK-LABEL: name: test_pow
+ ; CHECK: hasCalls: true
+
%0:_(s64) = COPY %d0
%1:_(s64) = COPY %d1
%2:_(s32) = COPY %s2