Skip to content

Commit 77886d0

Browse files
committed
Handle prefixes
1 parent 858624a commit 77886d0

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

Tools/jit/_targets.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -201,15 +201,16 @@ def _aliases(line: _Line | None) -> list[_Line]:
201201

202202
@dataclasses.dataclass
203203
class _AssemblyTransformer:
204-
_path: pathlib.Path
205-
_alignment: int = 1
204+
path: pathlib.Path
205+
alignment: int = 1
206+
prefix: str = ""
206207
_lines: _Line = dataclasses.field(init=False)
207208
_labels: dict[str, _Label] = dataclasses.field(init=False, default_factory=dict)
208209
_ran: bool = dataclasses.field(init=False, default=False)
209210

210211
def __post_init__(self) -> None:
211212
dummy = current = _Noise("")
212-
for line in self._path.read_text().splitlines(True):
213+
for line in self.path.read_text().splitlines(True):
213214
new = self._new_line(line)
214215
if current.fallthrough:
215216
new.predecessors.append(current)
@@ -253,7 +254,7 @@ def _dump(self) -> str:
253254
return "".join(line.text for line in self)
254255

255256
def _break_on(self, name: str) -> None:
256-
if self._path.stem == name:
257+
if self.path.stem == name:
257258
print(self._dump())
258259
breakpoint()
259260

@@ -265,23 +266,23 @@ def run(self) -> None:
265266
if not isinstance(line, (_Label, _Noise)):
266267
last_line = line
267268
assert last_line is not None
268-
new = self._new_line(f".balign {self._alignment}\n")
269+
new = self._new_line(f".balign {self.alignment}\n")
269270
new.link = last_line.link
270271
last_line.link = new
271-
new = self._new_line("_JIT_CONTINUE:\n")
272+
new = self._new_line(f"{self.prefix}_JIT_CONTINUE:\n")
272273
new.link = last_line.link
273274
last_line.link = new
274275
# Mark hot lines and optimize:
275276
recursion_limit = sys.getrecursionlimit()
276277
sys.setrecursionlimit(10_000)
277278
try:
278-
self._labels["_JIT_CONTINUE"].heat()
279+
self._labels[f"{self.prefix}_JIT_CONTINUE"].heat()
279280
# self._break_on("_BUILD_TUPLE")
280281
self._lines.optimize()
281282
finally:
282283
sys.setrecursionlimit(recursion_limit)
283284
# Write new assembly:
284-
self._path.write_text(self._dump())
285+
self.path.write_text(self._dump())
285286

286287

287288
@dataclasses.dataclass
@@ -408,7 +409,7 @@ async def _compile(
408409
*self.args,
409410
]
410411
await _llvm.run("clang", args_s, echo=self.verbose)
411-
_AssemblyTransformer(s, self.alignment).run()
412+
_AssemblyTransformer(s, alignment=self.alignment, prefix=self.prefix).run()
412413
args_o = [
413414
f"--target={self.triple}",
414415
"-c",

0 commit comments

Comments
 (0)