<div dir="ltr">Done.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Mar 27, 2014 at 3:00 PM, Shankar Easwaran <span dir="ltr"><<a href="mailto:shankare@codeaurora.org" target="_blank">shankare@codeaurora.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <div>Wow, I was unaware of this change that
      deadStrip was always enabled for PE/COFF with lld.<br>
      <br>
      LGTM then, Can we put a note in the code that kindLayoutBefore
      will be removed and used only by Dead stripping code to prevent
      atoms from being deadstripped.<br>
      <br>
      Thanks<span class="HOEnZb"><font color="#888888"><br>
      <br>
      Shankar Easwaran</font></span><div><div class="h5"><br>
      <br>
      On 3/27/2014 4:40 PM, Rui Ueyama wrote:<br>
    </div></div></div><div><div class="h5">
    <blockquote type="cite">
      <div dir="ltr">Dead-stripping is enabled by default for PE/COFF
        because MSVC link.exe does it by default.
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Thu, Mar 27, 2014 at 2:38 PM,
            Shankar Easwaran <span dir="ltr"><<a href="mailto:shankare@codeaurora.org" target="_blank">shankare@codeaurora.org</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div text="#000000" bgcolor="#FFFFFF">
                <div>I understand your usecase, but what I meant is,
                  dead-strip is only a option available in core. <br>
                  <br>
                  Removing kindLayoutBefore completely should not affect
                  anything because we dont dead strip in flavors [link,
                  gnu, ld64] <br>
                  <br>
                  Thanks<span><font color="#888888"><br>
                      <br>
                      Shankar Easwaran</font></span>
                  <div>
                    <div><br>
                      <br>
                      On 3/27/2014 4:31 PM, Rui Ueyama wrote:<br>
                    </div>
                  </div>
                </div>
                <div>
                  <div>
                    <blockquote type="cite">
                      <div dir="ltr">
                        <div>Can you elaborate a bit? I don't understand
                          what you mean.</div>
                        <div><br>
                        </div>
                        <div>Removing kindLayoutBefore will affect dead
                          stripping because it would lost back
                          references for kindLayoutAfter, so it would
                          collect live atoms.</div>
                        <div><br>
                        </div>
                        I'm not removing kindLayoutBefore in this patch.
                        This patch is just to stop using
                        kindLayoutBefore in the layout pass. The dead
                        stripping pass is still using it. Removing
                        kindLayoutBefore entirety is the last step,
                        after modifying the dead stripping pass so that
                        the pass works without kindLayoutBefore (only
                        with kindLayoutAfter and kindInGroup).<br>
                      </div>
                      <div class="gmail_extra"><br>
                        <br>
                        <div class="gmail_quote">On Thu, Mar 27, 2014 at
                          12:45 PM, Shankar Easwaran <span dir="ltr"><<a href="mailto:shankare@codeaurora.org" target="_blank">shankare@codeaurora.org</a>></span>
                          wrote:<br>
                          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                            <div text="#000000" bgcolor="#FFFFFF">
                              <div>
                                <div>On 3/27/2014 2:33 PM, Rui Ueyama
                                  wrote:<br>
                                </div>
                                <blockquote type="cite">
                                  <div dir="ltr">
                                    <div style="font-family:arial,sans-serif;font-size:13px">(I


                                      accidentally hit "reply" instead
                                      of "reply all", so sending it
                                      again.)</div>
                                    <div style="font-family:arial,sans-serif;font-size:13px">
                                      <br>
                                    </div>
                                    <div style="font-family:arial,sans-serif;font-size:13px">I'll


                                      add "alias" references if no
                                      objections from other reviewers.
                                      I'll probably add ELF symbol
                                      aliasing support with it, so hold
                                      on.</div>
                                    <div style="font-family:arial,sans-serif;font-size:13px"><br>
                                    </div>
                                    <div style="font-family:arial,sans-serif;font-size:13px">We


                                      cannot remove kindLayoutBefore
                                      because doing it would break dead
                                      stripping pass. We still need it
                                      for GC as GC needs backward
                                      references.</div>
                                    <div style="font-family:arial,sans-serif;font-size:13px"><br>
                                    </div>
                                    <div style="font-family:arial,sans-serif;font-size:13px">To


                                      remove kindLayoutBefore, we have
                                      to modify dead striping pass so
                                      that it creates back references
                                      internally from forward references
                                      and use it while collecting dead
                                      objects. I think I'm going to make
                                      such change, but it's going a bit
                                      large.</div>
                                    <div style="font-family:arial,sans-serif;font-size:13px"><br>
                                    </div>
                                    <div style="font-family:arial,sans-serif;font-size:13px">Submitting


                                      this change first and then doing
                                      the next step in a following patch
                                      would be better than merging the
                                      two together. Incremental change
                                      is easier to bisect in case it
                                      would breaks omething, and it's
                                      easy to understand for reviewers,
                                      too.</div>
                                  </div>
                                  <div class="gmail_extra"><br>
                                  </div>
                                </blockquote>
                              </div>
                              <div> Do we have a flag to garbage collect
                                atoms with lld in the current
                                implementation ? If not removing
                                kindLayoutBefore wouldnot affect
                                anything right ?<br>
                                <br>
                              </div>
                              <div> Shankar Easwaran<br>
                                <br>
                                <pre cols="72">-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation</pre>
                              </div>
                            </div>
                          </blockquote>
                        </div>
                        <br>
                      </div>
                    </blockquote>
                    <br>
                    <br>
                    <pre cols="72">-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation</pre>
                  </div>
                </div>
              </div>
            </blockquote>
          </div>
          <br>
        </div>
      </div>
    </blockquote>
    <br>
    <br>
    <pre cols="72">-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation</pre>
  </div></div></div>

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