@@ -194,7 +194,7 @@ def generate_tier2(
194194 out = CWriter (outfile , 2 , lines )
195195 emitter = Tier2Emitter (out , analysis .labels )
196196 out .emit ("\n " )
197- offset_strs : list [ tuple [str , str ]] = []
197+ offset_strs : dict [ str , tuple [str , str ]] = {}
198198 for name , uop in analysis .uops .items ():
199199 if not f"_GUARD_IP_{ name } " in analysis .uops :
200200 continue
@@ -213,8 +213,7 @@ def generate_tier2(
213213 offset_str = "" .join (offset [1 :])
214214 found = True
215215 assert offset_str
216- out .emit (f"#define OFFSET_OF_{ name } ({ offset_str } )\n " )
217- offset_strs .append ((name , offset_str ))
216+ offset_strs [f"_GUARD_IP_{ name } " ] = (name , offset_str )
218217
219218 out .emit ("\n " )
220219
@@ -232,6 +231,8 @@ def generate_tier2(
232231 out .emit (f"case { uop .name } : {{\n " )
233232 declare_variables (uop , out )
234233 stack = Stack ()
234+ if name_offset_pair := offset_strs .get (name ):
235+ out .emit (f"#define OFFSET_OF_{ name_offset_pair [0 ]} ({ name_offset_pair [1 ]} )\n " )
235236 stack = write_uop (uop , emitter , stack )
236237 out .start_line ()
237238 if not uop .properties .always_exits :
@@ -240,7 +241,7 @@ def generate_tier2(
240241 out .emit ("}" )
241242 out .emit ("\n \n " )
242243
243- for name , offset_str in offset_strs :
244+ for name , offset_str in offset_strs . values () :
244245 out .emit (f"#undef OFFSET_OF{ name } \n " )
245246 out .emit ("\n " )
246247 outfile .write ("#undef TIER_TWO\n " )
0 commit comments