Some responses that I didn't want to lose. By and large, I'm applying the suggestions. There are many comments that boil down to "this function should come from LLVM somewhere", and yes I agree. I plan to factor lots of that out, but haven't gotten to that stage of cleanup. I did look first though.<br>
<br><div class="gmail_quote">On Thu, Sep 13, 2012 at 1:32 PM, Duncan Sands <span dir="ltr"><<a href="mailto:baldrick@free.fr" target="_blank">baldrick@free.fr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Urgh, what is the *U that turns up here?  Seems like breaking the abstraction.</blockquote><div><br></div><div>It's actually used elsewhere as well. While the visitor is designed to visit instructions, we actually want to visit the Use structure so we have access to the used instruction as well as the user. The visitor stashes the Use in the 'U' member. We use it more heavily in the subclasses, but this assert helped track down some bugs.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Above you seem to be assuming that the elements are naturally aligned, i.e. have</div>
alloc size equal to the size in bits.  I'm not sure that is guaranteed.<br></blockquote><div><br></div><div>That's exactly what is guaranteed for vectors?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Shouldn't this be EndOffset - 1?  (In which case it should be <= above).<br></blockquote><div><br></div><div>No, we're building an end iterator here. We want to be one-past-the-end.</div></div>