diff --git a/cmake/CodeGen.cmake b/cmake/CodeGen.cmake index eddd921..4704478 100644 --- a/cmake/CodeGen.cmake +++ b/cmake/CodeGen.cmake @@ -60,48 +60,54 @@ set(REPO_DIR ${DBT_CORE_TGC_DIR}/gen_input/CoreDSL-Instruction-Set-Description) set(TMPL_DIR ${DBT_CORE_TGC_DIR}/gen_input/templates/) if(ENABLE_CODEGEN AND EXISTS ${GENERATOR_JAR}) - macro(gen_coredsl CORE_NAME INPUT_FILE BACKEND) - message(STATUS "Adding generation steps for ${CORE_NAME} in ${DBT_CORE_TGC_DIR} for ${BACKEND}") - - string(TOUPPER ${BACKEND} BE_UPPER) - string(TOLOWER ${CORE_NAME} CORE_NAMEL) + macro(gen_coredsl CORE_NAME INPUT_FILE BACKEND) + message(STATUS "Adding generation steps for ${CORE_NAME} in ${DBT_CORE_TGC_DIR} for ${BACKEND}") + + string(TOUPPER ${BACKEND} BE_UPPER) + string(TOLOWER ${CORE_NAME} CORE_NAMEL) - if(EXISTS ${DBT_CORE_TGC_DIR}/generate.sh AND NOT EXISTS ${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h) - # make sure source file exist initially - execute_process( - COMMAND /bin/bash ${DBT_CORE_TGC_DIR}/../generate.sh -c $CORE_NAME -b $BACKEND - WORKING_DIRECTORY ${DBT_CORE_TGC_DIR}/.. - RESULT_VARIABLE return_code) - endif() - - list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.h.gtl:${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h") - list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src/iss/${CORE_NAMEL}.cpp") - list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src/vm/interp/vm_${CORE_NAMEL}.cpp") - list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME_instr.yaml.gtl:${DBT_CORE_TGC_DIR}/${CORE_NAME}_instr.yaml") - list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME_cyles.txt.gtl:${DBT_CORE_TGC_DIR}/${CORE_NAME}_cycles.json:no") - - set(${CORE_NAME}_OUTPUT_FILES ${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h ${DBT_CORE_TGC_DIR}/src/iss/${CORE_NAMEL}.cpp ${DBT_CORE_TGC_DIR}/src/vm/interp/vm_${CORE_NAMEL}.cpp) - #add_custom_command( - # COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} -r ${REPO_DIR} ${${CORE_NAME}_MAPPING} ${INPUT_FILE} - # DEPENDS ${GENERATOR_JAR} ${INPUT_FILE} ${TMPL_DIR}/CORENAME.h.gtl ${TMPL_DIR}/CORENAME.cpp.gtl ${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl - # OUTPUT ${${CORE_NAME}_OUTPUT_FILES} - # COMMENT "Generating code for ${CORE_NAME}." - # USES_TERMINAL VERBATIM - #) - if(NOT DEFINED ENV{CI}) - add_custom_target(${CORE_NAME}_cpp - COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} ${${CORE_NAME}_MAPPING} ${INPUT_FILE} - WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} - COMMENT "Generating ISS sources" - BYPRODUCTS ${${CORE_NAME}_OUTPUT_FILES} - USES_TERMINAL - ) - endif() + if(EXISTS ${DBT_CORE_TGC_DIR}/generate.sh AND NOT EXISTS ${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h) + # make sure source file exist initially execute_process( + COMMAND /bin/bash ${DBT_CORE_TGC_DIR}/../generate.sh -c $CORE_NAME -b $BACKEND + WORKING_DIRECTORY ${DBT_CORE_TGC_DIR}/.. + RESULT_VARIABLE return_code) + endif() + + if(${CORE_NAME} =="TGC_C") + list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.h.gtl:${DBT_CORE_TGC_DIR}/src/iss/arch/${CORE_NAMEL}.h") + list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src/iss/arch/${CORE_NAMEL}.cpp") + list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src/vm/interp/vm_${CORE_NAMEL}.cpp") + else() + list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.h.gtl:${DBT_CORE_TGC_DIR}/src-gen/iss/arch/${CORE_NAMEL}.h") + list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src-gen/iss/arch/${CORE_NAMEL}.cpp") + list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src-gen/vm/interp/vm_${CORE_NAMEL}.cpp") + endif() + list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME_instr.yaml.gtl:${DBT_CORE_TGC_DIR}/${CORE_NAME}_instr.yaml") + list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME_cyles.txt.gtl:${DBT_CORE_TGC_DIR}/${CORE_NAME}_cycles.json:no") + + set(${CORE_NAME}_OUTPUT_FILES ${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h ${DBT_CORE_TGC_DIR}/src/iss/${CORE_NAMEL}.cpp ${DBT_CORE_TGC_DIR}/src/vm/interp/vm_${CORE_NAMEL}.cpp) + #add_custom_command( + # COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} -r ${REPO_DIR} ${${CORE_NAME}_MAPPING} ${INPUT_FILE} + # DEPENDS ${GENERATOR_JAR} ${INPUT_FILE} ${TMPL_DIR}/CORENAME.h.gtl ${TMPL_DIR}/CORENAME.cpp.gtl ${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl + # OUTPUT ${${CORE_NAME}_OUTPUT_FILES} + # COMMENT "Generating code for ${CORE_NAME}." + # USES_TERMINAL VERBATIM + #) + if(NOT DEFINED ENV{CI}) + add_custom_target(${CORE_NAME}_cpp COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} ${${CORE_NAME}_MAPPING} ${INPUT_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} - RESULT_VARIABLE return_code) - endmacro() + COMMENT "Generating ISS sources" + BYPRODUCTS ${${CORE_NAME}_OUTPUT_FILES} + USES_TERMINAL + ) + endif() + execute_process( + COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} ${${CORE_NAME}_MAPPING} ${INPUT_FILE} + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + RESULT_VARIABLE return_code) + endmacro() else() macro(gen_coredsl CORE_NAME INPUT_FILE BACKEND) add_custom_target(${CORE_NAME}_cpp) diff --git a/coredsl b/coredsl index 00dcdf3..03091b3 160000 --- a/coredsl +++ b/coredsl @@ -1 +1 @@ -Subproject commit 00dcdf335c228ed8a07ed86a71b735d4e4491ef7 +Subproject commit 03091b3f92f2fe774c3ac31dac8b4286f1c66392 diff --git a/dbt-rise-core b/dbt-rise-core index 28cae96..1dd870d 160000 --- a/dbt-rise-core +++ b/dbt-rise-core @@ -1 +1 @@ -Subproject commit 28cae9644e8e892a9ccbb6792858f5c63980012c +Subproject commit 1dd870d0ff9366d860861c4cf7f93eb7649512bc diff --git a/dbt-rise-tgc b/dbt-rise-tgc index 766f3ba..0703a0a 160000 --- a/dbt-rise-tgc +++ b/dbt-rise-tgc @@ -1 +1 @@ -Subproject commit 766f3ba9ee7fe8126dde5a27dc16db6d2854c637 +Subproject commit 0703a0a845ddeb6a90abd3e880c77710c436c27d diff --git a/generate.sh b/generate.sh deleted file mode 100644 index a090fa5..0000000 --- a/generate.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -## - -# Absolute path to this script, e.g. /home/user/bin/foo.sh -SCRIPT=`readlink -f "$0"` -# Absolute path this script is in, thus /home/user/bin -SCRIPTDIR=`dirname "$SCRIPT"` -SCRIPTNAME=`basename "$SCRIPT"` - -function print_help { - echo "Usage: $SCRIPTNAME [-h] -c -v " - echo "Generate ISS sources for TGC cores" - echo " -c core name" - echo " -b ISS backend for which sources are generated, interp,tcc, or llvm" - echo " -r repo used for generation" - echo " -t