Commit ea8dbc15 authored by Mccaskey, Alex's avatar Mccaskey, Alex
Browse files

set up qir-qrt to be shared library, added -emit=mlir-llvm

parent 4ff13ada
Loading
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
add_library(qir-qrt OBJECT qir-qrt.cpp)

target_include_directories(
  qir-qrt
  PUBLIC . ${CMAKE_SOURCE_DIR}/runtime/qrt ${XACC_ROOT}/include/cppmicroservices4 ${XACC_ROOT}/include/xacc ${XACC_ROOT}/include/qcor ${XACC_ROOT}/include/eigen ${XACC_ROOT}/include/quantum/gate)
add_library(qir-qrt SHARED qir-qrt.cpp)

#target_include_directories(
#  qir-qrt
#  PUBLIC . ${CMAKE_SOURCE_DIR}/runtime/qrt ${XACC_ROOT}/include/cppmicroservices4 ${XACC_ROOT}/include/xacc ${XACC_ROOT}/include/qcor ${XACC_ROOT}/include/eigen ${XACC_ROOT}/include/quantum/gate)
target_link_libraries(qir-qrt PRIVATE xacc::xacc qcor qrt)
install (TARGETS qir-qrt DESTINATION lib)
 No newline at end of file
+8 −2
Original line number Diff line number Diff line
@@ -27,12 +27,13 @@ cl::opt<bool> noEntryPoint("no-entrypoint",
                           cl::desc("Do not add main() to compiled output."));

namespace {
enum Action { None, DumpMLIR, DumpLLVMIR };
enum Action { None, DumpMLIR, DumpMLIRLLVM, DumpLLVMIR };
}
static cl::opt<enum Action> emitAction(
    "emit", cl::desc("Select the kind of output desired"),
    cl::values(clEnumValN(DumpMLIR, "mlir", "output the MLIR dump")),
    cl::values(clEnumValN(DumpLLVMIR, "llvm", "output the LLVM IR dump")));
    cl::values(clEnumValN(DumpLLVMIR, "llvm", "output the LLVM IR dump")),
    cl::values(clEnumValN(DumpMLIRLLVM, "mlir-llvm", "output the MLIR LLVM Dialect dump")));
namespace {
enum InputType { QASM };
}
@@ -91,6 +92,11 @@ int main(int argc, char **argv) {
    return 1;
  }

  if (emitAction == Action::DumpMLIRLLVM) {
    module->dump();
    return 0;
  }

  // Now lower MLIR to LLVM IR
  llvm::LLVMContext llvmContext;
  auto llvmModule = mlir::translateModuleToLLVMIR(*module, llvmContext);
+3 −4
Original line number Diff line number Diff line
@@ -5,8 +5,7 @@ def main(argv=None):
    compiler = '@CLANG_EXECUTABLE@'
    verbose=False
    baseLibs = ['-rdynamic', '-Wl,-rpath,@XACC_ROOT@/lib:@CMAKE_INSTALL_PREFIX@/lib:@LLVM_INSTALL_PREFIX@/lib',
                            '@CMAKE_INSTALL_PREFIX@/lib/objects/qir-qrt/qir-qrt.cpp.o',
                            '-L', '@CMAKE_INSTALL_PREFIX@/lib','-lqcor', '-lqrt', '-lqcor-hybrid', '-lqcor-quasimo', '-lqcor-jit', 
                            '-L', '@CMAKE_INSTALL_PREFIX@/lib','-lqcor', '-lqrt', '-lqcor-hybrid', '-lqcor-quasimo', '-lqcor-jit', '-lqir-qrt',
                             '-L', '@XACC_ROOT@/lib', '-lxacc', '-lCppMicroServices',
                            '-lxacc-quantum-gate',
                            '-lxacc-pauli', '-lxacc-fermion', '-lpthread']
@@ -366,7 +365,7 @@ def main(argv=None):
    else:
        # This is a .o file, so execute the link phase
        commands = [compiler] + baseLibs + sys.argv[1:]
        # if verbose:
        if verbose:
            print('[qcor-exec]: ', ' '.join([c for c in commands]))
        try:
            result = subprocess.run(commands, check=True)