| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Sorry, something went wrong.
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the skip news label instead. |
Sorry, something went wrong.
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the skip news label instead. |
Sorry, something went wrong.
|
Hmm, while this does allow _RECORD uops to come after _SPECIALIZE uops, it also:
Example that violates both: macro(LOAD_SUPER_ATTR) =
_LOAD_SUPER_ATTR + // tier1 uop
_RECORD_TOS_TYPE +
_SPECIALIZE_LOAD_SUPER_ATTR +
_PUSH_NULL_CONDITIONAL;BUT, you should wait for a core dev to review this as I may have misunderstood something. |
Sorry, something went wrong.
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the skip news label instead. |
Sorry, something went wrong.
|
@Sacul0457 Good catch! You are entirely correct—my previous logic conflated all tier1 uops with specializing uops, which was too permissive. I also tangled up the Git history on this branch, so I have closed this PR and opened a clean one with a much stricter positional index check that specifically guards for SPECIALIZE prefixes. The new PR is here: #148373 |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
The Issue:
Currently, analyzer.py uses a strict positional first = True check when validating macro structures. This strictly forces any uop with records_value == True to be at index 0, which prevents Tier 2 recording uops from safely trailing Tier 1 specializing uops.
The Fix:
Replaced the boolean first check with a state tracker (valid_recording_pos) in add_macro().
This safely allows structures like:
macro(X) = _SPECIALIZE_X + _RECORD_TOS_TYPE + unused/1 + _X;