|
|
|
@ -194,7 +194,8 @@ void MemoryOptimizePass::SubGraphOptimize(OpDesc* op_desc) const {
|
|
|
|
|
// effect. Because it is a single op in graph. No need to
|
|
|
|
|
// update the ir nodes.
|
|
|
|
|
sub_op_desc->Rename(var->Name(), cache->Name());
|
|
|
|
|
if (sub_op_desc->Block()->HasVar(var->Name())) {
|
|
|
|
|
if (sub_op_desc->Block() != nullptr &&
|
|
|
|
|
sub_op_desc->Block()->HasVar(var->Name())) {
|
|
|
|
|
sub_op_desc->Block()->RemoveVar(var->Name());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -235,7 +236,13 @@ void MemoryOptimizePass::RenameVarInGraphDesc(const std::string& var,
|
|
|
|
|
auto* op_desc = op->Op();
|
|
|
|
|
op_desc->RenameInput(var, cache_var);
|
|
|
|
|
op_desc->RenameOutput(var, cache_var);
|
|
|
|
|
if (op_desc->Block()->HasVar(var)) op_desc->Block()->RemoveVar(var);
|
|
|
|
|
if (op_desc->Block() != nullptr) {
|
|
|
|
|
op_desc->Block()->RemoveVar(var);
|
|
|
|
|
} else {
|
|
|
|
|
LOG(WARNING) << "op " << op->Name() << " not know its block."
|
|
|
|
|
<< "Is the op_desc created without block pointer? "
|
|
|
|
|
<< "Can not find " << var << " in Block(0)";
|
|
|
|
|
}
|
|
|
|
|
op_desc->Flush();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|