123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263(**************************************************************************)(* *)(* SPDX-License-Identifier LGPL-2.1 *)(* Copyright (C) *)(* CEA (Commissariat à l'énergie atomique et aux énergies alternatives) *)(* *)(**************************************************************************)includePlugin.Register(structletname="impact"letshortname="impact"lethelp="impact analysis"end)moduleAnnot=Kernel_function_set(structletoption_name="-impact-annot"letarg_name="f1, ..., fn"lethelp="use the impact annotations in the code of functions f1,...,fn"end)let()=Annot.add_aliases~visible:false~deprecated:true["-impact-pragma"]modulePrint=False(structletoption_name="-impact-print"lethelp="print the impacted stmt"end)moduleReason=False(structletoption_name="-impact-graph"lethelp="build a graph that explains why a statement is in the set \
of impacted nodes"end)moduleSlicing=False(structletoption_name="-impact-slicing"lethelp="slice from the impacted stmt"end)moduleSkip=String_set(structletarg_name="v1,...,vn"lethelp="consider that those variables are not impacted"letoption_name="-impact-skip"end)let()=Parameter_customize.set_negative_option_name"-impact-not-in-callers"moduleUpward=True(structletoption_name="-impact-in-callers"lethelp="compute compute impact in callers as well as in callees"end)letis_on()=not(Annot.is_empty())