some of Basic blocks are deleted after running embedded ExecutionEngine

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

some of Basic blocks are deleted after running embedded ExecutionEngine

Henry Chung
Hi llvm-ers,

I have integrated an ExecutionEngine in my pass, before I run the execution engine, I check the program has 32 basic blocks. However, after I run the execution engine, the number of basic blocks is 30. Two basic blocks are deleted by the embedded JIT execution engine. 

Does the ExecutionEngine perform any optimization? If yes, how can I disable it?

Thanks,
Henry




_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: some of Basic blocks are deleted after running embedded ExecutionEngine

David Blaikie

+Lang for jit things

On Nov 24, 2014 11:15 PM, "Henry Chung" <[hidden email]> wrote:
Hi llvm-ers,

I have integrated an ExecutionEngine in my pass, before I run the execution engine, I check the program has 32 basic blocks. However, after I run the execution engine, the number of basic blocks is 30. Two basic blocks are deleted by the embedded JIT execution engine. 

Does the ExecutionEngine perform any optimization? If yes, how can I disable it?

Thanks,
Henry




_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev


_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: some of Basic blocks are deleted after running embedded ExecutionEngine

Lang Hames
Hi Henry,

The ExecutionEngine owns any module that you pass to it, and it may make modifications to the module even at O0. If you want to preserve the existing module as-is you'll need to clone it and pass the clone to the ExecutionEngine instead.

Cheers,
Lang.

On Tue, Nov 25, 2014 at 7:30 AM, David Blaikie <[hidden email]> wrote:

+Lang for jit things

On Nov 24, 2014 11:15 PM, "Henry Chung" <[hidden email]> wrote:
Hi llvm-ers,

I have integrated an ExecutionEngine in my pass, before I run the execution engine, I check the program has 32 basic blocks. However, after I run the execution engine, the number of basic blocks is 30. Two basic blocks are deleted by the embedded JIT execution engine. 

Does the ExecutionEngine perform any optimization? If yes, how can I disable it?

Thanks,
Henry




_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev



_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: some of Basic blocks are deleted after running embedded ExecutionEngine

Henry Chung
Hi Lang,

You are right. :-)
I succeed after passing the cloned module to the ExecutionEngine.

Thanks,
Henry

On Thu, Nov 27, 2014 at 3:10 AM, Lang Hames <[hidden email]> wrote:
Hi Henry,

The ExecutionEngine owns any module that you pass to it, and it may make modifications to the module even at O0. If you want to preserve the existing module as-is you'll need to clone it and pass the clone to the ExecutionEngine instead.

Cheers,
Lang.

On Tue, Nov 25, 2014 at 7:30 AM, David Blaikie <[hidden email]> wrote:

+Lang for jit things

On Nov 24, 2014 11:15 PM, "Henry Chung" <[hidden email]> wrote:
Hi llvm-ers,

I have integrated an ExecutionEngine in my pass, before I run the execution engine, I check the program has 32 basic blocks. However, after I run the execution engine, the number of basic blocks is 30. Two basic blocks are deleted by the embedded JIT execution engine. 

Does the ExecutionEngine perform any optimization? If yes, how can I disable it?

Thanks,
Henry




_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev



_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev