Hi Nora,
The LLVM bitcode for 456.hmmer of SPEC CPU2006 contains vectorized code. This 
might have caused the problem. In any case, as far as I know, the support for 
vectorized code in KLEE is still being worked on (see KLEE PR 657 here: 
https://github.com/klee/klee/pull/657 ), and therefore it seems this particular 
benchmark currently cannot be analyzed using KLEE.

I repeated the crash in the following way (on Ubuntu 16.04):1. Install SPEC 
CPU2006 in <cpu2006_install>
    a. cd <cpu2006_cd>    b. ./install.sh -d <cpu2006_install>
2. cd <cpu2006_install>3. source ./shrc4. cd config5. cp 
Example-linux64-amd64-gcc43+.cfg linux.cfg6. Change the following two lines in 
config/linux.cfg:   CC=/usr/bin/gcc   CXX=/usr/bin/g++   into:   
CC=<whole-progam-llvm_dir>/wllvm   CXX=<whole-program-llvm_dir>/wllvm++7. 
export LLVM_COMPILER=clang8. runspec --config=linux.cfg --action=build 
--tune=base hmmer9. cd ../benchspec/CPU2006/456.hmmer/exe10. 
<whole-program-llvm_dir>/exract-bc hmmer_base.gcc43-64bit11. klee 
--emit-all-errors --allow-external-sym-calls --optimize --libc=uclibc 
--posix-runtime --max-memory=1000 ./hmmer_base.gcc43-64bit.bc 
<cpu2006_install>/benchspec/CPU2006/456.hmmer/data/test/input/bombesin.hmm 
KLEE: NOTE: Using klee-uclibc : 
/home/dcsandr/software/klee/Release+Asserts/lib/klee-uclibc.bca
KLEE: NOTE: Using model: 
/home/dcsandr/software/klee/Release+Asserts/lib/libkleeRuntimePOSIX.bca
KLEE: output directory is 
"/home/dcsandr/software/spec_cpu_2006_install/benchspec/CPU2006/456.hmmer/exe/./klee-out-8"
KLEE: Using STP solver backend
Terminator found in the middle of a basic block!
label %37
Broken module found, compilation aborted!
0  libLLVM-3.4.so.1 0x00002b56908e5042 llvm::sys::PrintStackTrace(_IO_FILE*) + 
34
1  libLLVM-3.4.so.1 0x00002b56908e4e34
2  libpthread.so.0  0x00002b56913ac390
3  libc.so.6        0x00002b5693634428 gsignal + 56
4  libc.so.6        0x00002b569363602a abort + 362
5  libLLVM-3.4.so.1 0x00002b56902d44f1
6  libLLVM-3.4.so.1 0x00002b56902dd5b3
7  libLLVM-3.4.so.1 0x00002b56902b4a27 
llvm::FPPassManager::runOnFunction(llvm::Function&) + 471
8  libLLVM-3.4.so.1 0x00002b56902b4aab 
llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9  libLLVM-3.4.so.1 0x00002b56902b6f65 
llvm::legacy::PassManagerImpl::run(llvm::Module&) + 693
10 klee             0x00000000004aa238 llvm::Optimize(llvm::Module*, 
std::string const&) + 216
11 klee             0x00000000004a5b55 
klee::KModule::prepare(klee::Interpreter::ModuleOptions const&, 
klee::InterpreterHandler*) + 3541
12 klee             0x0000000000457aee klee::Executor::setModule(llvm::Module*, 
klee::Interpreter::ModuleOptions const&) + 254
13 klee             0x0000000000446ff1 main + 4545
14 libc.so.6        0x00002b569361f830 __libc_start_main + 240
15 klee             0x0000000000450509 _start + 41
Aborted (core dumped)

Regarding the problem with llvm-link, that seems to be because hmmsearch.bc, 
which contains a main function is somehow included twice or more in the 
linking. In my case, the file name is .hmmsearch.o.bc, and I could repeat the 
same error as follows:

llvm-link -o y.bc .hmmsearch.o.bc .hmmsearch.o.bcllvm-link: link error in 
'.hmmsearch.o.bc': Linking globals named 'main': symbol multiply defined!
I hope the above helps.
Best,
Andrew


On Sun Jul 09 2017 04:10:37 GMT+0800 (SGT), Nourah mmm <dnoo...@gmail.com> 
wrote:


Hi,
Sorry to bother you again.  After using make and wllvm, KLEE stopped working 
and it generated this error: 
----------------------------------------------------------------------------------------------------------------
 myklee --emit-all-errors --allow-external-sym-calls  --optimize --libc=uclibc 
--posix-runtime --max-memory=1000 ./hmmer.bc 
'/home/naloboud/SpecCPU2006/cpu2006/benchspec/CPU2006/456.hmmer/data/test/input/bombesin.hmm'
KLEE: NOTE: Using klee-uclibc : 
/home/naloboud/klee/Release+Asserts/lib/klee-uclibc.bca
KLEE: NOTE: Using model: 
/home/naloboud/klee/Release+Asserts/lib/libkleeRuntimePOSIX.bca
KLEE: output directory is 
"/home/naloboud/klee/examples/hammer2_make/./klee-out-1"
Using STP solver backend
Terminator found in the middle of a basic block!
label %34
Broken module found, compilation aborted!
0  klee            0x0000000000cdc1d5 llvm::sys::PrintStackTrace(_IO_FILE*) + 37
1  klee            0x0000000000cdc61f
2  libpthread.so.0 0x00007f2edccc4390
3  libc.so.6       0x00007f2eda88a428 gsignal + 56
4  libc.so.6       0x00007f2eda88c02a abort + 362
5  klee            0x0000000000c9750d
6  klee            0x0000000000c97331
7  klee            0x0000000000c7b863 
llvm::FPPassManager::runOnFunction(llvm::Function&) + 547
8  klee            0x0000000000c7ba2b 
llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9  klee            0x0000000000c7be3e 
llvm::legacy::PassManagerImpl::run(llvm::Module&) + 782
10 klee            0x00000000005a469c llvm::Optimize(llvm::Module*, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) + 236
11 klee            0x00000000005a030b 
klee::KModule::prepare(klee::Interpreter::ModuleOptions const&, 
klee::InterpreterHandler*) + 3691
12 klee            0x000000000054e416 klee::Executor::setModule(llvm::Module*, 
klee::Interpreter::ModuleOptions const&) + 278
13 klee            0x0000000000531e99 main + 3561
14 libc.so.6       0x00007f2eda875830 __libc_start_main + 240
15 klee            0x00000000005471d9 _start + 41
Aborted (core dumped)
------------------------------------------------------------------------------------------------------
However, when I use llvm-link it works but it generates this error: 

/llvm2/Release/bin/llvm-link: link error in 'hmmsearch.bc': Linking globals 
named 'main': symbol multiply defined!
attached is the make file.
Please advise 
Thank you in advance 



On 5 July 2017 at 02:43, asantosa1...@gmail.com <asantosa1...@gmail.com> wrote:
> Sorry it was my mistake. Please replace "sudo apt install wllvm"  with the 
> following two commands:
> 
> sudo apt install python-pip
> sudo pip install wllvm
> 
> Best,
> Andrew
> 
> 
> 
> On Wednesday, July 5, 2017, 7:35:00 AM GMT+8, Nourah mmm <dnoo...@gmail.com> 
> wrote:
> 
> 
> Thank you very much for your replay. 
> 
> I tried to do that, however, its print extract-bc: command not found.
> 
> I'm trying to extract the bc from SPEC cpu2006 Integer benchmarks. So I did 
> the following. 
>     1. sudo apt install wllvm
>     2. LLVM_COMPILER=clang CC=wllvm make --> here I use clang version 3.4 and 
> I just write wllvm without a path.
>     3. Then, it generate the .o files and an executable program(mcf)
>     4. extract-bc mcf
> Thank you 
> Nora
> 
> On 4 July 2017 at 03:04, asantosa1...@gmail.com <asantosa1...@gmail.com> 
> wrote:
>> I suppose what you want is to produce a bitcode for running with KLEE. You 
>> can probably
>> do a normal build procedure for the program, but with replacing your C 
>> compiler with wllvm.
>> wllvm is available here: https://github.com/travitch/ whole-program-llvm See 
>> also an installation
>> instruction as the Step 2 here: Testing Coreutils · KLEE
>> 
>> | | |  | Testing Coreutils · KLEE | | |
>> | |  |  | | |
>> 
>> 
>> Alternatively, on Ubuntu 16.04, you can do
>> 
>> sudo apt install wllvm
>> 
>> to install wllvm.
>> 
>> I assume you would normally build the program using "make". In that case, 
>> and assuming
>> that both clang and wllvm are in your PATH, the following might work to 
>> produce the binary:
>> 
>> LLVM_COMPILER=clang CC=wllvm make
>> 
>> And then you can do:
>> 
>> extract-bc program
>> 
>> To get the program.bc for running with KLEE.
>> 
>> Best,
>> Andrew
>> On Tuesday, July 4, 2017, 9:05:49 AM GMT+8, Nourah mmm <dnoo...@gmail.com> 
>> wrote:
>> 
>> 
>> Hi, 
>> 
>> I'm testing a program that compress and decompress files. 
>> For C compilation I'm using these flags: 
>> 
>> -DSPEC_CPU -DNDEBUG -DSPEC_CPU_LP64
>> 
>> How could I use these in KLEE? 
>> 
>> Thank you 
>> Nora
>> ______________________________ _________________
>> klee-dev mailing list
>> klee-dev@imperial.ac.uk
>> https://mailman.ic.ac.uk/ mailman/listinfo/klee-dev
> 
_______________________________________________
klee-dev mailing list
klee-dev@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev

Reply via email to