/// <summary> /// Creates a new loops analysis instance based on the given CFG. /// </summary> /// <typeparam name="TOrder">The underlying block order.</typeparam> /// <typeparam name="TDirection">The control-flow direction.</typeparam> /// <param name="cfg">The underlying CFG.</param> /// <returns>The created loops analysis.</returns> public static Loops <TOrder, TDirection> CreateLoops <TOrder, TDirection>( this CFG <TOrder, TDirection> cfg) where TOrder : struct, ITraversalOrder where TDirection : struct, IControlFlowDirection => Loops <TOrder, TDirection> .Create(cfg);