Skip to content

Conversation

RKSimon
Copy link
Collaborator

@RKSimon RKSimon commented Aug 5, 2025

Remove the limited freeze multiple operand handling, always freeze all operands and rely on later visitFREEZE calls to merge frozen/unfrozen versions of each node to prevent infinite loops.

This also removes the special handling of frozen SRA/SRL nodes as most of the regressions are related

Fixes #149798
Fixes #150204

@RKSimon RKSimon force-pushed the dag-freeze-multiple branch 2 times, most recently from 8365b9b to f6e048a Compare August 5, 2025 13:14
@RKSimon RKSimon force-pushed the dag-freeze-multiple branch 5 times, most recently from 8fc553e to c80c4d2 Compare August 14, 2025 10:05
@RKSimon RKSimon force-pushed the dag-freeze-multiple branch 3 times, most recently from 715be61 to 0edc8b6 Compare August 22, 2025 10:28
RKSimon added a commit that referenced this pull request Aug 22, 2025
RKSimon added a commit to RKSimon/llvm-project that referenced this pull request Aug 22, 2025
…te poison/undef

Add AMDGPUTargetLowering::canCreateUndefOrPoisonForTargetNode handler and tag BFE_I32/U32 nodes as they can only propagate poison, not create poison/undef.

Fighting some of the remaining regressions in llvm#152107 - need advice on the v_round_f64 change
@RKSimon RKSimon force-pushed the dag-freeze-multiple branch from 0edc8b6 to 3b0856e Compare August 22, 2025 11:47
RKSimon added a commit that referenced this pull request Aug 22, 2025
…te poison/undef (#154932)

Add AMDGPUTargetLowering::canCreateUndefOrPoisonForTargetNode handler
and tag BFE_I32/U32 nodes as they can only propagate poison, not create
poison/undef.

Fighting some of the remaining regressions in #152107
@RKSimon RKSimon force-pushed the dag-freeze-multiple branch 2 times, most recently from c7695aa to 4c5743a Compare August 22, 2025 17:34
RKSimon added a commit to RKSimon/llvm-project that referenced this pull request Aug 26, 2025
…2P8AFFINEQB / GF2P8MULB handling

All 3 instructions are well defined bit twiddling operations - they do not introduce undef/poison with well defined inputs.

Fixes regressions in llvm#152107
@RKSimon RKSimon force-pushed the dag-freeze-multiple branch from 4c5743a to 1d2fe46 Compare August 26, 2025 13:44
RKSimon added a commit that referenced this pull request Aug 26, 2025
…2P8AFFINEQB / GF2P8MULB handling (#155409)

All 3 instructions are well defined bit twiddling operations - they do
not introduce undef/poison with well defined inputs.

Fixes regressions in #152107
@RKSimon RKSimon force-pushed the dag-freeze-multiple branch 3 times, most recently from b7dc70a to c22f9a0 Compare August 27, 2025 08:11
RKSimon added a commit to RKSimon/llvm-project that referenced this pull request Aug 27, 2025
…NLOG handling

Basic bitlogic operations don't create undef/poison.

Its proving really annoying to create proper test coverage for these specific opcodes as they tend to appear in later stages - their presence does help in some upcoming patches (e.g. llvm#152107) and I'd prefer to get them committed early.
RKSimon added a commit that referenced this pull request Aug 27, 2025
…NLOG handling (#155600)

Basic bitlogic operations don't create undef/poison.

Its proving really annoying to create proper test coverage for these
specific opcodes as they tend to appear in later stages - their presence
does help in some upcoming patches (e.g. #152107) and I'd prefer to get
them committed early.
@RKSimon RKSimon force-pushed the dag-freeze-multiple branch from c22f9a0 to 21092ff Compare August 27, 2025 13:20
@RKSimon RKSimon force-pushed the dag-freeze-multiple branch 2 times, most recently from 960f95b to 3de4929 Compare August 27, 2025 15:22
Remove the limited freeze multiple operand handling, always freeze all operands and rely on later visitFREEZE calls to merge frozen/unfrozen versions of each node to prevent infinite loops.

This also removes the special handling of frozen SRA/SRL nodes as most of the regressions are related

Fixes llvm#149798
Fixes llvm#150204
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.

[DAG] visitFREEZE - enable SRA/SRL handling [DAG] visitFREEZE - always allow freezing multiple operands
1 participant