Skip to content

Conversation

@CarolEidt
Copy link
Contributor

Zero diff changes preparatory to improving struct promotion for args

  • Unify the handling of promoted args when assigning offsets; there's no need to handle independent vs. dependent promotion separately.
  • Use varTypeUsesFloatReg where appropriate.
  • Some minor refactoring of initial reg assignment.
  • Add a 'Clear' method to StructPromotionHelper for use after inlining (not yet in use, as it produces diffs).
  • Wrap a SIMD field node in GT_OBJ only if needed.

- Unify the handling of promoted args when assigning offsets; there's no need to handle independent vs. dependent promotion separately.
- Use `varTypeUsesFloatReg` where appropriate.
- Some minor refactoring of initial reg assignment.

These changes are preparatory to improved struct promotion for args.
- Add a 'Clear' method to `StructPromotionHelper` for use after inlining (not yet in use, as it produces diffs).
- Wrap a SIMD field node in `GT_OBJ` only if needed.
-
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jul 14, 2020
@CarolEidt
Copy link
Contributor Author

@dotnet/jit-contrib PTAL

@CarolEidt CarolEidt requested a review from sandreenko July 14, 2020 18:03
Copy link
Contributor

@sandreenko sandreenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

// UpdateLifeFieldVar: Update live sets for only the given field of a multi-reg LclVar node.
//
// Arguments:
// lclNode - the GT_LCL_VAR node.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: it looks like the header was not updated for this function.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for catching that; rather than fix in this PR, I've fixed it in the follow-up PR #39326 which I'll rebase on this once this one's merged.

@CarolEidt CarolEidt merged commit 3fc9408 into dotnet:master Jul 15, 2020
@CarolEidt CarolEidt deleted the StructArgPrep branch July 15, 2020 04:28
@karelz karelz added this to the 5.0.0 milestone Aug 18, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 8, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants