<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Feb 17, 2013, at 1:11 PM, Reed Kotler <<a href="mailto:rkotler@mips.com">rkotler@mips.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
  
    <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 02/17/2013 01:08 PM, Andrew Trick
      wrote:<br>
    </div>
    <blockquote cite="mid:E6086779-B132-4512-9C36-8CF63E2DA28D@apple.com" type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <br>
      <div>
        <div>On Feb 17, 2013, at 1:01 PM, Reed Kotler <<a moz-do-not-send="true" href="mailto:rkotler@mips.com">rkotler@mips.com</a>>
          wrote:</div>
        <br class="Apple-interchange-newline">
        <blockquote type="cite">
          <div bgcolor="#FFFFFF" text="#000000">
            <div class="moz-cite-prefix">On 02/17/2013 12:48 PM, Andrew
              Trick wrote:<br>
            </div>
            <blockquote cite="mid:79A2DD5E-F601-430B-99A7-EB29BCB640AF@apple.com" type="cite">
              <pre wrap="">On Feb 16, 2013, at 1:31 PM, Cameron Zwarich <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="mailto:zwarich@apple.com"><zwarich@apple.com></a> wrote:

</pre>
              <blockquote type="cite">
                <pre wrap="">That's exactly the right place.
</pre>
              </blockquote>
              <pre wrap="">Really? You don't want the expansion to be optimized? You want to specify a machine model for the pseudo's as if they're real instructions? You don't want to schedule or register allocate the real instructions?

-Andy
</pre>
            </blockquote>
            <br>
            So then maybe my code should be called during instruction
            selection?<br>
            <br>
            The very original MIPs port was for Mips I and Mips I has a
            need for lots of psuedos because it's primitive.<br>
            That code has mostly been removed now because we don't
            support Mips I which is just an historical processor at this
            time.<br>
            <br>
            I approach level one implementations of things from the
            point of view of correctness and then make things better as
            I understand the problem better. <br>
            <br>
            So my base scheme for all of this was to create multi line
            assembler expansion in pseudos.<br>
            <br>
            Now that I'm passing mostly all of test-suite, I'm starting
            improve things.<br>
            <br>
            At this time, I'm starting to place expansion in <br>
            <pre wrap=""><big>expandPostRAPseudo

Would it be possible to call this same code during instruction selection?

When I emitting the code for certain formats, I would need to call some emitter which basically the same kind of I'm calling from  expandPostRAPseudo now.</big></pre>
          </div>
        </blockquote>
        <div><br>
        </div>
        expandISelPseudos is the place to cleanup after ISEL hacks, and
        can create BBs. But, as Cameron explained well in the other
        thread, if you want a macro assembler for some sequences, do it
        late in expandPostRAPseudos.</div>
      <div>-Andy</div>
      <div><br>
      </div>
    </blockquote>
    I feel like I should expand things as soon as I have all the
    information because then other passes can help make things better.<br>
    <br>
    So maybe I do this earlier in expandIselPseudos.<br>
    <br>
    Are there any cons ?<br></div></blockquote><div><br></div>If the instructions must be adjacent for correctness or cannot be spilled within the sequence, then you have a problem. Sorry to be vague, but I'll again refer you to Cameron's detailed response.</div><div>-Andy<br><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000"><blockquote cite="mid:E6086779-B132-4512-9C36-8CF63E2DA28D@apple.com" type="cite"><div><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000"><blockquote cite="mid:79A2DD5E-F601-430B-99A7-EB29BCB640AF@apple.com" type="cite"><blockquote type="cite"><pre wrap="">On Feb 16, 2013, at 1:08 PM, Reed Kotler <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="mailto:rkotler@mips.com"><rkotler@mips.com></a> wrote:

</pre>
                <blockquote type="cite">
                  <pre wrap="">I have a bunch of pseudos that I want to lower right after instruction selection.

Where is the best place to do that?

I was planning to use expandPostRAPseudo.

Is there a better place?

TIA.

Reed



_______________________________________________
LLVM Developers mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://llvm.cs.uiuc.edu/">http://llvm.cs.uiuc.edu</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
</pre>
                </blockquote>
                <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://llvm.cs.uiuc.edu/">http://llvm.cs.uiuc.edu</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
</pre>
              </blockquote>
            </blockquote>
            <br>
          </div>
        </blockquote>
      </div>
      <br>
    </blockquote>
    <br>
  </div>

</blockquote></div><br></body></html>