uint32_t Compiler::getPriority(Var& var) const noexcept { if (var.getId() == kInvalidValue) return kInvalidValue; VarData* vd = getVdById(var.getId()); return vd->getPriority(); }
bool Compiler::getSaveOnUnuse(Var& var) const noexcept { if (var.getId() == kInvalidValue) return false; VarData* vd = getVdById(var.getId()); return static_cast<bool>(vd->_saveOnUnuse); }
void Compiler::setSaveOnUnuse(Var& var, bool value) noexcept { if (var.getId() == kInvalidValue) return; VarData* vd = getVdById(var.getId()); vd->_saveOnUnuse = value; }
void X86Compiler::rename(Var& var, const char* name) { if (var.getId() == kInvalidValue) return; X86CompilerVar* vdata = _getVar(var.getId()); ASMJIT_ASSERT(vdata != NULL); vdata->_name = _zoneMemory.sdup(name); }
bool X86Compiler::getSaveOnUnuse(Var& var) const { if (var.getId() == kInvalidValue) return false; X86CompilerVar* vdata = _getVar(var.getId()); ASMJIT_ASSERT(vdata != NULL); return (bool)vdata->saveOnUnuse; }
void X86Compiler::setSaveOnUnuse(Var& var, bool value) { if (var.getId() == kInvalidValue) return; X86CompilerVar* vdata = _getVar(var.getId()); ASMJIT_ASSERT(vdata != NULL); vdata->saveOnUnuse = value; }
uint32_t X86Compiler::getPriority(Var& var) const { if (var.getId() == kInvalidValue) return kInvalidValue; X86CompilerVar* vdata = _getVar(var.getId()); ASMJIT_ASSERT(vdata != NULL); return vdata->getPriority(); }
void Compiler::setPriority(Var& var, uint32_t priority) noexcept { if (var.getId() == kInvalidValue) return; if (priority > 255) priority = 255; VarData* vd = getVdById(var.getId()); vd->_priority = static_cast<uint8_t>(priority); }
void Compiler::rename(Var& var, const char* name) { if (var.getId() == kInvalidValue) return; VarData* vd = getVdById(var.getId()); vd->_name = noName; if (name != NULL && name[0] != '\0') { vd->_name = _stringZone.sdup(name); } }
void X86Compiler::setPriority(Var& var, uint32_t priority) { if (var.getId() == kInvalidValue) return; X86CompilerVar* vdata = _getVar(var.getId()); ASMJIT_ASSERT(vdata != NULL); if (priority > 100) priority = 100; vdata->_priority = static_cast<uint8_t>(priority); }
void X86Compiler::_vhint(Var& var, uint32_t hintId, uint32_t hintValue) { if (var.getId() == kInvalidValue) return; X86CompilerVar* cv = _getVar(var.getId()); ASMJIT_ASSERT(cv != NULL); X86CompilerHint* item = Compiler_newItem<X86CompilerHint>(this, cv, hintId, hintValue); addItem(item); }
void bi::InputNetCDFBuffer::readMask0(const VarType type, Mask<ON_HOST>& mask) { typedef temp_host_matrix<real>::type temp_matrix_type; mask.resize(m.getNumVars(type), false); Var* var; int r; long start, len; /* sparse masks */ for (r = 0; r < int(recDims.size()); ++r) { if (timeVars[r] < 0) { BOOST_AUTO(range, modelVars.equal_range(r)); BOOST_AUTO(iter, range.first); BOOST_AUTO(end, range.second); start = 0; len = nc_inq_dimlen(ncid, recDims[r]); temp_matrix_type C(iter->second->getNumDims(), len); readCoords(coordVars[r], start, len, C); for (; iter != end; ++iter) { var = iter->second; if (var->getType() == type) { mask.addSparseMask(var->getId(), C.size2()); serialiseCoords(var, C, mask.getIndices(var->getId())); } } } } /* dense masks */ r = -1; // for those vars not associated with a record dimension BOOST_AUTO(range, modelVars.equal_range(r)); BOOST_AUTO(iter, range.first); BOOST_AUTO(end, range.second); for (; iter != end; ++iter) { var = iter->second; if (var->getType() == type) { mask.addDenseMask(var->getId(), var->getSize()); } } }
void bi::InputNetCDFBuffer::readMask(const size_t k, const VarType type, Mask<ON_HOST>& mask) { typedef temp_host_matrix<real>::type temp_matrix_type; mask.resize(m.getNumVars(type), false); Var* var; int r; long start, len; for (r = 0; r < int(recDims.size()); ++r) { if (timeVars[r] >= 0) { start = recStarts[k][r]; len = recLens[k][r]; if (len > 0) { BOOST_AUTO(range, modelVars.equal_range(r)); BOOST_AUTO(iter, range.first); BOOST_AUTO(end, range.second); if (coordVars[r] >= 0) { /* sparse mask */ temp_matrix_type C(iter->second->getNumDims(), len); readCoords(coordVars[r], start, len, C); for (; iter != end; ++iter) { var = iter->second; if (var->getType() == type) { mask.addSparseMask(var->getId(), len); serialiseCoords(var, C, mask.getIndices(var->getId())); } } } else { /* dense mask */ for (; iter != end; ++iter) { var = iter->second; if (var->getType() == type) { mask.addDenseMask(var->getId(), var->getSize()); } } } } } } }
void Compiler::rename(Var& var, const char* fmt, ...) noexcept { if (var.getId() == kInvalidValue) return; VarData* vd = getVdById(var.getId()); vd->_name = noName; if (fmt != nullptr && fmt[0] != '\0') { char buf[64]; va_list ap; va_start(ap, fmt); vsnprintf(buf, ASMJIT_ARRAY_SIZE(buf), fmt, ap); buf[ASMJIT_ARRAY_SIZE(buf) - 1] = '\0'; vd->_name = _stringAllocator.sdup(buf); va_end(ap); } }
Error Compiler::_hint(Var& var, uint32_t hint, uint32_t value) noexcept { if (var.getId() == kInvalidValue) return kErrorOk; HLHint* node = newHintNode(var, hint, value); if (node == nullptr) return setLastError(kErrorNoHeapMemory); addNode(node); return kErrorOk; }
Error Compiler::alloc(Var& var) noexcept { if (var.getId() == kInvalidValue) return kErrorOk; return _hint(var, kVarHintAlloc, kInvalidValue); }
Error Compiler::alloc(Var& var, uint32_t regIndex) noexcept { if (var.getId() == kInvalidValue) return kErrorOk; return _hint(var, kVarHintAlloc, regIndex); }
Error Compiler::unuse(Var& var) noexcept { if (var.getId() == kInvalidValue) return kErrorOk; return _hint(var, kVarHintUnuse, kInvalidValue); }
Error Compiler::spill(Var& var) noexcept { if (var.getId() == kInvalidValue) return kErrorOk; return _hint(var, kVarHintSpill, kInvalidValue); }
Error Compiler::alloc(Var& var, const Reg& reg) noexcept { if (var.getId() == kInvalidValue) return kErrorOk; return _hint(var, kVarHintAlloc, reg.getRegIndex()); }