[llvm-dev] Proposal for O1/Og Optimization and Code Generation Pipeline

John Reagan via llvm-dev llvm-dev at lists.llvm.org
Fri Mar 29 07:10:35 PDT 2019


When I worked on the HPE NonStop compilers for x86 (we used Open64, not
LLVM), we adjusted our -O1 to make sure the source display didn't
"bounce around" based on feedback from users.  We disabled any
optimization that would move things across statement boundaries.  We
also disabled/de-tuned dead store since our DWARF location list support
was pretty basic and with the removed store, you'd get the "wrong"
answer when you did an examine.  We weren't able at the time (they might
have improved since then) to always trim the location lists to create
the "dead zones".

We didn't create an -Og since the NonStop users were already used to
having -O1 be different from each prior platform (Itanium, MIPS, etc).
Personally, I would have liked an -Og since I think the name "feels" better.

For our OpenVMS compilers, we also settled on -O1 (/OPT=LEVEL=1 in DCL
speak) for "do whatever you think that won't mess up debugging".  And
our -O0 still does some basic optimizations (ie, 1+1, if false, etc)

We didn't get much push back on performance between -O1 and the next
higher setting.

I'll be sure to look for Greg's round table

John

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190329/fb6d1041/attachment.sig>


More information about the llvm-dev mailing list