The GitHub Actions job "Lint" on tvm.git/ir-mutator-with-analyzer-take-ref has 
failed.
Run started by GitHub user tlopex (triggered by tlopex).

Head commit for run:
c34d372170994766c7bbba9a1dd01baf39c5e08d / tlopex <[email protected]>
[Arith] Let IRMutatorWithAnalyzer take a const Analyzer&

After #19675 made arith::Analyzer an FFI object, IRMutatorWithAnalyzer and
its subclasses took AnalyzerObj*, forcing every instantiation site to pass
analyzer.get(). Migrate the IRMutatorWithAnalyzer family to accept the
Analyzer handle directly.

Changes:
- IRMutatorWithAnalyzer gains a `const Analyzer&` constructor overload. The
  existing `AnalyzerObj*` overload is kept on purpose: RewriteSimplifier::Impl
  is constructed from the AnalyzerObj's own `this` mid-construction, where no
  Analyzer handle exists yet and GetRef on a half-built, self-owned object
  would be unsafe / form an ownership cycle.
- The directly-instantiated subclass constructors switch AnalyzerObj* ->
  const Analyzer&, dropping analyzer.get() at their call sites.
- For the factory-style subclasses (NoOpRemover, StmtSimplifier) the
  construction happens inside their static Apply()/free-function entry points,
  so those internal (src/, non-FFI, non-public) signatures move to
  const Analyzer& as well -- StmtSimplify(), RemoveNoOp() and
  BlockBufferAccessSimplifier::Simplify() -- removing analyzer.get() at the
  remaining call sites.

Deliberately left as AnalyzerObj*:
- The per-sub-analyzer `AnalyzerObj* parent` constructors (ConstIntBound,
  ModularSet, IntSet, Canonical, RewriteSimplifier): AnalyzerObj owns them by
  value, so a strong back-reference would be a cycle.
- VTInjector: it is built from the inherited raw analyzer_ member and never
  wrote analyzer.get() to begin with.

The field stays `AnalyzerObj* analyzer_` (borrowed), so there is no extra
refcount and no ownership cycle. Because AnalyzerObj is _type_mutable, a
const Analyzer& still exposes a non-const operator->, so subclass bodies
(analyzer_->Bind(...)) are unchanged. No Python / FFI / public-header surface
changes; runtime behavior is identical.

Report URL: https://github.com/apache/tvm/actions/runs/27741900149

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to