CppProprocessScript.sh 954 B

12345678910111213141516
  1. #!/bin/bash
  2. # 获取脚本所在目录
  3. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
  4. # 切换到项目根目录
  5. cd "$SCRIPT_DIR/../.."
  6. # 确保输出目录存在
  7. mkdir -p proprocess_output/cpp
  8. opt -load build/CppProprocessFunctionPass.so -add-cpp-project-metadata -cpp-project-name=CppBunker < combine_output/cpp/projectA_cpp.bc > proprocess_output/cpp/projectA_cpp_tagged.bc
  9. opt -load build/CppProprocessFunctionPass.so -add-cpp-project-metadata -cpp-project-name=CppTarget < combine_output/cpp/projectB_cpp.bc > proprocess_output/cpp/projectB_cpp_tagged.bc
  10. llvm-link proprocess_output/cpp/projectA_cpp_tagged.bc proprocess_output/cpp/projectB_cpp_tagged.bc -o proprocess_output/cpp/combined_cpp_tagged.bc
  11. llvm-dis proprocess_output/cpp/combined_cpp_tagged.bc -o proprocess_output/cpp/combined_cpp_tagged.ll
  12. echo "C++ projects preprocessed successfully."
  13. echo "Tagged C++ LLVM IR is at: proprocess_output/cpp/combined_cpp_tagged.ll"