Skip to content

gh-104909: Implement conditional stack effects for macros #105748

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Jun 14, 2023

Conversation

gvanrossum
Copy link
Member

@gvanrossum gvanrossum commented Jun 13, 2023

Currently only conditional output effects in the last sub-instruction are supported.

This is needed so we can make progress with splitting opcodes into uops with at most one cache entry or oparg -- some of the opcodes that need splitting have a conditional output effect.

src: StackEffect | None,
*,
# Don't initialize from dst.cond; used for conditional *outputs*.
unconditional: bool = False,
Copy link
Member

Choose a reason for hiding this comment

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

I'm finding it hard to track the directions of the different booleans here (unconditional is used for conditional outputs, and we don't initialise when it is True..).

Copy link
Member Author

Choose a reason for hiding this comment

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

That's fair. I'm reverting the sense and renaming it to init_null, with a default of True (since that's what's needed in 5 out of 6 call sites).

@gvanrossum gvanrossum marked this pull request as draft June 14, 2023 04:32
@gvanrossum
Copy link
Member Author

Further testing shows the stack adjustment is not always correct.

Also remove dummy diff argument to stack_adjust().
@gvanrossum
Copy link
Member Author

I'll undraft this once gh-105788 is merged (which is one of the earlier commits in this PR, but should be separated out).

@gvanrossum gvanrossum marked this pull request as ready for review June 14, 2023 17:07
@gvanrossum gvanrossum enabled auto-merge (squash) June 14, 2023 20:31
@gvanrossum gvanrossum merged commit 4caa728 into python:main Jun 14, 2023
@gvanrossum gvanrossum deleted the cond-effect-2 branch June 14, 2023 21:03
carljm added a commit to carljm/cpython that referenced this pull request Jun 15, 2023
* main: (57 commits)
  pythongh-105831: Fix NEWS blurb from pythongh-105828 (python#105833)
  pythongh-105820: Fix tok_mode expression buffer in file & readline tokenizer (python#105828)
  pythongh-105751, test_ctypes: Remove disabled tests (python#105826)
  pythongh-105821: Use a raw f-string in test_httpservers.py (python#105822)
  pythongh-105751: Remove platform usage in test_ctypes (python#105819)
  pythongh-105751: Reenable disable test_ctypes tests (python#105818)
  pythongh-105751: Remove dead code in test_ctypes (python#105817)
  More reorganisation of the typing docs (python#105787)
  Improve docs for `typing.dataclass_transform` (python#105792)
  pythonGH-89812: Churn `pathlib.Path` test methods (python#105807)
  pythongh-105800: Issue SyntaxWarning in f-strings for invalid escape sequences (python#105801)
  pythongh-105751: Cleanup test_ctypes imports (python#105803)
  pythongh-105481: add HAS_JUMP flag to opcode metadata (python#105791)
  pythongh-105751: test_ctypes avoids the operator module (pythonGH-105797)
  pythongh-105751: test_ctypes: Remove @need_symbol decorator (pythonGH-105798)
  pythongh-104909: Implement conditional stack effects for macros (python#105748)
  pythongh-75905: Remove test_xmlrpc_net: skipped since 2017 (python#105796)
  pythongh-105481: Fix types and a bug for pseudos (python#105788)
  Update DSL docs for cases generator (python#105753)
  pythonGH-77273: Better bytecodes for f-strings (pythonGH-6132)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants