[LLVMdev] metadata to inform the optimizers that some code should stay unchanged
Nick Lewycky
nicholas at mxc.ca
Thu Mar 3 21:43:52 PST 2011
Xinfinity wrote:
>
>
> Hello LLVM,
>
> I am working on some passes that perform code transformations. Since I am
> interested in performance, I apply the O3 passes, right after my pass.
> However, the optimization passes modify the code inserted by my pass in an
> undesirable way. As far I know, there is no way to prevent the optimizers
> from optimizing some regions of code. So what I intend to do is to attach
> metadata to the instructions contained in basicblocks that I want to remain
> unchanged, and to modify some of the optimization passes to be aware of the
> metadata.
Please don't. Metadata is the wrong tool for anything where the metadata
can't be discarded and correctness maintained.
Is there any reason you can't run opt -O3 first and your pass second?
What is your pass actually doing and why does running the optimizations
break it?
Nick
For now, I am interested only in passes that would affect the
> control flow graph, so for a start I modify the Simplify CFG pass and the
> jump threading pass, but I will check which other passes might duplicate the
> code, merge blocks etc.
>
> Do you think the performance will drop significantly if some regions of code
> are not optimized ? And do you consider this modification would be of any
> use to the community?
>
> Thank you.
> Alexandra
>
More information about the llvm-dev
mailing list