@@ -861,6 +861,12 @@ function tearing_schedule!(state::TransformationState, ci::CodeInstance, key::To
861861 callee_position_map[sref] = SSAValue (i)
862862 callee_key = project_mapping (state, info, key, var_eq_matching, total_incidence; callee_var_schedule)
863863
864+ callee_codeinst = stmt. args[1 ][2 ]
865+ if isa (callee_codeinst, MethodInstance)
866+ callee_codeinst = Compiler. get (Compiler. code_cache (interp), callee_codeinst, nothing )
867+ end
868+ callee_result = structural_analysis! (callee_codeinst, world, settings)
869+
864870 if ! isempty (callee_key. explicit_eqs)
865871 vars_for_final = BitSet ()
866872 # TODO : This is a very expensive way to compute this - we should be able to do this cheaper
@@ -883,11 +889,6 @@ function tearing_schedule!(state::TransformationState, ci::CodeInstance, key::To
883889 continue
884890 end
885891
886- callee_codeinst = stmt. args[1 ][2 ]
887- if isa (callee_codeinst, MethodInstance)
888- callee_codeinst = Compiler. get (Compiler. code_cache (interp), callee_codeinst, nothing )
889- end
890- callee_result = structural_analysis! (callee_codeinst, world, settings)
891892 callee_sicm_ci = tearing_schedule! (callee_result, callee_codeinst, callee_key, world, settings)
892893
893894 inst[:type ] = Any
0 commit comments