90
90
# file::Any # nominally Union{Symbol,Nothing}
91
91
# end
92
92
93
- # struct LabelNode
94
- # label::Int
93
+ # struct LineInfoNode
94
+ # mod::Module
95
+ # method::Symbol
96
+ # file::Symbol
97
+ # line::Int
98
+ # inlined_at::Int
95
99
# end
96
100
97
101
# struct GotoNode
352
356
VecElement (arg:: T ) where {T} = VecElement {T} (arg)
353
357
354
358
_new (typ:: Symbol , argty:: Symbol ) = eval (Core, :($ typ (@nospecialize n:: $argty ) = $ (Expr (:new , typ, :n ))))
355
- _new (:LabelNode , :Int )
356
359
_new (:GotoNode , :Int )
357
360
_new (:NewvarNode , :SlotNumber )
358
361
_new (:QuoteNode , :Any )
@@ -367,6 +370,8 @@ eval(Core, :(PiNode(val, typ) = $(Expr(:new, :PiNode, :val, :typ))))
367
370
eval (Core, :(PhiCNode (values:: Array{Any, 1} ) = $ (Expr (:new , :PhiCNode , :values ))))
368
371
eval (Core, :(UpsilonNode (val) = $ (Expr (:new , :UpsilonNode , :val ))))
369
372
eval (Core, :(UpsilonNode () = $ (Expr (:new , :UpsilonNode ))))
373
+ eval (Core, :(LineInfoNode (mod:: Module , method:: Symbol , file:: Symbol , line:: Int , inlined_at:: Int ) =
374
+ $ (Expr (:new , :LineInfoNode , :mod , :method , :file , :line , :inlined_at ))))
370
375
371
376
Module (name:: Symbol = :anonymous , std_imports:: Bool = true ) = ccall (:jl_f_new_module , Ref{Module}, (Any, Bool), name, std_imports)
372
377
@@ -429,23 +434,13 @@ function Symbol(a::Array{UInt8,1})
429
434
end
430
435
Symbol (s:: Symbol ) = s
431
436
432
- struct LineInfoNode
433
- mod:: Module
434
- method:: Symbol
435
- file:: Symbol
436
- line:: Int
437
- inlined_at:: Int
438
- LineInfoNode (mod:: Module , method:: Symbol , file:: Symbol , line:: Int , inlined_at:: Int ) =
439
- new (mod, method, file, line, inlined_at)
440
- end
441
-
442
437
# module providing the IR object model
443
438
module IR
444
- export CodeInfo, MethodInstance, GotoNode, LabelNode,
439
+ export CodeInfo, MethodInstance, GotoNode,
445
440
NewvarNode, SSAValue, Slot, SlotNumber, TypedSlot,
446
441
PiNode, PhiNode, PhiCNode, UpsilonNode, LineInfoNode
447
442
448
- import Core: CodeInfo, MethodInstance, GotoNode, LabelNode,
443
+ import Core: CodeInfo, MethodInstance, GotoNode,
449
444
NewvarNode, SSAValue, Slot, SlotNumber, TypedSlot,
450
445
PiNode, PhiNode, PhiCNode, UpsilonNode, LineInfoNode
451
446
0 commit comments