#pragma once
#include <torch/csrc/jit/ir/ir.h>
namespace torch {
namespace jit {
// propagate autograd zero information through a gradient graph and
// remove grad_of blocks if present.
// Note: this is a very limited pass. It only propagates autograd zeros for
// operations generated by the symbolic autodiff code and cleans up
// AutogradAdds when possible. Outputs of other nodes are conservatively
// marked Unknown and not optimized.
TORCH_API void specializeAutogradZero(std::shared_ptr<Graph> g);
struct ProfilingRecord;
TORCH_API void InsertProfileNodesForSpecializeAutogradZero(ProfilingRecord* pr);
} // namespace jit
} // namespace torch