Triple Triple::get64BitArchVariant()

in lib/LLVMSupport/Support/Triple.cpp [1351:1412]


Triple Triple::get64BitArchVariant() const {
  Triple T(*this);
  switch (getArch()) {
  case Triple::UnknownArch:
  case Triple::arc:
  case Triple::avr:
  case Triple::hexagon:
  case Triple::kalimba:
  case Triple::lanai:
  case Triple::msp430:
  case Triple::r600:
  case Triple::tce:
  case Triple::tcele:
  case Triple::xcore:
  case Triple::sparcel:
  case Triple::shave:
    T.setArch(UnknownArch);
    break;

  case Triple::aarch64:
  case Triple::aarch64_be:
  case Triple::bpfel:
  case Triple::bpfeb:
  case Triple::le64:
  case Triple::amdil64:
  case Triple::amdgcn:
  case Triple::hsail64:
  case Triple::spir64:
  case Triple::mips64:
  case Triple::mips64el:
  case Triple::nvptx64:
  case Triple::ppc64:
  case Triple::ppc64le:
  case Triple::riscv64:
  case Triple::sparcv9:
  case Triple::systemz:
  case Triple::x86_64:
  case Triple::wasm64:
  case Triple::renderscript64:
    // Already 64-bit.
    break;

  case Triple::arm:             T.setArch(Triple::aarch64);    break;
  case Triple::armeb:           T.setArch(Triple::aarch64_be); break;
  case Triple::le32:            T.setArch(Triple::le64);       break;
  case Triple::mips:            T.setArch(Triple::mips64);     break;
  case Triple::mipsel:          T.setArch(Triple::mips64el);   break;
  case Triple::nvptx:           T.setArch(Triple::nvptx64);    break;
  case Triple::ppc:             T.setArch(Triple::ppc64);      break;
  case Triple::sparc:           T.setArch(Triple::sparcv9);    break;
  case Triple::riscv32:         T.setArch(Triple::riscv64);    break;
  case Triple::x86:             T.setArch(Triple::x86_64);     break;
  case Triple::amdil:           T.setArch(Triple::amdil64);    break;
  case Triple::hsail:           T.setArch(Triple::hsail64);    break;
  case Triple::spir:            T.setArch(Triple::spir64);     break;
  case Triple::thumb:           T.setArch(Triple::aarch64);    break;
  case Triple::thumbeb:         T.setArch(Triple::aarch64_be); break;
  case Triple::wasm32:          T.setArch(Triple::wasm64);     break;
  case Triple::renderscript32:  T.setArch(Triple::renderscript64);     break;
  }
  return T;
}