<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 13, 2015 at 5:58 PM, Philip Reames <span dir="ltr"><<a href="mailto:listmail@philipreames.com" target="_blank">listmail@philipreames.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">This is pretty much exactly what I have in mind.  I had hoped that
    this would be suitable as an intermediate step, it sounds like the
    answer is no.  I'll look at trying to pull GCStrategy further into
    IR to avoid the lowering issue.  If I can get the header across the
    line, do either of you object if some of the *implementation* stays
    in CodeGen for the moment?  (As in, for a few days, until I can
    follow on changes in.)  I'm really trying to avoid one massive
    change that rips the entire thing apart and puts it back together.<br></div></blockquote><div><br></div><div>This will break builds of folks that don't link CodeGen at all. Since CodeGen depends on IR already, you can safely do a mechanical move from one library to the other, and then do the refactorings you have in mind if that makes things cleaner for you?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    <br>
    Just to be clear, does anyone have concern about the *actual
    ownership* change?</div></blockquote></div><br>I actually do have some concerns, but I don't really have any good answers yet. Here is my current thinking, which I'm not confident in and may be quite broken:</div><div class="gmail_extra"><br></div><div class="gmail_extra">I feel like this isn't an IR construct so much as a utility for examining or analyzing the IR construct, and the IR construct is just a function attribute. Would it make sense to structure the code that way? I'm imagining a GCStrategyAnalysis and MachineGCStrategyAnalysis or something similar which can operate both at the IR level and at the MI level. But I've not worked enough with GCStrategy to know whether this works, or if it doesn't, why it doesn't and whether the problem is fundamental or fixable.</div></div>