@@ -281,7 +281,8 @@ macro _foldable_meta()
281281        #= :terminates_locally=# false ,
282282        #= :notaskstate=# true ,
283283        #= :inaccessiblememonly=# true ,
284-         #= :noub=# true ))
284+         #= :noub=# true ,
285+         #= :noub_if_noinbounds=# false ))
285286end 
286287
287288macro  inline ()   Expr (:meta , :inline )   end 
@@ -412,6 +413,8 @@ struct InitError <: WrappedException
412413    error
413414end 
414415
416+ struct  PrecompilableError <:  Exception  end 
417+ 
415418String (s:: String ) =  s  #  no constructor yet
416419
417420const  Cvoid =  Nothing
@@ -456,6 +459,7 @@ eval(Core, quote
456459    ReturnNode (@nospecialize  val) =  $ (Expr (:new , :ReturnNode , :val ))
457460    ReturnNode () =  $ (Expr (:new , :ReturnNode )) #  unassigned val indicates unreachable
458461    GotoIfNot (@nospecialize (cond), dest:: Int ) =  $ (Expr (:new , :GotoIfNot , :cond , :dest ))
462+     EnterNode (dest:: Int ) =  $ (Expr (:new , :EnterNode , :dest ))
459463    LineNumberNode (l:: Int ) =  $ (Expr (:new , :LineNumberNode , :l , nothing ))
460464    function  LineNumberNode (l:: Int , @nospecialize (f))
461465        isa (f, String) &&  (f =  Symbol (f))
@@ -478,14 +482,14 @@ eval(Core, quote
478482end )
479483
480484function  CodeInstance (
481-     mi:: MethodInstance , @nospecialize (rettype), @nospecialize (inferred_const),
485+     mi:: MethodInstance , @nospecialize (rettype), @nospecialize (exctype),  @nospecialize ( inferred_const),
482486    @nospecialize (inferred), const_flags:: Int32 , min_world:: UInt , max_world:: UInt ,
483-     ipo_effects:: UInt32 , effects:: UInt32 , @nospecialize (argescapes #= ::Union{Nothing,Vector{ArgEscapeInfo}} =# 
487+     ipo_effects:: UInt32 , effects:: UInt32 , @nospecialize (analysis_results ),
484488    relocatability:: UInt8 )
485489    return  ccall (:jl_new_codeinst , Ref{CodeInstance},
486-         (Any, Any, Any, Any, Int32, UInt, UInt, UInt32, UInt32, Any, UInt8),
487-         mi, rettype, inferred_const, inferred, const_flags, min_world, max_world,
488-         ipo_effects, effects, argescapes ,
490+         (Any, Any, Any, Any, Any,  Int32, UInt, UInt, UInt32, UInt32, Any, UInt8),
491+         mi, rettype, exctype,  inferred_const, inferred, const_flags, min_world, max_world,
492+         ipo_effects, effects, analysis_results ,
489493        relocatability)
490494end 
491495GlobalRef (m:: Module , s:: Symbol ) =  ccall (:jl_module_globalref , Ref{GlobalRef}, (Any, Any), m, s)
@@ -623,12 +627,12 @@ module IR
623627export  CodeInfo, MethodInstance, CodeInstance, GotoNode, GotoIfNot, ReturnNode,
624628    NewvarNode, SSAValue, SlotNumber, Argument,
625629    PiNode, PhiNode, PhiCNode, UpsilonNode, LineInfoNode,
626-     Const, PartialStruct, InterConditional
630+     Const, PartialStruct, InterConditional, EnterNode 
627631
628632using  Core:  CodeInfo, MethodInstance, CodeInstance, GotoNode, GotoIfNot, ReturnNode,
629633    NewvarNode, SSAValue, SlotNumber, Argument,
630634    PiNode, PhiNode, PhiCNode, UpsilonNode, LineInfoNode,
631-     Const, PartialStruct, InterConditional
635+     Const, PartialStruct, InterConditional, EnterNode 
632636
633637end  #  module IR
634638
@@ -953,7 +957,6 @@ function _hasmethod(@nospecialize(tt)) # this function has a special tfunc
953957    return  Intrinsics. not_int (ccall (:jl_gf_invoke_lookup , Any, (Any, Any, UInt), tt, nothing , world) ===  nothing )
954958end 
955959
956- 
957960#  for backward compat
958961arrayref (inbounds:: Bool , A:: Array , i:: Int... ) =  Main. Base. getindex (A, i... )
959962const_arrayref (inbounds:: Bool , A:: Array , i:: Int... ) =  Main. Base. getindex (A, i... )
@@ -962,4 +965,9 @@ arraysize(a::Array) = a.size
962965arraysize (a:: Array , i:: Int ) =  sle_int (i, nfields (a. size)) ?  getfield (a. size, i) :  1 
963966export  arrayref, arrayset, arraysize, const_arrayref
964967
968+ #  For convenience
969+ EnterNode (old:: EnterNode , new_dest:: Int ) =  EnterNode (new_dest)
970+ 
971+ include (Core, " optimized_generics.jl" 
972+ 
965973ccall (:jl_set_istopmod , Cvoid, (Any, Bool), Core, true )
0 commit comments