<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></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 Apr 21, 2016, at 11:25 AM, Teresa Johnson <<a href="mailto:tejohnson@google.com" class="">tejohnson@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I am currently making some BitcodeWriter changes that involve some refactoring, and am thinking for the Nth time that it would be much nicer to have a class instead of passing around a long list of parameters. I am thinking of biting the bullet and doing that - any objections? </div></div></blockquote><div><br class=""></div><div>In general I'm worried about having single gigantic class that keep many data members, this goes against <a href="https://en.wikipedia.org/wiki/Single_responsibility_principle" class="">https://en.wikipedia.org/wiki/Single_responsibility_principle</a> and makes it hard to track what is initialized, where, and under which condition (basically one of the reason why global variables are not welcome). The code is almost always easier to understand with small separated components (yes many places are drifting a lot in LLVM...).</div><div><br class=""></div><div>Not to say that it can't be done, just that it requires a lot of care.</div><div><br class=""></div><div>-- </div><div>Mehdi</div><div><br class=""></div><div><br class=""></div><div><br class=""></div><div> </div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="">I assume the reason why there is no existing class wrapping the bitcode writing process is just legacy code and nothing else?</div><div class=""><br class=""></div><div class="">It seems like at the least a simple class could hold the common elements used by the various bitcode writing routines, and I might want to add a specialized class to manage the ThinLTO combined index file generation.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Teresa<br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div class="gmail_signature"><span style="font-family: Times; font-size: inherit;" class=""><table cellspacing="0" cellpadding="0" class=""><tbody class=""><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small" class=""><td nowrap="" style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px" class="">Teresa Johnson |</td><td nowrap="" style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px" class=""> Software Engineer |</td><td nowrap="" style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px" class=""> <a href="mailto:tejohnson@google.com" target="_blank" class="">tejohnson@google.com</a> |</td><td nowrap="" style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px" class=""> 408-460-2413</td></tr></tbody></table></span></div>
</div></div>
</div></blockquote></div><br class=""></body></html>