Page MenuHomePhabricator

[WIP][RISCV][GlobalISel] Add lowerFormalArguments for calling convention
Needs ReviewPublic

Authored by lewis-revill on Feb 21 2020, 11:34 AM.

Details

Summary

This patch adds an IncomingValueHandler and implements minimal support for lowering formal arguments according to the RISC-V calling convention. Simple non-aggregate integer and pointer types are supported. Lowering according to fastcc calling convention is not yet supported.

Diff Detail

Unit TestsFailed

TimeTest
120 msLLVM.Transforms/LoopStrengthReduce::Unknown Unit Message ("")
Script: -- : 'RUN: at line 1'; /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/bin/llc -debug-only=loop-reduce < /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/llvm/test/Transforms/LoopStrengthReduce/phi-unknownscev.ll 2>&1 | /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/bin/FileCheck /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/llvm/test/Transforms/LoopStrengthReduce/phi-unknownscev.ll

Event Timeline

lewis-revill created this revision.Feb 21 2020, 11:34 AM

Rebase, update test structure.

Joe added inline comments.Mar 20 2020, 7:52 AM
llvm/lib/Target/RISCV/RISCVCallLowering.cpp
171

Perhaps add a test for this?

173

Floats don't work here. HandleAssignments tries to truncate it. Best to leave it unsupported for now.

lewis-revill edited the summary of this revision. (Show Details)

Address comments relating to supported types.

lenary resigned from this revision.Jan 14 2021, 10:10 AM
rkruppe removed a subscriber: rkruppe.Jan 14 2021, 10:20 AM