@@ -156,7 +156,7 @@ function to_code_info(ex, mod, funcname, slots)
156156
157157 stmt_offset = length (stmts)
158158 for stmt in children (ex)
159- push! (stmts, to_lowered_expr (mod, stmt, stmt_offset))
159+ push! (stmts, _to_lowered_expr (mod, stmt, stmt_offset))
160160 add_ir_debug_info! (current_codelocs_stack, stmt)
161161 end
162162
@@ -223,7 +223,11 @@ function to_code_info(ex, mod, funcname, slots)
223223 )
224224end
225225
226- function to_lowered_expr (mod, ex, stmt_offset= 0 )
226+ @fzone " JL: to_lowered_expr" function to_lowered_expr (mod, ex)
227+ _to_lowered_expr (mod, ex, 0 )
228+ end
229+
230+ function _to_lowered_expr (mod, ex, stmt_offset)
227231 k = kind (ex)
228232 if is_literal (k)
229233 ex. value
@@ -259,7 +263,7 @@ function to_lowered_expr(mod, ex, stmt_offset=0)
259263 elseif k == K " SSAValue"
260264 Core. SSAValue (ex. var_id + stmt_offset)
261265 elseif k == K " return"
262- Core. ReturnNode (to_lowered_expr (mod, ex[1 ], stmt_offset))
266+ Core. ReturnNode (_to_lowered_expr (mod, ex[1 ], stmt_offset))
263267 elseif k == K " inert"
264268 e1 = ex[1 ]
265269 getmeta (ex, :as_Expr , false ) ? QuoteNode (Expr (e1)) : e1
@@ -278,36 +282,36 @@ function to_lowered_expr(mod, ex, stmt_offset=0)
278282 elseif k == K " goto"
279283 Core. GotoNode (ex[1 ]. id + stmt_offset)
280284 elseif k == K " gotoifnot"
281- Core. GotoIfNot (to_lowered_expr (mod, ex[1 ], stmt_offset), ex[2 ]. id + stmt_offset)
285+ Core. GotoIfNot (_to_lowered_expr (mod, ex[1 ], stmt_offset), ex[2 ]. id + stmt_offset)
282286 elseif k == K " enter"
283287 catch_idx = ex[1 ]. id
284288 numchildren (ex) == 1 ?
285289 Core. EnterNode (catch_idx) :
286- Core. EnterNode (catch_idx, to_lowered_expr (mod, ex[2 ], stmt_offset))
290+ Core. EnterNode (catch_idx, _to_lowered_expr (mod, ex[2 ], stmt_offset))
287291 elseif k == K " method"
288- cs = map (e-> to_lowered_expr (mod, e, stmt_offset), children (ex))
292+ cs = map (e-> _to_lowered_expr (mod, e, stmt_offset), children (ex))
289293 # Ad-hoc unwrapping to satisfy `Expr(:method)` expectations
290294 c1 = cs[1 ] isa QuoteNode ? cs[1 ]. value : cs[1 ]
291295 Expr (:method , c1, cs[2 : end ]. .. )
292296 elseif k == K " newvar"
293- Core. NewvarNode (to_lowered_expr (mod, ex[1 ], stmt_offset))
297+ Core. NewvarNode (_to_lowered_expr (mod, ex[1 ], stmt_offset))
294298 elseif k == K " opaque_closure_method"
295- args = map (e-> to_lowered_expr (mod, e, stmt_offset), children (ex))
299+ args = map (e-> _to_lowered_expr (mod, e, stmt_offset), children (ex))
296300 # opaque_closure_method has special non-evaluated semantics for the
297301 # `functionloc` line number node so we need to undo a level of quoting
298302 @assert args[4 ] isa QuoteNode
299303 args[4 ] = args[4 ]. value
300304 Expr (:opaque_closure_method , args... )
301305 elseif k == K " meta"
302- args = Any[to_lowered_expr (mod, e, stmt_offset) for e in children (ex)]
306+ args = Any[_to_lowered_expr (mod, e, stmt_offset) for e in children (ex)]
303307 # Unpack K"Symbol" QuoteNode as `Expr(:meta)` requires an identifier here.
304308 args[1 ] = args[1 ]. value
305309 Expr (:meta , args... )
306310 elseif k == K " static_eval"
307311 @assert numchildren (ex) == 1
308- to_lowered_expr (mod, ex[1 ], stmt_offset)
312+ _to_lowered_expr (mod, ex[1 ], stmt_offset)
309313 elseif k == K " cfunction"
310- args = Any[to_lowered_expr (mod, e, stmt_offset) for e in children (ex)]
314+ args = Any[_to_lowered_expr (mod, e, stmt_offset) for e in children (ex)]
311315 if kind (ex[2 ]) == K " static_eval"
312316 args[2 ] = QuoteNode (args[2 ])
313317 end
@@ -339,13 +343,13 @@ function to_lowered_expr(mod, ex, stmt_offset=0)
339343 if isnothing (head)
340344 throw (LoweringError (ex, " Unhandled form for kind $k " ))
341345 end
342- Expr (head, map (e-> to_lowered_expr (mod, e, stmt_offset), children (ex))... )
346+ Expr (head, map (e-> _to_lowered_expr (mod, e, stmt_offset), children (ex))... )
343347 end
344348end
345349
346350# -------------------------------------------------------------------------------
347351# Our version of eval takes our own data structures
348- function Core. eval (mod:: Module , ex:: SyntaxTree ; expr_compat_mode:: Bool = false )
352+ @fzone " JL: eval " function Core. eval (mod:: Module , ex:: SyntaxTree ; expr_compat_mode:: Bool = false )
349353 k = kind (ex)
350354 if k == K " toplevel"
351355 x = nothing
@@ -355,7 +359,7 @@ function Core.eval(mod::Module, ex::SyntaxTree; expr_compat_mode::Bool=false)
355359 return x
356360 end
357361 linear_ir = lower (mod, ex; expr_compat_mode)
358- expr_form = to_lowered_expr (mod, linear_ir, 0 )
362+ expr_form = to_lowered_expr (mod, linear_ir)
359363 eval (mod, expr_form)
360364end
361365
0 commit comments