<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 14, 2016, at 10:34 PM, Eric Christopher <<a href="mailto:echristo@gmail.com" class="">echristo@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Thu, Jul 14, 2016 at 2:01 PM Mehdi Amini <<a href="mailto:mehdi.amini@apple.com" class="">mehdi.amini@apple.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;" class=""><div class=""><blockquote type="cite" class=""><div class="">On Jul 14, 2016, at 1:34 PM, Eric Christopher <<a href="mailto:echristo@gmail.com" target="_blank" class="">echristo@gmail.com</a>> wrote:</div><br class="m_1139127344705160189Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" class=""><br class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Thu, Jul 14, 2016 at 1:30 PM Mehdi Amini <<a href="mailto:mehdi.amini@apple.com" target="_blank" class="">mehdi.amini@apple.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;" class=""><div class=""><blockquote type="cite" class=""><div class="">On Jul 14, 2016, at 1:26 PM, Eric Christopher <<a href="mailto:echristo@gmail.com" target="_blank" class="">echristo@gmail.com</a>> wrote:</div><br class="m_1139127344705160189m_2402579181451370300Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" class=""><br class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Wed, Jul 13, 2016 at 4:47 PM Mehdi Amini via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">Author: mehdi_amini<br class="">Date: Wed Jul 13 18:39:46 2016<br class="">New Revision: 275348<br class=""><br class="">URL:<span class="m_1139127344705160189m_2402579181451370300Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project?rev=275348&view=rev" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=275348&view=rev</a><br class="">Log:<br class="">Add EnableIPRA to TargetOptions, and move the cl::opt -enable-ipra to TargetMachine.cpp<br class=""><br class="">Avoid exposing a cl::opt in a public header and instead promote this<br class="">option in the API.<br class="">Alternatively, we could land the cl::opt in CommandFlags.h so that<br class="">it is available to every tool, but we would still have to find an<br class="">option for clang.<br class=""><br class=""></blockquote><div class=""><br class=""></div><div class="">Are you planning to have it as a -f option to clang or just something via -mllvm?</div></div></div></div></blockquote><div class=""><br class=""></div><div class=""><br class=""></div></div></div><div style="word-wrap: break-word;" class=""><div class=""><div class="">Not sure yet, what do you suggest?</div></div></div></blockquote><div class=""><br class=""></div><div class="">I'd probably leave it as a -mllvm option at the moment which means you don't need to put it into TargetOptions. Since you probably only would need it for llc anyhow?</div></div></div></div></blockquote><div class=""><br class=""></div></div></div><div style="word-wrap: break-word;" class=""><div class=""><div class="">The question is “how to share access to this option as it starts to affect various part of the codegen”. </div><div class="">I was not really happy with the previous state which was adding a global cl::opt into TargetPassConfig.h (and pull CommandLine.h into this public header as well), and adding it to “TargetOptions” seemed cleaner.</div></div></div></blockquote><div class=""><br class=""></div><div class="">Seems cleaner than that for sure.</div><div class=""> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;" class=""><div class=""><div class="">I’m fine with reverting this if you think it is fine to expose this cl::opt as a global in a public header?</div><div class=""><br class=""></div></div></div></blockquote><div class=""><br class=""></div><div class="">What are you envisioning ultimately? Staged rollout per target? Perhaps something similar to the MI Scheduler then?</div></div></div></div></blockquote><div><br class=""></div><div>Yes an opt-in staged rollout per target seems likely. I’m not familiar with the MI Scheduler, is it just an option on TargetSubtargetInfo?</div><div>How do we enable/disable it on the command line during development?</div><div><br class=""></div><div>— </div><div>Mehdi</div><div><br class=""></div></div></body></html>