Skip to content

Conversation

RKSimon
Copy link
Collaborator

@RKSimon RKSimon commented Sep 26, 2025

Avoid the ReplaceAllUsesOfValueWith approach that has caused so many problems in previous attempts at this (#145939).

Minor step towards #149798 - eventually we're just going to use this path for all node types, but there's a large number of regressions that need addressing first (see #152107).

This exposed a couple of things that need to be addressed here:

  • we need to revisit frozen nodes once we've merged all frozen/unfrozen uses of a node.
  • RISCVISD::READ_VLENB is never undef/poison

Many of the current regressions are due to us not doing more to avoid freeze(load) nodes - if the load is legal, its no longer going to split. I'm not certain exactly when we can split nodes.

…directly freeze all operands

Avoid the ReplaceAllUsesOfValueWith approach that has caused so many problems in previous attempts at this (llvm#145939).

Minor step towards llvm#149798 - eventually we're just going to use this path for all node types, but there's a large number of regressions that need addressing first (see llvm#152107).

This exposed a couple of things that need to be addressed here:
- we need to revisit frozen nodes once we've merged all frozen/unfrozen uses of a node.
- RISCVISD::READ_VLENB is never undef/poison

Many of the current regressions are due to us not doing more to avoid freeze(load) nodes - if the load is legal, its no longer going to split. I'm not certain exactly when we can split nodes - llvm#160884 tried to catch up to ValueTracking but that might still be wrong.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant