This is an archive of the discontinued LLVM Phabricator instance.

[Statepoint] Constant fold FP deopt args.
ClosedPublic

Authored by dantrushin on May 20 2020, 1:01 PM.

Details

Summary

We do not have any special handling for constant FP deopt arguments.
They are just spilled to stack or generated in register by MOVS
instruction. This is inefficient and, when we have too many such
constant arguments, may result in register allocation failure.
Instead, we can bitcast such constant Fp operands to appropriately
sized integer and record as constant into statepoint and later, into
StackMap.

Diff Detail

Event Timeline

dantrushin created this revision.May 20 2020, 1:01 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 20 2020, 1:01 PM
skatkov accepted this revision.May 20 2020, 10:17 PM
skatkov added inline comments.
llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
390–391

I guess this comment is for both constant sections.
does it make sense to move up?

This revision is now accepted and ready to land.May 20 2020, 10:17 PM
This revision was automatically updated to reflect the committed changes.