[llvm-dev] Easy way to add common pass for optimization

Yafei Liu via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 15 19:07:12 PDT 2019


Hi John, I didn't find any file named AddOptimizationLevel.cpp in my llvm
project, where is it?

On Tue, Oct 15, 2019 at 8:39 PM John Brawn <John.Brawn at arm.com> wrote:

> It depends on if you’re using the new or old pass managers, though if
> you’re following that tutorial you’re probably using the old
>
> one (looking at
> https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl04.html#llvm-optimization-passes
> ).
>
>
>
> If so then you can use PassManagerBuilder (
> http://llvm.org/doxygen/classllvm_1_1PassManagerBuilder.html). It may be
> also
>
> worthwhile looking at what opt does (AddOptimizationLevel.cpp in opt.cpp)
> as it uses PassManagerBuilder but does something
>
> a bit more complex than just setting the optlevel then populating the pass
> manager (but maybe just setting optlevel is all you
>
> need for your purposes).
>
>
>
> John
>
>
>
> *From:* llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] *On Behalf Of *Yafei
> Liu via llvm-dev
> *Sent:* 15 October 2019 09:54
> *To:* llvm-dev
> *Subject:* [llvm-dev] Easy way to add common pass for optimization
>
>
>
> Hi all,
>
> I wrote a compiler front end which generates IR codes, but due to the
> logic, the IR codes have a lot of  instructions like unnecessary br jump,
> basic block creation, load instructions and expression which can be
> simplified.
>
> now I want to use built in passes to optimize the generated code, but
> after I read the tutorial:
> https://llvm.org/docs/tutorial/MyFirstLanguageFrontend, I found that I
> have to add passess one by one, on function level.
>
>
>
> I know these passes for module level, but I don't know what passes I
> should add, and I do not have special optimization requirements, so
> built-in passes will meet my requirements, So this there any easy way to
> add most common passes which all compilers will probable used?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191016/6b2b9663/attachment.html>


More information about the llvm-dev mailing list