[LLVMdev] LLVM problem, please do not ignore

James Molloy james.molloy at arm.com
Thu Nov 3 06:42:06 PDT 2011


Hi Arshak,

 

Do you expect us to debug your pass for you? Have you run it in GDB and seen
where the segfault occurs?

 

3  opt             0x00000000004b3615 llvm::PATypeHolder::get() const + 21

 

Looks like the most likely suspect, run on a bad pointer. But GDB would have
told you this.

 

Also, PATypeHolder is deprecated and not available in mainline trunk.

 

Cheers,

 

James

 

From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
Behalf Of Arshak Nazaryan
Sent: 03 November 2011 10:56
To: llvmdev at cs.uiuc.edu
Subject: [LLVMdev] LLVM problem, please do not ignore

 

Dear sir or madam,

 

I am a 4-th year student at Yerevan State University, Armenia; and I am
studying LLVM in order to write my Bachelor thesis.

I am trying to write an llvm pass that just removes all "Add" commands and
gives some statstics. 

Nevertheless, I get this segmentation fault:

 

................some rows about functions, that are not changed by my pass.
The errors occurs after it has modified a "@_Z3addii" function.

store i32 %b.0, i32* %4  and the type is ddddbbm 28

  %5 = load i32* %a_addr, align 4  and the type is ddddbbm 27

  %6 = load i32* %b_addr, align 4  and the type is ddddbbm 27

  %7 = add nsw i32 %5, %6  and the type is ddddbbm 8

  store i32 %7, i32* %0, align 4  and the type is ddddbbm 28

  %7 = add nsw i32 %5, %6   is erased, ba!

  %7 = load i32* %0, align 4  and the type is ddddbbm 27

  store i32 %7, i32* %retval, align 4  and the type is ddddbbm 28

  br label %return  and the type is ddddbbm 2

  ret i32 %retval1  and the type is ddddbbm 1

0  opt             0x00000000008ed93f

1  opt             0x00000000008edcea

2  libpthread.so.0 0x00007f9ba1183c60

3  opt             0x00000000004b3615 llvm::PATypeHolder::get() const + 21

4  opt             0x00000000008a4f11

5  opt             0x00000000008a9404

6  opt             0x0000000000882557
llvm::FPPassManager::runOnFunction(llvm::Function&) + 551

7  opt             0x00000000008825db
llvm::FPPassManager::runOnModule(llvm::Module&) + 75

8  opt             0x0000000000882197
llvm::MPPassManager::runOnModule(llvm::Module&) + 503

9  opt             0x0000000000882299
llvm::PassManagerImpl::run(llvm::Module&) + 137

10 opt             0x00000000004ac451 main + 4881

11 libc.so.6       0x00007f9ba0459eff __libc_start_main + 255

12 opt             0x000000000049f5f9

Stack dump:

0.         Program arguments: opt hello.bc -load
../llvm/llvm-2.9/plugin/BasicBlockStats.so -basic-block-stats -stats -o
newhello.bc 

1.         Running pass 'Function Pass Manager' on module 'hello.bc'.

2.         Running pass 'Module Verifier' on function '@_Z3addii'

Segmentation fault

 

Please find the source of my pass attached.

Hope to get a reply soon.

 

Regards,

Arshak Nazaryan

 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111103/798419fd/attachment.html>


More information about the llvm-dev mailing list