Skip to content

Generator argument caller-walk is k-CFA-depth-bounded, missing values constructed more than k frames up #597

Description

@khatchad

Context

The generator argument-resolution fallback getArgumentDTypesViaCallers / getArgumentShapesViaCallers (in TensorGenerator) recovers an argument's type by reading this.getNode()'s CallString context and inspecting the calling invoke's argument. It is the fallback used when the summary-local points-to set is empty. Roughly ten generators rely on it: Identity, MatMul, Sigmoid, Softmax, Where, Variable, Gradient, StopGradient, SoftmaxCrossEntropy, DatasetFromTensorSlices.

Limitation

The CallString is bounded by the k-CFA depth (typically 1-2). When the argument's producing value is constructed more than k frames above the generator's node and threaded down through parameters, the construction site is not in the call string, so the walk recovers nothing and the result degrades to ⊤ / UNKNOWN.

Status

Latent: no current fixture triggers it. Known cases are either within k frames, or fail for a different root cause (e.g. #570, where the value has no points-to set at all, independent of depth). Filed to track the ceiling so it is not rediscovered case-by-case.

Notes

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions