csharpfftfsharpintegrationinterpolationlinear-algebramathdifferentiationmatrixnumericsrandomregressionstatisticsmathnet
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.0 KiB
54 lines
2.0 KiB
// (c) Microsoft Corporation. All rights reserved
|
|
|
|
#light
|
|
|
|
module Microsoft.FSharp.Compiler.Opt
|
|
|
|
open Internal.Utilities
|
|
open Internal.Utilities.Pervasives
|
|
open Microsoft.FSharp.Compiler
|
|
open Microsoft.FSharp.Compiler.AbstractIL
|
|
open Microsoft.FSharp.Compiler.AbstractIL.Internal
|
|
|
|
type OptimizationSettings =
|
|
{ abstractBigTargets : bool
|
|
jitOptUser : bool option
|
|
localOptUser : bool option
|
|
crossModuleOptUser : bool option
|
|
bigTargetSize : int
|
|
veryBigExprSize : int
|
|
lambdaInlineThreshold : int
|
|
reportingPhase : bool;
|
|
reportNoNeedToTailcall: bool
|
|
reportFunctionSizes : bool
|
|
reportHasEffect : bool
|
|
reportTotalSizes : bool }
|
|
|
|
member jitOpt : unit -> bool
|
|
member localOpt : unit -> bool
|
|
static member Defaults : OptimizationSettings
|
|
|
|
/// Optimization information
|
|
type ModuleInfo
|
|
type LazyModuleInfo = ModuleInfo Lazy.t
|
|
|
|
type IncrementalOptimizationEnv
|
|
val internal empty_env : IncrementalOptimizationEnv
|
|
|
|
/// For building optimization environments incrementally
|
|
val internal BindCcu : Tast.ccu -> LazyModuleInfo -> IncrementalOptimizationEnv -> IncrementalOptimizationEnv
|
|
|
|
/// The entry point. Boolean indicates 'incremental extension' in FSI
|
|
val internal OptimizeImplFile : OptimizationSettings * Tast.ccu (* scope *) * Env.TcGlobals * Import.ImportMap * IncrementalOptimizationEnv * bool * Tast.TypedImplFile -> IncrementalOptimizationEnv * Tast.TypedImplFile * LazyModuleInfo
|
|
|
|
/// Displaying optimization data
|
|
val internal moduleInfoL : LazyModuleInfo -> Layout.layout
|
|
|
|
/// Saving and re-reading optimization information
|
|
val p_lazy_modul_info : LazyModuleInfo -> Pickle.WriterState -> unit
|
|
val internal u_lazy_modul_info : Pickle.ReaderState -> LazyModuleInfo
|
|
|
|
/// Rewrite the modul info using the export remapping
|
|
val RemapLazyModulInfo : Env.TcGlobals -> Tastops.Remap -> (LazyModuleInfo -> LazyModuleInfo)
|
|
val AbstractLazyModulInfoToEssentials : (LazyModuleInfo -> LazyModuleInfo)
|
|
val UnionModuleInfos: LazyModuleInfo list -> LazyModuleInfo
|
|
|