HomePhabricator

[mips] Use AltOrders to prevent using odd FP-registers

Description

[mips] Use AltOrders to prevent using odd FP-registers

To disable using of odd floating-point registers (O32 ABI and
-mno-odd-spreg command line option) such registers and their
super-registers added to the set of reserved registers. In general, it
works. But there is at least one problem - in case of enabled machine
verifier pass some floating-point tests failed because live ranges of
register units that are reserved is not empty and verification pass
failed with "Live segment doesn't end at a valid instruction" error
message.

There is D35985 patch which tries to solve the problem by explicit
removing of register units. This solution did not get approval.

I would like to use another approach for prevent using odd floating
point registers - define AltOrders and AltOrderSelect for MIPS
floating point register classes. Such AltOrders contains reduced set
of registers. At first glance, such solution does not break any test
cases and allows enabling machine instruction verification for all MIPS
test cases.

Differential Revision: http://reviews.llvm.org/D59799

Details

Committed
atanasyanApr 2 2019, 6:57 AM
Differential Revision
D59799: [wip][mips] Use AltOrders to prevent using odd FP-registers
Parents
rL357471: [ObjectYAML] Fix build issue
Branches
Unknown
Tags
Unknown