Closed yihozhang closed 9 months ago
Why does this PR require using a set? Not sure what it is used for yet.
Could you do a relation (relation ExprUsesVar (Expr Expr))
?
There are several reasons for this:
FV
of all free variables of an expression, and add FV
to the input context of let-inlining
. Collecting all values of a column in a container is less straightforward than just having a set
as output.ExprUsesArgs
should be set-intersect
, otherwise a constant may use variables if it is merged with x-x
, etc. relation
cannot do this.So this is more like a ExprAlwaysUsesArgs
analysis? As in, it uses these arguments in all equivalent versions?
I think we decided to close this, since we are changing it to extract a particular term that uses a particular set of arguments.
This analysis returns a set of variables used by an expression. Users of this analysis need to explicitly place demands on the expression they want to run this analysis on.