<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Aug 22, 2008, at 4:40 PM, Devang Patel wrote:</div><div><br></div><div>I like it. It's simple enough to understand. We can implement the easy (and most frequently used) stuff first and go from there.</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier">//===----------------------------------------------------------------------===//</font></div><div><font class="Apple-style-span" face="Courier">// Implementation Overview</font></div><div><font class="Apple-style-span" face="Courier">//</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier">[0] Implement llvm::Function Note store and access interface.</font></div><div><font class="Apple-style-span" face="Courier">[1] Update LLVM Asm Parser to recognize Function Notes.</font></div><div><font class="Apple-style-span" face="Courier">[2] Update LLVM Printer to print Function Notes.</font></div><div><font class="Apple-style-span" face="Courier">[3] Update LLVM BitCode Reader and Writer to handle Function Notes.</font></div><div><font class="Apple-style-span" face="Courier">[4] Update optimization passes to recognize "opt-size" property</font></div><div><font class="Apple-style-span" face="Courier">    Update the inliner to recognize "noinline" and "always_inline" Notes.</font></div></div></blockquote><div><br></div>Some naming inconsistency here. opt-size vs. always_inline. If there isn't a win to use the same name as gcc attribute, always-inline might be better.</div><div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><font class="Apple-style-span" face="Courier">[5] Many code generation choices are encoded as global variables in </font></div><div><font class="Apple-style-span" face="Courier">    TargetOptions.h. Update code generation passes to read these choices from </font></div><div><font class="Apple-style-span" face="Courier">    function notes and eliminate these global variables.</font></div><div><font class="Apple-style-span" face="Courier">[6] Update LTO to merge function Notes from various IR files appropriately.</font></div></div></blockquote><div><br></div>One issue I can think of. Options change. Their names can change, some can go away, etc. Do we have AutoUpgrade to upgrade them? Is there a better solution?</div><div><br></div><div>Evan</div><div><br></div><div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><font class="Apple-style-span" face="Courier"><br></font></div><div><br></div></div>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div><br></body></html>