# Copyright (c) Microsoft Corporation.# Licensed under the MIT License.from__future__importannotations__all__=["fold_constants","fold_constants_ir","remove_unused_nodes","optimize","optimize_ir","basic_constant_propagation","inline",]importonnximportonnxscript.optimizer._constant_foldingasconstant_foldingimportonnxscript.optimizer._legacy._optimizeraslegacy_optimizerimportonnxscript.optimizer._legacy.constant_foldingaslegacy_constant_foldingfromonnxscriptimportirfromonnxscript.optimizer._inlinerimportinlinefromonnxscript.optimizer._optimizerimportoptimize_irfromonnxscript.optimizer._remove_unusedimportremove_unused_nodesbasic_constant_propagation=constant_folding.basic_constant_propagationfold_constants_ir=constant_folding.fold_constants
[docs]defoptimize(model:ir.Model,*args,**kwargs)->ir.Model:ifisinstance(model,ir.Model):# In that case, this is done inplace.optimize_ir(model,*args,**kwargs)returnmodelelse:returnlegacy_optimizer.optimize(model,*args,**kwargs)