<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body>
    <p>Hi Jason,</p>
    <p><br>
    </p>
    <p>thanks for the reply. That's what we're already using but it's
      not useful in this case. It seems that the order only actually
      matters when the roots are the same. In my case, the roots are
      different. In one case I'm trying to match a G_AND and in the
      other one I'm trying to match G_OR. The G_AND pattern also shows
      up in the larger G_OR pattern. Since the combiner walks top-down,
      it sees the G_AND before the G_OR and matches the smaller pattern.
      When it then reaches the G_OR later on, the larger pattern doesn't
      match anymore because the G_AND has been combined away. If the
      combiner would walk bottom-up, it would see the G_OR before the
      G_AND and my use-case would work as expected.</p>
    <p><br>
    </p>
    <p>So this is not a problem of priority, but rather a problem of the
      traversal that the combiner does. I do understand though that
      simply switching the traversal to bottom-up won't work in every
      case and might even cause the same problem.<br>
    </p>
    <p><br>
    </p>
    <p>Cheers,</p>
    <p><br>
    </p>
    <p>Dominik<br>
    </p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">Am 15.12.20 um 17:05 schrieb Jason
      Eckhardt:<br>
    </div>
    <blockquote type="cite"
cite="mid:SA0PR12MB447879C36E9C102C75A5457CC4C60@SA0PR12MB4478.namprd12.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
        font-size: 12pt; color: rgb(0, 0, 0);">
        GICombineGroup may be of use:<br>
      </div>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
        font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
        font-size: 12pt; color: rgb(0, 0, 0);">
        // A group of combine rules that can be added to a GICombiner or
        another group.
        <div>class GICombineGroup<list<GICombine> rules> :
          GICombine {</div>
        <div>  // The rules contained in this group. The rules in a
          group are flattened into</div>
        <div>  // a single list and sorted into whatever order is most
          efficient. However,</div>
        <div>  // they will never be re-ordered such that behaviour
          differs from the</div>
        <div>  // specified order. It is therefore possible to use the
          order of rules in this</div>
        <div>  // list to describe priorities.</div>
        <div>  let Rules = rules;</div>
        <div>}</div>
        <br>
        <br>
      </div>
      <hr style="display:inline-block;width:98%" tabindex="-1">
      <div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt"
          face="Calibri, sans-serif" color="#000000"><b>From:</b>
          llvm-dev <a class="moz-txt-link-rfc2396E" href="mailto:llvm-dev-bounces@lists.llvm.org"><llvm-dev-bounces@lists.llvm.org></a> on behalf of
          Dominik Montada via llvm-dev <a class="moz-txt-link-rfc2396E" href="mailto:llvm-dev@lists.llvm.org"><llvm-dev@lists.llvm.org></a><br>
          <b>Sent:</b> Tuesday, December 15, 2020 9:09 AM<br>
          <b>To:</b> LLVM Developers' List
          <a class="moz-txt-link-rfc2396E" href="mailto:llvm-dev@lists.llvm.org"><llvm-dev@lists.llvm.org></a><br>
          <b>Subject:</b> [llvm-dev] [GlobalISel] Prioritizing long
          patterns in combiner over short ones</font>
        <div> </div>
      </div>
      <div class="BodyFragment"><font size="2"><span
            style="font-size:11pt;">
            <div class="PlainText">External email: Use caution opening
              links or attachments<br>
              <br>
              <br>
              Hi,<br>
              <br>
              I'm currently writing target specific combiners with
              GlobalISel. I have<br>
              a case where a sub-node of a larger pattern also matches
              another,<br>
              smaller combiner pattern. Because the combiner runs
              top-down, the<br>
              smaller pattern is matched before the larger pattern has a
              chance to be<br>
              matched. Do I have to teach my larger pattern to handle
              this case or is<br>
              there a better way to do this?<br>
              <br>
              More importantly, are there any plans to improve this
              behavior?<br>
              <br>
              Cheers,<br>
              <br>
              Dominik<br>
              <br>
              --<br>
----------------------------------------------------------------------<br>
              Dominik Montada                   Email:
              <a class="moz-txt-link-abbreviated" href="mailto:dominik.montada@hightec-rt.com">dominik.montada@hightec-rt.com</a><br>
              HighTec EDV-Systeme GmbH          Phone: +49 681 92613 19<br>
              Europaallee 19                    Fax:   +49-681-92613-26<br>
              D-66113 Saarbrücken               WWW: <a
                href="http://www.hightec-rt.com" moz-do-not-send="true">http://www.hightec-rt.com</a><br>
              <br>
              Managing Director: Vera Strothmann<br>
              Register Court: Saarbrücken, HRB 10445, VAT ID: DE
              138344222<br>
              <br>
              This e-mail may contain confidential and/or privileged
              information. If<br>
              you are not the intended recipient please notify the
              sender immediately<br>
              and destroy this e-mail. Any unauthorised copying,
              disclosure or<br>
              distribution of the material in this e-mail is strictly
              forbidden.<br>
              ---<br>
              <br>
            </div>
          </span></font></div>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
----------------------------------------------------------------------
Dominik Montada                   Email: <a class="moz-txt-link-abbreviated" href="mailto:dominik.montada@hightec-rt.com">dominik.montada@hightec-rt.com</a>
HighTec EDV-Systeme GmbH          Phone: +49 681 92613 19
Europaallee 19                    Fax:   +49-681-92613-26
D-66113 Saarbrücken               WWW: <a class="moz-txt-link-freetext" href="http://www.hightec-rt.com">http://www.hightec-rt.com</a>

Managing Director: Vera Strothmann
Register Court: Saarbrücken, HRB 10445, VAT ID: DE 138344222

This e-mail may contain confidential and/or privileged information. If
you are not the intended recipient please notify the sender immediately
and destroy this e-mail. Any unauthorised copying, disclosure or
distribution of the material in this e-mail is strictly forbidden.
---</pre>
  </body>
</html>