diff --git a/WORKSPACE b/WORKSPACE index 0d5ac39eb2..a15e9d5115 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -367,9 +367,9 @@ cc_library( ], ) """, - sha256 = "92cbe1d023593c2d45588caf2b1530795f376045e8bc3d2868ba349fb8d61ea5", - strip_prefix = "IR2Vec-1.1.0", - urls = ["https://github.com/IITH-Compilers/IR2Vec/archive/refs/tags/v1.1.0.tar.gz"], + sha256 = "92cbe1d0235a3c2d45588caf2b1530795f376045e8bc3d2868ba349fb8d61ea5", + strip_prefix = "IR2Vec-828e50584b9c8bc305208e22d2cca272bdb1ab64", + urls = ["https://github.com/ChrisCummins/IR2Vec/archive/828e50584b9c8bc305208e22d2cca272bdb1ab64.tar.gz"], ) # === Eigen === diff --git a/compiler_gym/envs/llvm/service/CMakeLists.txt b/compiler_gym/envs/llvm/service/CMakeLists.txt index 49be1295e5..459afc9bf1 100644 --- a/compiler_gym/envs/llvm/service/CMakeLists.txt +++ b/compiler_gym/envs/llvm/service/CMakeLists.txt @@ -238,6 +238,7 @@ cg_cc_library( CpuInfo::cpuinfo Boost::filesystem glog::glog + ir2vec::ir2vec ${_LLVM_LIBS} magic_enum nlohmann_json::nlohmann_json diff --git a/external/external.cmake b/external/external.cmake index a3e280b8fc..c4219b8f11 100644 --- a/external/external.cmake +++ b/external/external.cmake @@ -135,6 +135,25 @@ else() find_package(glog REQUIRED) endif() +# === IR2Vec === +# https://github.com/IITH-Compilers/IR2Vec + +set(COMPILER_GYM_IR2VEC_PROVIDER "internal" + CACHE STRING "Find or build IR2Vec together with Compiler Gym." +) +set_property( + CACHE COMPILER_GYM_IR2VEC_PROVIDER + PROPERTY STRINGS "internal" "external" +) +if(COMPILER_GYM_IR2VEC_PROVIDER STREQUAL "internal") + build_external_cmake_project( + NAME ir2vec + SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/ir2vec" + ) +else() + find_package(ir2vec REQUIRED) +endif() + # === LLVM === set(COMPILER_GYM_LLVM_PROVIDER "internal" diff --git a/external/ir2vec/CMakeLists.txt b/external/ir2vec/CMakeLists.txt new file mode 100644 index 0000000000..f415879c5e --- /dev/null +++ b/external/ir2vec/CMakeLists.txt @@ -0,0 +1,23 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +project(ir2vec) +cmake_minimum_required(VERSION 3.15) + +include(ExternalProject) + +externalproject_add( + ir2vec + PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ir2vec" + GIT_REPOSITORY "https://github.com/ChrisCummins/IR2Vec.git" + GIT_TAG 828e50584b9c8bc305208e22d2cca272bdb1ab64 + CMAKE_ARGS + -C "${CMAKE_CURRENT_BINARY_DIR}/ir2vec_initial_cache.cmake" + "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" + "-DLT_LLVM_INSTALL_DIR=${CMAKE_INSTALL_PREFIX}" + USES_TERMINAL_CONFIGURE TRUE + USES_TERMINAL_BUILD TRUE + USES_TERMINAL_INSTALL TRUE +)