[LLVMdev] Problems with eraseFromParent()

Alysson aishofpf at gmail.com
Sun Jun 20 20:31:02 PDT 2010


Hi LLVMers,

    I am working on my llvm school project optimization pass. It's
relatively simple, and it tries to remove redundant bitcast instructions
followed by load instructions. At first, I'm using as input a bytecode
generated by a simple Java test program.
    I've already found the reduntant instructions by looking at it's CFG,
and I also could implement the code to substitute their references, in order
to eliminate all dependencies on these instructions (the number of their
uses are changed to zero).
   The point is that when I finally attempt to remove the redundant unused
instructions from the generated code, there is a seg fault error.
   To remove them, I'm using this function:

void EraseInst(Instruction &I) {
            assert(I.use_empty() && "Cannot erase used instructions!");
            I.eraseFromParent();
}

So please, if anyone could help me on this, i would be very grateful!

PS: It's also following my pass and the bytecode used for tests.

Thanks for the attention,
Alysson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100621/13b605a0/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: k2.java
Type: text/x-java
Size: 136 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100621/13b605a0/attachment.java>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: k2.bc
Type: application/octet-stream
Size: 8036 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100621/13b605a0/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: my_pass.cpp
Type: text/x-c++src
Size: 3450 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100621/13b605a0/attachment.cpp>


More information about the llvm-dev mailing list