dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.45k stars 4.76k forks source link

Improve FMA code generation related to operand last use #62215

Open weilinwa opened 2 years ago

weilinwa commented 2 years ago

In current xarch FMA code generation, last use information of operands are used to guide the form selection. There are spaces left to improve the usage of this info. Please refer to the comment here.

Another issue to solve is the last use info change in between lowering phase and lsra phase cause some assert failure in lsra phase here.

category:cq theme:codegen skill-level:expert cost:medium impact:medium

dotnet-issue-labeler[bot] commented 2 years ago

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

ghost commented 2 years ago

Tagging subscribers to this area: @JulieLeeMSFT See info in area-owners.md if you want to be subscribed.

Issue Details
In current xarch FMA code generation, last use information of operands are used to guide the form selection. There are spaces left to improve the usage of this info. Please refer to the comment [here](https://github.com/dotnet/runtime/pull/58196#discussion_r750410050). Another issue to solve is the last use info change in between lowering phase and lsra phase cause some assert failure in lsra phase [here](https://github.com/dotnet/runtime/blob/ff5a4337b965b5b79d9f3f12ebe779b673e8e202/src/coreclr/jit/lsraxarch.cpp#L2310).
Author: weilinwa
Assignees: -
Labels: `area-CodeGen-coreclr`, `untriaged`
Milestone: -
JulieLeeMSFT commented 2 years ago

CC @kunalspathak @dotnet/jit-contrib.

JulieLeeMSFT commented 2 years ago

Moved to .NET 8 becaue .NET 7 code complete is getting close.