This source file includes following definitions.
- loop_level
- loop_level
#include "ScheduleParam.h"
#include "ObjectInstanceRegistry.h"
namespace Halide {
namespace Internal {
ScheduleParamBase::ScheduleParamBase(const Type &t, const std::string &name, bool is_explicit_name)
: sp_name(name),
type(t),
scalar_parameter(t, false, 0, is_explicit_name ? name + ".schedule_param_param" : "",
is_explicit_name, false, true),
scalar_expr(Variable::make(t, scalar_parameter.name() + ".schedule_param_var", scalar_parameter)),
loop_level("__invalid_func_name", "__invalid_var_name", false) {
ObjectInstanceRegistry::register_instance(this, 0, ObjectInstanceRegistry::ScheduleParam, this, nullptr);
}
ScheduleParamBase::ScheduleParamBase(const ScheduleParamBase &that)
: sp_name(that.sp_name),
type(that.type),
scalar_parameter(that.scalar_parameter),
scalar_expr(that.scalar_expr),
loop_level(that.loop_level) {
ObjectInstanceRegistry::register_instance(this, 0, ObjectInstanceRegistry::ScheduleParam, this, nullptr);
}
ScheduleParamBase &ScheduleParamBase::operator=(const ScheduleParamBase &that) {
if (this != &that) {
internal_assert(type == that.type);
sp_name = that.sp_name;
type = that.type;
scalar_parameter = that.scalar_parameter;
scalar_expr = that.scalar_expr;
loop_level = that.loop_level;
}
return *this;
}
ScheduleParamBase::~ScheduleParamBase() {
ObjectInstanceRegistry::unregister_instance(this);
}
}
}