This repository was archived by the owner on Nov 17, 2025. It is now read-only.
Use a -1 non-broadcastable constraint encoding for static shapes
#1280
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR investigates the use of a
-1static shape value encoding to indicate that a dimension's shape value is not equal to one (per #1122).Integers
sare used to encode static shape constraints as follows:s <= -2: the least amount of shape information (currentlyNone)s == -1: the shape is not equal to one-1 < s: the most amount of shape information (i.e. the shape is strictly equal tos)In its current form, this PR adds a
TensorType.shape_encodedattribute and converts the oldTensorType.shapeinto a computed property that simply converts the non-exact constraints (i.e.s < 0) toNone.TensorType.broadcastable(especially when used asTensorTypeconstructor arguments)The
broadcastableargument to theTensorTypeconstructor was removed and strict non-booltype checks were added in order to find all the places whereTrue/Falsevalues are being used as shape values. This means that a lot of the tests will fail until those are all fixed.Basically, this PR is also serving as an investigation into all the logic that still relies on
TensorType.broadcastable.TensorType.broadcastablewithTensorType.shape#1297