Skip to content

Commit 888be4c

Browse files
committed
Rename insert_node_here macro to insert_instruction
1 parent 194ceab commit 888be4c

File tree

7 files changed

+74
-74
lines changed

7 files changed

+74
-74
lines changed

src/DAECompiler.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ module DAECompiler
66
using Diffractor
77
using OrderedCollections
88
using Compiler
9-
using Compiler: IRCode, IncrementalCompact, DebugInfoStream, argextype, singleton_type, isexpr, widenconst
9+
using Compiler: IRCode, IncrementalCompact, DebugInfoStream, NewInstruction, argextype, singleton_type, isexpr, widenconst
1010
using Core.IR
1111
using SciMLBase
1212
using AutoHashEquals
1313
using LinearAlgebra: LinearAlgebra
1414
using InteractiveUtils: gen_call_with_extracted_types_and_kwargs
1515

16+
include("settings.jl")
1617
include("utils.jl")
1718
include("intrinsics.jl")
18-
include("settings.jl")
1919
include("analysis/utils.jl")
2020
include("analysis/lattice.jl")
2121
include("analysis/ADAnalyzer.jl")

src/analysis/flattening.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function _flatten_parameter!(𝕃, compact, argtypes, ntharg, line, settings)
1818
continue
1919
end
2020
this = ntharg(argn)
21-
nthfield(i) = @insert_node_here compact line settings getfield(this, i)::Compiler.getfield_tfunc(𝕃, argextype(this, compact), Const(i))
21+
nthfield(i) = @insert_instruction compact line settings getfield(this, i)::Compiler.getfield_tfunc(𝕃, argextype(this, compact), Const(i))
2222
if isa(argt, PartialStruct)
2323
fields = _flatten_parameter!(𝕃, compact, argt.fields, nthfield, line, settings)
2424
else
@@ -31,7 +31,7 @@ function _flatten_parameter!(𝕃, compact, argtypes, ntharg, line, settings)
3131
end
3232

3333
function flatten_parameter!(𝕃, compact, argtypes, ntharg, line, settings)
34-
return @insert_node_here compact line settings tuple(_flatten_parameter!(𝕃, compact, argtypes, ntharg, line, settings)...)::Tuple
34+
return @insert_instruction compact line settings tuple(_flatten_parameter!(𝕃, compact, argtypes, ntharg, line, settings)...)::Tuple
3535
end
3636

3737
# Needs to match flatten_arguments!
@@ -85,23 +85,23 @@ function flatten_argument!(compact::Compiler.IncrementalCompact, settings::Setti
8585
return TransformedArg(Argument(offset+1), offset+1, eqoffset)
8686
elseif argt === equation
8787
line = compact[Compiler.OldSSAValue(1)][:line]
88-
ssa = @insert_node_here compact line settings (:invoke)(nothing, InternalIntrinsics.external_equation)::Eq(eqoffset+1)
88+
ssa = @insert_instruction compact line settings (:invoke)(nothing, InternalIntrinsics.external_equation)::Eq(eqoffset+1)
8989
return TransformedArg(ssa, offset, eqoffset+1)
9090
elseif isabstracttype(argt) || ismutabletype(argt) || (!isa(argt, DataType) && !isa(argt, PartialStruct))
9191
line = compact[Compiler.OldSSAValue(1)][:line]
92-
ssa = @insert_node_here compact line settings error("Cannot IPO model arg type $argt")::Union{}
92+
ssa = @insert_instruction compact line settings error("Cannot IPO model arg type $argt")::Union{}
9393
return TransformedArg(ssa, -1, eqoffset)
9494
else
9595
if !isa(argt, PartialStruct) && Base.datatype_fieldcount(argt) === nothing
9696
line = compact[Compiler.OldSSAValue(1)][:line]
97-
ssa = @insert_node_here compact line settings error("Cannot IPO model arg type $argt")::Union{}
97+
ssa = @insert_instruction compact line settings error("Cannot IPO model arg type $argt")::Union{}
9898
return TransformedArg(ssa, -1, eqoffset)
9999
end
100100
(args, _, offset) = flatten_arguments!(compact, settings, isa(argt, PartialStruct) ? argt.fields : collect(Any, fieldtypes(argt)), offset, eqoffset, argtypes)
101101
offset == -1 && return TransformedArg(ssa, -1, eqoffset)
102102
this = Expr(:new, isa(argt, PartialStruct) ? argt.typ : argt, args...)
103103
line = compact[Compiler.OldSSAValue(1)][:line]
104-
ssa = @insert_node_here compact line settings this::argt
104+
ssa = @insert_instruction compact line settings this::argt
105105
return TransformedArg(ssa, offset, eqoffset)
106106
end
107107
end

src/transform/codegen/dae_factory.jl

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ function sciml_dae_split_u!(compact, line, settings, arg, numstates)
88
nassgn = numstates[AssignedDiff]
99
ntotalstates = numstates[AssignedDiff] + numstates[UnassignedDiff] + numstates[Algebraic]
1010

11-
u_mm = @insert_node_here compact line settings view(arg, 1:nassgn)::VectorViewType
12-
u_unassgn = @insert_node_here compact line settings view(arg, (nassgn+1):(nassgn+numstates[UnassignedDiff]))::VectorViewType
13-
alg = @insert_node_here compact line settings view(arg, (nassgn+numstates[UnassignedDiff]+1):ntotalstates)::VectorViewType
11+
u_mm = @insert_instruction compact line settings view(arg, 1:nassgn)::VectorViewType
12+
u_unassgn = @insert_instruction compact line settings view(arg, (nassgn+1):(nassgn+numstates[UnassignedDiff]))::VectorViewType
13+
alg = @insert_instruction compact line settings view(arg, (nassgn+numstates[UnassignedDiff]+1):ntotalstates)::VectorViewType
1414

1515
return (u_mm, u_unassgn, alg)
1616
end
@@ -25,8 +25,8 @@ function sciml_dae_split_du!(compact, line, settings, arg, numstates)
2525
nassgn = numstates[AssignedDiff]
2626
ntotalstates = numstates[AssignedDiff] + numstates[UnassignedDiff] + numstates[Algebraic]
2727

28-
in_du_assgn = @insert_node_here compact line settings view(arg, 1:nassgn)::VectorViewType
29-
in_du_unassgn = @insert_node_here compact line settings view(arg, (nassgn+1):(nassgn+numstates[UnassignedDiff]))::VectorViewType
28+
in_du_assgn = @insert_instruction compact line settings view(arg, 1:nassgn)::VectorViewType
29+
in_du_unassgn = @insert_instruction compact line settings view(arg, (nassgn+1):(nassgn+numstates[UnassignedDiff]))::VectorViewType
3030

3131
return (in_du_assgn, in_du_unassgn)
3232
end
@@ -74,7 +74,7 @@ function dae_factory_gen(state::TransformationState, ci::CodeInstance, key::Torn
7474

7575
line = result.ir[SSAValue(1)][:line]
7676
param_list = flatten_parameter!(Compiler.fallback_lattice, compact, ci.inferred.ir.argtypes[1:end], argn->Argument(2+argn), line, settings)
77-
sicm = @insert_node_here compact line settings invoke(param_list, sicm_ci)::Tuple
77+
sicm = @insert_instruction compact line settings invoke(param_list, sicm_ci)::Tuple
7878
else
7979
sicm = ()
8080
end
@@ -110,22 +110,22 @@ function dae_factory_gen(state::TransformationState, ci::CodeInstance, key::Torn
110110

111111
# Zero the output
112112
line = ir_oc[SSAValue(1)][:line]
113-
@insert_node_here oc_compact line settings zero!(Argument(2))::VectorViewType
113+
@insert_instruction oc_compact line settings zero!(Argument(2))::VectorViewType
114114

115115
# out_du_mm, out_eq, in_u_mm, in_u_unassgn, in_du_unassgn, in_alg
116116
nassgn = numstates[AssignedDiff]
117117
ntotalstates = numstates[AssignedDiff] + numstates[UnassignedDiff] + numstates[Algebraic]
118-
out_du_mm = @insert_node_here oc_compact line settings view(Argument(2), 1:nassgn)::VectorViewType
119-
out_eq = @insert_node_here oc_compact line settings view(Argument(2), (nassgn+1):ntotalstates)::VectorViewType
118+
out_du_mm = @insert_instruction oc_compact line settings view(Argument(2), 1:nassgn)::VectorViewType
119+
out_eq = @insert_instruction oc_compact line settings view(Argument(2), (nassgn+1):ntotalstates)::VectorViewType
120120

121121
(in_du_assgn, in_du_unassgn) = sciml_dae_split_du!(oc_compact, line, settings, Argument(3), numstates)
122122
(in_u_mm, in_u_unassgn, in_alg) = sciml_dae_split_u!(oc_compact, line, settings, Argument(4), numstates)
123123

124124
# Call DAECompiler-generated RHS with internal ABI
125-
oc_sicm = @insert_node_here oc_compact line settings getfield(Argument(1), 1)::Core.OpaqueClosure
125+
oc_sicm = @insert_instruction oc_compact line settings getfield(Argument(1), 1)::Core.OpaqueClosure
126126

127127
# N.B: The ordering of arguments should match the ordering in the StateKind enum
128-
@insert_node_here oc_compact line settings (:invoke)(daef_ci, oc_sicm, (), in_u_mm, in_u_unassgn, in_du_unassgn, in_alg, out_du_mm, out_eq, Argument(6))::Nothing
128+
@insert_instruction oc_compact line settings (:invoke)(daef_ci, oc_sicm, (), in_u_mm, in_u_unassgn, in_du_unassgn, in_alg, out_du_mm, out_eq, Argument(6))::Nothing
129129

130130
# TODO: We should not have to recompute this here
131131
var_eq_matching = matching_for_key(state, key)
@@ -146,15 +146,15 @@ function dae_factory_gen(state::TransformationState, ci::CodeInstance, key::Torn
146146
@assert kind == AssignedDiff
147147
@assert dkind in (AssignedDiff, UnassignedDiff)
148148

149-
v_val = @insert_node_here oc_compact line settings getindex(dkind == AssignedDiff ? in_u_mm : in_u_unassgn, dslot)::Any
150-
@insert_node_here oc_compact line settings setindex!(out_du_mm, v_val, slot)::Any
149+
v_val = @insert_instruction oc_compact line settings getindex(dkind == AssignedDiff ? in_u_mm : in_u_unassgn, dslot)::Any
150+
@insert_instruction oc_compact line settings setindex!(out_du_mm, v_val, slot)::Any
151151
end
152152

153-
bc = @insert_node_here oc_compact line settings Base.Broadcast.broadcasted(-, out_du_mm, in_du_assgn)::Any
154-
@insert_node_here oc_compact line settings Base.Broadcast.materialize!(out_du_mm, bc)::Nothing
153+
bc = @insert_instruction oc_compact line settings Base.Broadcast.broadcasted(-, out_du_mm, in_du_assgn)::Any
154+
@insert_instruction oc_compact line settings Base.Broadcast.materialize!(out_du_mm, bc)::Nothing
155155

156156
# Return
157-
@insert_node_here oc_compact line settings (return nothing)::Union{}
157+
@insert_instruction oc_compact line settings (return nothing)::Union{}
158158

159159
ir_oc = Compiler.finish(oc_compact)
160160
maybe_rewrite_debuginfo!(ir_oc, settings)
@@ -171,21 +171,21 @@ function dae_factory_gen(state::TransformationState, ci::CodeInstance, key::Torn
171171
@atomic oc_ci.max_world = @atomic ci.max_world
172172
@atomic oc_ci.min_world = 1 # @atomic ci.min_world
173173

174-
new_oc = @insert_node_here compact line settings (:new_opaque_closure)(argt, Union{}, Nothing, true, oc_source_method, sicm)::Core.OpaqueClosure true
174+
new_oc = @insert_instruction compact line settings (:new_opaque_closure)(argt, Union{}, Nothing, true, oc_source_method, sicm)::Core.OpaqueClosure true
175175

176176
differential_states = Bool[v in key.diff_states for v in all_states]
177177

178178
if init_key !== nothing
179179
initf = init_uncompress_gen!(compact, result, ci, init_key, key, world, settings)
180-
daef = @insert_node_here compact line settings make_daefunction(new_oc, initf)::DAEFunction true
180+
daef = @insert_instruction compact line settings make_daefunction(new_oc, initf)::DAEFunction true
181181
else
182-
daef = @insert_node_here compact line settings make_daefunction(new_oc)::DAEFunction true
182+
daef = @insert_instruction compact line settings make_daefunction(new_oc)::DAEFunction true
183183
end
184184

185185
# TODO: Ideally, this'd be in DAEFunction
186-
daef_and_diff = @insert_node_here compact line settings tuple(daef, differential_states)::Tuple true
186+
daef_and_diff = @insert_instruction compact line settings tuple(daef, differential_states)::Tuple true
187187

188-
@insert_node_here compact line settings (return daef_and_diff)::Tuple true
188+
@insert_instruction compact line settings (return daef_and_diff)::Tuple true
189189

190190
ir_factory = Compiler.finish(compact)
191191
resize!(ir_factory.cfg.blocks, 1)

src/transform/codegen/init_factory.jl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ function init_uncompress_gen(result::DAEIPOResult, ci::CodeInstance, init_key::T
77

88
new_oc = init_uncompress_gen!(compact, result, ci, init_key, diff_key, world, settings)
99
line = result.ir[SSAValue(1)][:line]
10-
@insert_node_here compact line settings (return new_oc)::Core.OpaqueClosure true
10+
@insert_instruction compact line settings (return new_oc)::Core.OpaqueClosure true
1111

1212
ir_factory = Compiler.finish(compact)
1313
Compiler.verify_ir(ir_factory)
@@ -28,7 +28,7 @@ function init_uncompress_gen!(compact::Compiler.IncrementalCompact, result::DAEI
2828

2929
line = result.ir[SSAValue(1)][:line]
3030
param_list = flatten_parameter!(Compiler.fallback_lattice, compact, ci.inferred.ir.argtypes[1:end], argn->Argument(2+argn), line, settings)
31-
sicm = @insert_node_here compact line settings invoke(param_list, sicm_ci)::Tuple
31+
sicm = @insert_instruction compact line settings invoke(param_list, sicm_ci)::Tuple
3232
else
3333
sicm = ()
3434
end
@@ -61,13 +61,13 @@ function init_uncompress_gen!(compact::Compiler.IncrementalCompact, result::DAEI
6161

6262
# Zero the output
6363
nout = numstates[UnassignedDiff] + numstates[AssignedDiff]
64-
out_arr = @insert_node_here oc_compact line settings zeros(nout)::Vector{Float64}
64+
out_arr = @insert_instruction oc_compact line settings zeros(nout)::Vector{Float64}
6565

6666
nscratch = numstates[Algebraic] + numstates[AlgebraicDerivative]
67-
scratch_arr = @insert_node_here oc_compact line settings zeros(nout)::Vector{Float64}
67+
scratch_arr = @insert_instruction oc_compact line settings zeros(nout)::Vector{Float64}
6868

6969
# Get the solution vector out of the solution object
70-
in_nlsol_u = @insert_node_here oc_compact line settings getproperty(Argument(2), QuoteNode(:u0))::Vector{Float64}
70+
in_nlsol_u = @insert_instruction oc_compact line settings getproperty(Argument(2), QuoteNode(:u0))::Vector{Float64}
7171

7272
# Adapt to DAECompiler ABI
7373
nassgn = numstates[AssignedDiff]
@@ -77,11 +77,11 @@ function init_uncompress_gen!(compact::Compiler.IncrementalCompact, result::DAEI
7777
(out_du_unassgn, _) = sciml_dae_split_du!(oc_compact, line, settings, scratch_arr, numstates)
7878

7979
# Call DAECompiler-generated RHS with internal ABI
80-
oc_sicm = @insert_node_here oc_compact line settings getfield(Argument(1), 1)::Core.OpaqueClosure
81-
@insert_node_here oc_compact line settings (:invoke)(daef_ci, oc_sicm, (), out_u_mm, out_u_unassgn, out_du_unassgn, out_alg, in_nlsol_u, 0.0)::Nothing
80+
oc_sicm = @insert_instruction oc_compact line settings getfield(Argument(1), 1)::Core.OpaqueClosure
81+
@insert_instruction oc_compact line settings (:invoke)(daef_ci, oc_sicm, (), out_u_mm, out_u_unassgn, out_du_unassgn, out_alg, in_nlsol_u, 0.0)::Nothing
8282

8383
# Return
84-
@insert_node_here oc_compact line settings (return out_arr)::Vector{Float64}
84+
@insert_instruction oc_compact line settings (return out_arr)::Vector{Float64}
8585

8686
ir_oc = Compiler.finish(oc_compact)
8787
oc = Core.OpaqueClosure(ir_oc)
@@ -94,7 +94,7 @@ function init_uncompress_gen!(compact::Compiler.IncrementalCompact, result::DAEI
9494
@atomic oc_ci.max_world = @atomic ci.max_world
9595
@atomic oc_ci.min_world = 1 # @atomic ci.min_world
9696

97-
new_oc = @insert_node_here compact line settings (:new_opaque_closure)(
97+
new_oc = @insert_instruction compact line settings (:new_opaque_closure)(
9898
argt, Vector{Float64}, Vector{Float64}, true, oc_source_method, sicm)::Core.OpaqueClosure true
9999

100100
return new_oc

0 commit comments

Comments
 (0)