Page MenuHomePhabricator

Mips: Mark special case calling convention handling as custom
ClosedPublic

Authored by arsenm on Jul 9 2021, 2:21 PM.

Details

Summary

The number of registers used for passing f64 in some cases is context
dependent, and thus getNumRegistersForCallingConv is sometimes
inaccurate. For f64, it reports 1 but is sometimes split into 2 32-bit
registers.

For GlobalISel, the generic argument assignment code expects
getNumRegistersForCallingConv to return an accurate answer. Switch to
marking these arguments as custom so we can deal with this case as a
custom assignment rather.

This temporarily breaks a few globalisel tests which are fixed by a
future change to use more of the generic infrastructure.

Diff Detail

Unit TestsFailed

TimeTest
20 msx64 debian > LLVM.tools/llvm-symbolizer::wasm-basic.s
Script: -- : 'RUN: at line 2'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llvm-mc -triple=wasm32-unknown-unknown -filetype=obj /var/lib/buildkite-agent/builds/llvm-project/llvm/test/tools/llvm-symbolizer/wasm-basic.s -o /var/lib/buildkite-agent/builds/llvm-project/build/test/tools/llvm-symbolizer/Output/wasm-basic.s.tmp.o -g
30 msx64 windows > LLVM.tools/llvm-symbolizer::wasm-basic.s
Script: -- : 'RUN: at line 2'; c:\ws\w3\llvm-project\premerge-checks\build\bin\llvm-mc.exe -triple=wasm32-unknown-unknown -filetype=obj C:\ws\w3\llvm-project\premerge-checks\llvm\test\tools\llvm-symbolizer\wasm-basic.s -o C:\ws\w3\llvm-project\premerge-checks\build\test\tools\llvm-symbolizer\Output\wasm-basic.s.tmp.o -g

Event Timeline

arsenm created this revision.Jul 9 2021, 2:21 PM
arsenm requested review of this revision.Jul 9 2021, 2:21 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 9 2021, 2:21 PM
Herald added a subscriber: wdng. · View Herald Transcript
This revision is now accepted and ready to land.Jul 10 2021, 7:37 AM