[PATCH] D45843: AMDGPU/GlobalISel: Fall-back to SelectionDAG for non-void functions
Tom Stellard via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 19 15:33:49 PDT 2018
tstellar created this revision.
tstellar added a reviewer: arsenm.
Herald added subscribers: t-tye, tpr, dstuttard, kristof.beyls, rovka, yaxunl, nhaehnle, wdng, kzhuravl.
Repository:
rL LLVM
https://reviews.llvm.org/D45843
Files:
lib/Target/AMDGPU/AMDGPUCallLowering.cpp
test/CodeGen/AMDGPU/GlobalISel/todo.ll
Index: test/CodeGen/AMDGPU/GlobalISel/todo.ll
===================================================================
--- /dev/null
+++ test/CodeGen/AMDGPU/GlobalISel/todo.ll
@@ -0,0 +1,10 @@
+; RUN: llc -mtriple=amdgcn-mesa-mesa3d -global-isel -global-isel-abort=2 %s -o - 2>&1 | FileCheck %s
+
+; This isn't implemented, but we need to make sure we fall back to SelectionDAG
+; instead of generating wrong code.
+; CHECK: warning: Instruction selection used fallback path for non_void_ret
+; CHECK: non_void_ret:
+; CHECK-NOT: s_endpgm
+define amdgpu_vs i32 @non_void_ret() {
+ ret i32 0
+}
Index: lib/Target/AMDGPU/AMDGPUCallLowering.cpp
===================================================================
--- lib/Target/AMDGPU/AMDGPUCallLowering.cpp
+++ lib/Target/AMDGPU/AMDGPUCallLowering.cpp
@@ -32,6 +32,10 @@
bool AMDGPUCallLowering::lowerReturn(MachineIRBuilder &MIRBuilder,
const Value *Val, unsigned VReg) const {
+ // FIXME: Add support for non-void returns.
+ if (Val)
+ return false;
+
MIRBuilder.buildInstr(AMDGPU::S_ENDPGM);
return true;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45843.143176.patch
Type: text/x-patch
Size: 1107 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180419/de969b08/attachment.bin>
More information about the llvm-commits
mailing list