120812e9ac
This PR lets Relax expressions directly take `PrimExpr` values without requiring the explicit `PrimValue` wrapper, continuing the Relax IR unification work by removing Relax-specific leaf/base expression layers. Summary: - Remove `LeafExpr` / `LeafExprNode` and use direct expression-node checks where needed. - Converge Relax expression typing onto the shared IR `Expr` base. - Remove the `PrimValue` node wrapper while keeping `relax.prim_value` / `R.prim_value` as conversion helpers that return existing `PrimExpr` values unchanged. - Register direct `PrimExpr` handling through exact concrete node dispatch, aligned with the `tirx` expression visitor list and excluding arith iter-map intermediate nodes. - Inline the private Python primitive conversion helper into public `relax.prim_value`. - Handle direct `PrimExpr` values in frontend scalar paths without assuming a `.value` field on non-immediate expressions.