<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jul 16, 2012, at 2:11 PM, Rodrigo Kumpera wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><br><br><div class="gmail_quote">On Mon, Jul 16, 2012 at 2:45 PM, Jonathan Shore <span dir="ltr"><<a href="mailto:jonathan.shore@gmail.com" target="_blank">jonathan.shore@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 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; ">
<div style="word-wrap:break-word"><div>Hi Rodrigo,</div><div><br></div><div>I have played with the MONO_INLINELIMIT env variable (just discovered in the mono code a couple of days ago).  It solved some of my other inlining issues.   The AggressiveInlining option should be helpful for methods in 4.5 (I'm still on 4.0), though I don't believe the attribute can be used on properties, even though they are effectively methods (or am I wrong here).</div>
</div></blockquote><div><br></div><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 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; "><div style="word-wrap:break-word"><div><br></div><div>You mentioned "we don't inline methods that call other methods" and suggested might be the case in my code.   I am simply indexing the get method in:</div><div class="im">
<div><br></div><div>public override double this[int i]</div><div>{</div><div><span style="white-space:pre-wrap">        </span>get { return _data[i]; }</div><div><span style="white-space:pre-wrap"> </span>set { _data[i]  = value; }</div>
<div>}</div><div><br></div></div><div>I thought that since this is an override, though on a leaf / sealed class, perhaps mono could not handle this case.   Not sure where indexing on this property would hit the "call another method" case.</div>
</div></blockquote><div><br></div><div>This should probably inline fine. Can you provide a small and complete sample where this does happen? Your problem sounds really odd.</div></div></blockquote><div><br></div><div>I did not try the MONO_INLINELIMIT with this particular problem.  I manually inlined this one prior to posting and later applied the env variable for a different inlining issue after posting.   It seems like the default limit is perhaps too low (or too low for my application, I am OK with using the env variable however).  </div><div><br></div><div>I'll reverse the change and give the env variable a go with the above.   Also, let me check the hierarchy of this class and see whether there is any static construction.   </div><div><br></div><div>If there is nothing obvious, will try to arrange a test case over the next few days.   Will be a bit tricky to arrange test, possibly, due to the class environment.   With luck, can demonstrate with a simple test.</div><div><br></div><div>Finally, how do I see the generated llvm x86 code.  Can I do this with monodis?   I know I can see the IL   Thus far have been testing by noting the runtime.</div><br><blockquote type="cite"><div class="gmail_quote"><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><div>If I understand this better, I can investigate / suggest some new feature re: inlining.</div><div><br></div></div></blockquote><div> </div></div>
</blockquote></div><br></body></html>