<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; "><br><div><div>On Aug 21, 2012, at 2:10 PM, Chandler Carruth <<a href="mailto:chandlerc@google.com">chandlerc@google.com</a>> wrote:</div><br><blockquote type="cite"><div class="gmail_extra"><div class="gmail_quote"><div>I just wanted to comment on the migration bit:</div><div> </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; position: static; z-index: auto; ">I can't just kill off the neverHasSideEffects flag, that could cause miscompilations by clearing the UnmodeledSideEffects bit on instructions that should have it.<br>
</blockquote><div><br></div><div>Why not mass-update all the td files in the tree to explicitly set the flag exactly as it is being inferred today, then kill the inference. The behavior is the same, but now explicit, and we can go through and remove all the places that make no sense.</div>
</div></div></blockquote><div><br></div><div>This would work for the mayLoad / mayStore flags. You'll get a bunch of warnings on your loads and stores.</div><div><br></div><div>For hasSideEffects, I will be changing what happens when you do nothing (i.e., set neither neverHasSideEffects nor hasSideEffects). We need a tool that can point out those instructions so they can be audited, as Jim suggested.</div><div><br></div><div>I think we should make sure that such a tool is available at least in the the next release.</div><div><br></div><div>/jakob</div><div><br></div></div></body></html>