The GitHub Actions job "Lint" on tvm.git/tflite-range-dynamic-19412 has succeeded. Run started by GitHub user Aharrypotter (triggered by Aharrypotter).
Head commit for run: c1282345738bd0d21e64aa10e77e36120851ade5 / Aharrypotter <[email protected]> [Relax][Frontend][TFLite] Support dynamic RANGE scalar bounds Previously convert_range raised OpNotImplemented when start/limit/delta were runtime (non-constant) scalar tensors, so any TFLite model that computes RANGE bounds at runtime failed to import. This was one of the "partial implementation" items tracked in apache/tvm#19412. relax.op.arange only takes compile-time PrimExpr bounds, and its struct-info length formula (InferTypeArange) has no negative-step branch, so feeding symbolic bounds straight in would mis-declare descending ranges. Instead, compute the element count in-graph and lift it to one symbolic output dimension via relax.op.tensor_to_shape + match_cast (the bridge already used by _get_shape_expr_from_tensor), so the declared and runtime lengths match by construction. Values are rebuilt as arange(0, count) * delta + start. One unified path covers both dtypes: - int: count = -floor_divide(start - limit, delta), exact and sign-agnostic (no float-precision loss), equal to ceil((limit - start) / delta); - float: count = ceil((limit - start) / delta). No new Relax op is needed. Replace the "not supported" test with a compile-and-run test covering ascending/descending integer and float dynamic bounds. Report URL: https://github.com/apache/tvm/actions/runs/28070582897 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
