@@ -201,15 +201,16 @@ def _aliases(line: _Line | None) -> list[_Line]:
201201
202202@dataclasses .dataclass
203203class _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