Skip to content

Commit a93c26c

Browse files
Reduce diff to near minimal
1 parent b5d6571 commit a93c26c

File tree

5 files changed

+46
-71
lines changed

5 files changed

+46
-71
lines changed

Python/executor_cases.c.h

Lines changed: 19 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/generated_cases.c.h

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Tools/cases_generator/generators_common.py

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -135,30 +135,6 @@ def __init__(self, out: CWriter, labels: dict[str, Label], cannot_escape: bool =
135135
self.cannot_escape = cannot_escape
136136
self.jump_prefix = jump_prefix
137137

138-
def emit_to_with_replacement(
139-
self,
140-
out: CWriter,
141-
tkn_iter: TokenIterator,
142-
end: str,
143-
uop: CodeSection,
144-
storage: Storage,
145-
inst: Instruction | None
146-
) -> Token:
147-
parens = 0
148-
for tkn in tkn_iter:
149-
if tkn.kind == end and parens == 0:
150-
return tkn
151-
if tkn.kind == "LPAREN":
152-
parens += 1
153-
if tkn.kind == "RPAREN":
154-
parens -= 1
155-
if tkn.text in self._replacers:
156-
self._replacers[tkn.text](tkn, tkn_iter, uop, storage, inst)
157-
else:
158-
out.emit(tkn)
159-
raise analysis_error(f"Expecting {end}. Reached end of file", tkn)
160-
161-
162138
def dispatch(
163139
self,
164140
tkn: Token,
@@ -186,7 +162,7 @@ def deopt_if(
186162
lparen = next(tkn_iter)
187163
assert lparen.kind == "LPAREN"
188164
first_tkn = tkn_iter.peek()
189-
self.emit_to_with_replacement(self.out, tkn_iter, "RPAREN", uop, storage, inst)
165+
emit_to(self.out, tkn_iter, "RPAREN")
190166
self.emit(") {\n")
191167
next(tkn_iter) # Semi colon
192168
assert inst is not None

Tools/cases_generator/optimizer_generator.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,29 @@ def __init__(self, out: CWriter, labels: dict[str, Label], original_uop: Uop, st
271271
self._replacers = {**self._replacers, **overrides}
272272
self.cannot_escape = True
273273

274+
def emit_to_with_replacement(
275+
self,
276+
out: CWriter,
277+
tkn_iter: TokenIterator,
278+
end: str,
279+
uop: CodeSection,
280+
storage: Storage,
281+
inst: Instruction | None
282+
) -> Token:
283+
parens = 0
284+
for tkn in tkn_iter:
285+
if tkn.kind == end and parens == 0:
286+
return tkn
287+
if tkn.kind == "LPAREN":
288+
parens += 1
289+
if tkn.kind == "RPAREN":
290+
parens -= 1
291+
if tkn.text in self._replacers:
292+
self._replacers[tkn.text](tkn, tkn_iter, uop, storage, inst)
293+
else:
294+
out.emit(tkn)
295+
raise analysis_error(f"Expecting {end}. Reached end of file", tkn)
296+
274297
def emit_stackref_override(
275298
self,
276299
tkn: Token,

Tools/cases_generator/tier2_generator.py

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ def __init__(self, out: CWriter, labels: dict[str, Label]):
6464
super().__init__(out, labels)
6565
self._replacers["oparg"] = self.oparg
6666
self._replacers["IP_OFFSET_OF"] = self.ip_offset_of
67-
self._replacers["LOCK_OBJECT"] = self.lock_object
68-
self._replacers["UNLOCK_OBJECT"] = self.unlock_object
6967

7068
def goto_error(self, offset: int, storage: Storage) -> str:
7169
# To do: Add jump targets for popping values.
@@ -86,7 +84,7 @@ def deopt_if(
8684
self.emit(lparen)
8785
assert lparen.kind == "LPAREN"
8886
first_tkn = tkn_iter.peek()
89-
self.emit_to_with_replacement(self.out, tkn_iter, "RPAREN", uop, storage, inst)
87+
emit_to(self.out, tkn_iter, "RPAREN")
9088
next(tkn_iter) # Semi colon
9189
self.emit(") {\n")
9290
self.emit("UOP_STAT_INC(uopcode, miss);\n")
@@ -106,7 +104,7 @@ def exit_if(
106104
lparen = next(tkn_iter)
107105
self.emit(lparen)
108106
first_tkn = tkn_iter.peek()
109-
self.emit_to_with_replacement(self.out, tkn_iter, "RPAREN", uop, storage, inst)
107+
emit_to(self.out, tkn_iter, "RPAREN")
110108
next(tkn_iter) # Semi colon
111109
self.emit(") {\n")
112110
self.emit("UOP_STAT_INC(uopcode, miss);\n")
@@ -156,29 +154,6 @@ def ip_offset_of(
156154
next(tkn_iter)
157155
return True
158156

159-
def lock_object(
160-
self,
161-
tkn: Token,
162-
tkn_iter: TokenIterator,
163-
uop: CodeSection,
164-
storage: Storage,
165-
inst: Instruction | None,
166-
) -> bool:
167-
self.emit("1 && ")
168-
return True
169-
170-
def unlock_object(
171-
self,
172-
tkn: Token,
173-
tkn_iter: TokenIterator,
174-
uop: CodeSection,
175-
storage: Storage,
176-
inst: Instruction | None,
177-
) -> bool:
178-
self.out.start_line()
179-
self.emit("(void)")
180-
return True
181-
182157
def write_uop(uop: Uop, emitter: Emitter, stack: Stack, offset_strs: dict[str, tuple[str, str]]) -> Stack:
183158
locals: dict[str, Local] = {}
184159
try:

0 commit comments

Comments
 (0)