Пример #1
0
Vreg Vunit::makeConst(Vconst vconst) {
  auto it = constToReg.find(vconst);
  if (it != constToReg.end()) return it->second;

  auto const reg = makeReg();
  constToReg.emplace(vconst, reg);
  regToConst.emplace(reg, vconst);
  return reg;
}
Пример #2
0
Vreg Vunit::makeConst(uint64_t v) {
  auto it = constants.find(v);
  if (it != constants.end()) return it->second;
  return constants[v] = makeReg();
}
Пример #3
0
Vreg Vunit::makeConst(Vptr p) {
  auto it = constants.find(p);
  if (it != constants.end()) return it->second;
  return constants[p] = makeReg();
}
Пример #4
0
Vreg Vunit::makeConst(bool b) {
  auto it = constants.find(b);
  if (it != constants.end()) return it->second;
  return constants[b] = makeReg();
}