<div dir="rtl"><div dir="ltr"><span style="font-size:12.7272720336914px">ModuleBuilder is an ASTConsumer wrapping CodeGenModule to generate IR. </span><span style="font-size:12.7272720336914px">It has two types of users (we know of so far). </span><span style="font-size:12.7272720336914px">The first is in-tree BackendConsumer, generating object and assembler files and the second is MCJIT (and the old JIT in previous versions). </span></div><div><span style="font-size:12.7272720336914px"><br></span></div><div dir="ltr">Since <span style="font-size:12.7272720336914px">BackendConsumer can generate no file (Action = </span><span style="font-size:12.7272720336914px">Backend_EmitNothing</span><span style="font-size:12.7272720336914px">) it may make sense to merge </span><span style="font-size:12.7272720336914px">BackendConsumer</span><span style="font-size:12.7272720336914px"> into </span><span style="font-size:12.7272720336914px">ModuleBuilder and remove </span><span style="font-size:12.7272720336914px">BackendConsumer altogether. This should work with JIT just the same and eliminate the </span><span style="font-size:12.7272720336914px">BackendConsumer-</span><span style="font-size:12.7272720336914px">ModuleBuilder</span><span style="font-size:12.7272720336914px"> interface.</span><br></div><div dir="ltr"><span style="font-size:12.7272720336914px"><br></span></div><div dir="ltr"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div dir="ltr">2014-12-31 0:07 GMT+02:00 Vassil Vassilev <span dir="ltr"><<a href="mailto:vvasilev@cern.ch" target="_blank">vvasilev@cern.ch</a>></span>:</div><blockquote class="gmail_quote" style="margin:0 .8ex;border-left:1px #ccc solid;border-right:1px #ccc solid;padding-left:1ex;padding-right:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF"><span class="">
    <div>On 30/12/14 13:34, Yaron Keren wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="rtl">
        <div dir="ltr">True, I checked now and cling uses the
          ModuleBuilder. It can't switch to BackendConsumer as it's
          still using the old JIT.</div>
      </div>
    </blockquote></span>
    Technically the old JIT is gone and if we update to newer llvm
    (which is the plan) we will have to migrate to MCJIT. Given that,
    would it be easier to avoid using ModuleBuilder?<br>
    Vassil<div><div class="h5"><br>
    <blockquote type="cite">
      <div dir="rtl">
        <div dir="ltr"><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">
          <div dir="ltr">2014-12-30 10:04 GMT+02:00 Mark Boyall <span dir="ltr"><<a href="mailto:wolfeinstein@gmail.com" target="_blank">wolfeinstein@gmail.com</a>></span>:</div>
          <blockquote class="gmail_quote" style="margin:0 .8ex;border-left:1px #ccc solid;border-right:1px #ccc solid;padding-left:1ex;padding-right:1ex">
            <div>
              <div>
                <div style="font-family:Calibri,sans-serif;font-size:11pt">I
                  have a hard dependency on it and have no idea how I
                  could handle losing that API</div>
              </div>
              <div dir="ltr">
                <hr><span style="font-family:Calibri,sans-serif;font-size:11pt;font-weight:bold">From:
                </span><span style="font-family:Calibri,sans-serif;font-size:11pt"><a href="mailto:kfischer@college.harvard.edu" target="_blank">Keno Fischer</a></span><br>
                <span style="font-family:Calibri,sans-serif;font-size:11pt;font-weight:bold">Sent:
                </span><span style="font-family:Calibri,sans-serif;font-size:11pt">30/12/2014
                  07:32</span><br>
                <span style="font-family:Calibri,sans-serif;font-size:11pt;font-weight:bold">To:
                </span><span style="font-family:Calibri,sans-serif;font-size:11pt"><a href="mailto:yaron.keren@gmail.com" target="_blank">Yaron
                    Keren</a>; <a href="mailto:vvasilev@cern.ch" target="_blank">vvasilev@cern.ch</a></span><br>
                <span style="font-family:Calibri,sans-serif;font-size:11pt;font-weight:bold">Cc:
                </span><span style="font-family:Calibri,sans-serif;font-size:11pt"><a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu
                    Developers</a>; <a href="mailto:rafael.espindola@gmail.com" target="_blank">Rafael Ávila de Espíndola</a>; <a href="mailto:rnk@google.com" target="_blank">Reid Kleckner</a>; <a href="mailto:chandlerc@google.com" target="_blank">Chandler
                    Carruth</a>; <a href="mailto:richard@metafoo.co.uk" target="_blank">Richard
                    Smith</a>; <a href="mailto:wolfeinstein@gmail.com" target="_blank">Mark
                    Boyall</a>; <a href="mailto:chisophugis@gmail.com" target="_blank">chisophugis@gmail.com</a></span><br>
                <span style="font-family:Calibri,sans-serif;font-size:11pt;font-weight:bold">Subject:
                </span><span style="font-family:Calibri,sans-serif;font-size:11pt">Re:
                  Is ModuleBuilder useful to anyone?</span><br>
                <br>
              </div>
              <div>
                <div>
                  <div dir="ltr">Personally I'm not using it, but I
                    recall that cling might be?</div>
                  <div class="gmail_extra"><br>
                    <div class="gmail_quote">On Tue, Dec 30, 2014 at
                      8:22 AM, Yaron Keren <span dir="ltr"><<a href="mailto:yaron.keren@gmail.com" target="_blank">yaron.keren@gmail.com</a>></span>
                      wrote:<br>
                      <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">
                        <div dir="rtl">
                          <div dir="ltr">Following</div>
                          <div dir="ltr"><br>
                          </div>
                          <div dir="ltr"> <a href="http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140825/113355.html" target="_blank">http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140825/113355.html</a><br>
                          </div>
                          <div dir="ltr"><br>
                          </div>
                          <div dir="ltr">In tree,  ModuleBuilder has one
                            user (+test) only, the BackendConsumer.</div>
                          <div dir="ltr">The interaction between the two
                            classes complicates BackendConsumer logic.
                            For instance, both hold the same Module * in
                            two different std::unique_ptr and dance
                            around this problem to avoid releasing it
                            twice or none. <br>
                          </div>
                          <div dir="ltr"><br>
                          </div>
                          <div dir="ltr">Out of tree, is ModuleBuilder
                            limited functionality useful to any project?</div>
                          <div dir="ltr"><br>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                    <br>
                  </div>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
    <br>
    </div></div><span class="HOEnZb"><font color="#888888"><pre cols="72">-- 
--------------------------------------------
Q: Why is this email five sentences or less?
A: <a href="http://five.sentenc.es" target="_blank">http://five.sentenc.es</a>
</pre>
  </font></span></div>

</blockquote></div><br></div>