Skip to content

[Relax][VM] Improve diagnostics for unlowered Relax operators#19899

Draft
Kevin-Li-2025 wants to merge 1 commit into
apache:mainfrom
Kevin-Li-2025:kevin/fail-loud-conv-transpose-legalize
Draft

[Relax][VM] Improve diagnostics for unlowered Relax operators#19899
Kevin-Li-2025 wants to merge 1 commit into
apache:mainfrom
Kevin-Li-2025:kevin/fail-loud-conv-transpose-legalize

Conversation

@Kevin-Li-2025

Copy link
Copy Markdown
Contributor

What changed

This improves the diagnostics emitted when VM codegen sees a normal Relax operator that was not lowered before codegen.

  • Include actionable guidance in both VM and VMTIR codegen errors.
  • Print the full offending Relax call, including attributes, instead of only the operator name.
  • Add VM build coverage using an unsupported relax.nn.conv2d_transpose layout so the diagnostic exposes the layout attributes.

Why

Issue #19694 reports that unsupported conv{1,2,3}d_transpose attributes can pass through legalization and later fail with an opaque VM codegen error:

CodeGenVM cannot handle this intrinsic now:
Op(relax.nn.conv2d_transpose)

Recent upstream work added dilation support, while the layout/out-layout passthrough remains useful for external codegen flows. This PR keeps that legalization behavior unchanged, but makes the eventual VM codegen failure actionable by showing the exact unlowered call and attributes.

Validation

  • git diff --check
  • PYTHONDONTWRITEBYTECODE=1 /Users/yinxiaogou/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/bin/python3 -m py_compile tests/python/relax/test_transform_legalize_ops_nn.py tests/python/relax/test_vm_build.py

Not run locally: the targeted pytest, because this checkout does not have a built/importable TVM package available. CI should validate the new VM build test.

Helps #19694.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request improves the error messages in CodeGenVM and CodeGenVMTIR when encountering an unlowered Relax operator, providing clearer guidance on how to resolve the issue and printing the offending call. A unit test has also been added to verify this error behavior. There are no review comments, so I have no feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant