[PATCH] D75023: [RISCV][GlobalISel] Add lowerCall for calling convention

Nitin John Raj via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 22 10:21:52 PDT 2023


nitinjohnraj requested review of this revision.
nitinjohnraj added inline comments.


================
Comment at: llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp:305
+
+  // TODO: Only integer, pointer and aggregate types are supported now.
+  if (!Info.OrigRet.Ty->isIntOrPtrTy() && !Info.OrigRet.Ty->isAggregateType())
----------------
eopXD wrote:
> This seems to contradict with the description of this patch, "Simple non-aggregate types are supported."
You're right. I've updated the description and added a test accordingly.


================
Comment at: llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calls.ll:265
+
+  %a = call i32* @i32_ptr_noargs()
+  ret void
----------------
arsenm wrote:
> Use opaque pointers 
Updated.


================
Comment at: llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calls.ll:267
+  ret void
+}
----------------
arsenm wrote:
> Could use sret/byval tests. Also cases where the argument/return list is too long and needs to go to the stack
> Could use sret/byval tests.
I've added these.

> Also cases where the argument/return list is too long and needs to go to the stack
Are there other examples of a test like this? 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75023/new/

https://reviews.llvm.org/D75023



More information about the llvm-commits mailing list