harvard-acc / LLVM-Tracer

An LLVM pass to profile dynamic LLVM IR instructions and runtime values
Other
135 stars 35 forks source link

Labelmap and llvm-link fail #47

Open tawfiqabuaita1 opened 2 years ago

tawfiqabuaita1 commented 2 years ago

Hi,

I am trying to run some benchmarks with LLVM-Tracer. They use the header file "ap_int.h" and it seems that it is causing a problem when generating the labelmap and when running llvm-link. I am using LLVM and Clang version 3.4.

When generating labelmap, it gives the following error: /usr/lib/llvm-3.4/include/clang/AST/Decl.h:130: llvm::String clang::NamedDecl::getName() const: Assertion 'Name.isIdentifier() && "Name not a simple identifier"' failed. Aborted (core dumped)

Then when running llvm-link it gives some errors that say: undefined reference to 'std::ios_base::Init::Init(). But maybe this is because labelmap failed in the first place.

Here are the two commands I am using:

To generate labelmap:

${TRACER_HOME}/bin/get-labeled-stmts harness.cpp -- -Iinclude -Isrc -Icommon -I/usr/lib/gcc/x86_64-linux-gnu/3.4.6/include -I${LLVM_HOME}/lib/clang/3.4/include

To run LLVM link:

llvm-link-3.4 -o full.llvm harness-opt.llvm ${TRACER_HOME}/profile-func/trace_logger.llvm

I am specifically trying to run rodinia-hls benchmarks after I modified them to run on the CPU: https://github.com/SFU-HiAccel/rodinia-hls

The benchmarks that do not have "ap_int.h" included work well, and when I try to comment out "ap_int.h" then the labelmap will execute correctly but the compilation will give errors of course because of the missing header file, so I believe this header file is causing the problem.

This might be more related to the benchmarks I am using so I understand if you don't have a solution in mind but any suggestion will be helpful. Thanks in advance!