<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"><base href="x-msg://9387/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Good question. But if you are good about making the structs anonymous and taking their address then TBAA in C should not give you problems.<br>
<br><div><div>On Sep 28, 2012, at 3:31 PM, Jay K <<a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="hmmessage" style="font-size: 12pt; font-family: Calibri; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div dir="ltr">> structs volatile<br><br>Mainly paranoia.<div>But I do wonder if the breakage I saw in gcc's "sra" optimization pass (structure replaced by aggregate) by feeding it trees can be reproduced from C. I should look into that...</div><div><br></div><div><br></div><div> - Jay<br><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">Subject: Re: [M3devel] deeper meaning of in_memory?<br>From: <a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a><br>Date: Fri, 28 Sep 2012 10:11:49 -0400<br>CC: <a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a><br>To: <a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a><br><br>in_memory does not mean volatile. It is simply a sign that its address is needed.<div>So, yes, taking its address is good enough.</div><div>An example of a local in memory is something passed by VAR.</div><div><br></div><div>So, NOT VOLATILE.</div><div><br></div><div>Why do structs need to be C volatile?<br><br><div><div>On Sep 27, 2012, at 10:57 PM, Jay K <<a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:</div><br class="ecxApple-interchange-newline"><blockquote><div class="ecxhmmessage" style="font-size: 12pt; font-family: Calibri; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; "><div dir="ltr">In M3CG, what is the deeper meaning of in_memory?<div>I know it means -- "put the thing in memory".</div><div>But why and exactly what?<br>Presumably it can also be in a register, just that the in-memory value must be kept up to date.</div><div>Like, stores should be volatile, but reads don't have to be?</div><div>Does it mean the value will be used in an exception/finally handler?</div><div>Maybe reads do need to be volatile? Maybe it is accessed by another thread w/o a lock?</div><div><br></div><div><br></div><div>If I take the address of something, is that good enough?</div><div><br></div><div><br></div><div>I should just look where m3front uses it, I know.</div><div>For now I'll probably take it to mean "volatile".</div><div>I already mark all structs as volatile. But I don't make everything volatile (like how m3cc long did).</div><div><br></div><div><br></div><div>Thanks,</div><div> - Jay</div></div></div></blockquote></div></div></div></div></div></div></blockquote></div><br></body></html>