void initProfile(Function &fn) { const Profile profile = fn.getProfile(); switch (profile) { case PROFILE_C: GBE_ASSERTM(false, "Unsupported profile"); break; case PROFILE_OCL: ocl::init(fn); }; }
/*! Create a new register holding the given value. A LOADI is pushed */ template <typename T> INLINE Register immReg(T value) { GBE_ASSERTM(fn != NULL, "No function currently defined"); const Immediate imm(value); const ImmediateIndex index = fn->newImmediate(imm); const RegisterFamily family = getFamily(imm.getType()); const Register reg = this->reg(family); this->LOADI(imm.getType(), reg, index); return reg; }
/*! Make a tuple from an array of register */ INLINE Tuple arrayTuple(const Register *reg, uint32_t regNum) { GBE_ASSERTM(fn != NULL, "No function currently defined"); return fn->file.appendArrayTuple(reg, regNum); }
/*! Append a new tuple */ template <typename... Args> INLINE Tuple tuple(Args...args) { GBE_ASSERTM(fn != NULL, "No function currently defined"); return fn->file.appendTuple(args...); }