<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Hello Everyone,</p>
    <p>This is my first attempt to getting used with the submission
      process. Trying to get the "good practice" with the coding
      standard, tools, mailing lists... and already a few questions:</p>
    <p>- Is it possible to "link" 2 related entries in Phabricator ? one
      for LLVM and one for CFE ? what's the best way of posting 2
      related or dependent patches ? <br>
    </p>
    <p>- I'd like to update and follow on the discussion on bugzilla
      tracker that Renato created already but I can't edit (account
      requested to <a class="moz-txt-link-abbreviated" href="mailto:llvm-admin@lists.llvm.org">llvm-admin@lists.llvm.org</a> without luck). Could
      someone help ?</p>
    <p>So now the proposal:</p>
    <p>The .exidx and .extab unwind sections are needed, when exceptions
      are enabled, for unwinding if the function can throw and to hold
      the EXIDX_CANTUNWIND value if the function does not throw.</p>
    <p>The problem was already discussed in various threads and defects,
      so I won't repeatĀ  the details but basically that confusion is
      that if the compiler (or the user) determined that the function
      cannot throw, we have the NOUNWIND attribute which is not
      orthogonal with either exception support. Despite this we should
      still emit the unwind entry for the EXIDX_CANTUNWIND value, which
      is always done.<br>
    </p>
    <p>Another issue is that canThrow (!NoUnwind) is set by default.
      Setting NoUnwind is an optimisation which is not handled by the
      ARM Streamer. A first approach was to have the backend return
      needsUnwindTableEntry() false if noexception support, but unwind
      tables can be used without exception handler (e.g) for debug infos
      or C unwind with attribute cleanup, and this happened to be quite
      intrusive...<br>
    </p>
    <p>But simpler, when the exceptions are not enabled, we should be
      able to remove them. Just passing this this bit of information
      through a new disable-arm-cantunwind llvm option makes the uwtable
      and nounwind table orthogonal with exception support. <br>
    </p>
    <p>This option is set in clang when no exception support allowing to
      have the -f[no-]exceptions and -f[no-]unwind-tables match GCC for
      C and C++.</p>
    <p>Thanks a lot for your feedbacks, questions and hints for getting
      on board !<br>
    </p>
    <pre wrap=""><a class="moz-txt-link-freetext" href="https://reviews.llvm.org/D31140">https://reviews.llvm.org/D31139</a></pre>
    <pre wrap=""><a class="moz-txt-link-freetext" href="https://reviews.llvm.org/D31140">https://reviews.llvm.org/D31140</a>


</pre>
    <p>Christian<br>
    </p>
    <p><br>
    </p>
    <p> <br>
    </p>
    <p><br>
    </p>
  </body>
</html>