summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp1
-rw-r--r--llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp1
-rw-r--r--llvm/test/CodeGen/AArch64/GlobalISel/call-translator.ll1
-rw-r--r--llvm/test/CodeGen/AArch64/GlobalISel/legalize-pow.mir3
4 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index b6ce59dc120..e170b762ab8 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -729,6 +729,7 @@ bool IRTranslator::translateCall(const User &U, MachineIRBuilder &MIRBuilder) {
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());
});
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
index b4decb18999..da7e9595eed 100644
--- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
@@ -117,6 +117,7 @@ LegalizerHelper::libcall(MachineInstr &MI) {
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},
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/call-translator.ll b/llvm/test/CodeGen/AArch64/GlobalISel/call-translator.ll
index a4cc4633ce3..f8d95c88cc8 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/call-translator.ll
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/call-translator.ll
@@ -96,6 +96,7 @@ define {double, i64, i32} @test_struct_return({double, i64, i32}* %addr) {
}
; 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
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-pow.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-pow.mir
index a25d3951e1a..2becc2e134b 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-pow.mir
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-pow.mir
@@ -15,6 +15,9 @@ body: |
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
OpenPOWER on IntegriCloud