<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    As a bit of background, the reason we originally went with
    addrspaces to mark GC pointers was that the managed and non-managed
    heaps for us are semantically non-overlapping.   It's not entirely
    clear to me that the notion of two non-overlapping stacks is the
    right mental model for approaching the stack allocated object
    portion.<br>
    <br>
    Philip<br>
    <br>
    <div class="moz-cite-prefix">On 08/26/2015 09:40 PM, Marcello
      Maggioni wrote:<br>
    </div>
    <blockquote
      cite="mid:E696E33D-5566-40C1-B107-908ABB64D0D5@apple.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      It is not clear to me if these GC pointers are actually living in
      a different address space when allocated on the stack (aka. you
      have two different stacks) or if the address space is just a way
      to mark that that pointer is a GC-pointer , but all the stack
      allocation actually lives in the same address space (presumably
      0).
      <div class=""><br class="">
      </div>
      <div class="">Marcello<br class="">
        <div>
          <blockquote type="cite" class="">
            <div class="">On 26 Aug 2015, at 20:39, Swaroop Sridhar via
              llvm-dev <<a moz-do-not-send="true"
                href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>>
              wrote:</div>
            <br class="Apple-interchange-newline">
            <div class="">
              <div class="WordSection1" style="page: WordSection1;
                font-family: Helvetica; font-size: 12px; font-style:
                normal; font-variant: normal; font-weight: normal;
                letter-spacing: normal; line-height: normal; orphans:
                auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;">
                <div style="margin: 0in 0in 0.0001pt; font-size: 12pt;
                  font-family: 'Times New Roman', serif;" class=""><span
                    style="font-size: 11pt; font-family: Calibri,
                    sans-serif; color: rgb(31, 73, 125);" class="">Please
                    see inline.<o:p class=""></o:p></span></div>
                <div style="margin: 0in 0in 0.0001pt; font-size: 12pt;
                  font-family: 'Times New Roman', serif;" class=""><span
                    style="font-size: 11pt; font-family: Calibri,
                    sans-serif; color: rgb(31, 73, 125);" class=""> </span></div>
                <div style="margin: 0in 0in 0.0001pt; font-size: 12pt;
                  font-family: 'Times New Roman', serif;" class=""><b
                    class=""><span style="font-size: 11pt; font-family:
                      Calibri, sans-serif;" class="">From:</span></b><span
                    style="font-size: 11pt; font-family: Calibri,
                    sans-serif;" class=""><span
                      class="Apple-converted-space"> </span>Chandler
                    Carruth [<a moz-do-not-send="true"
                      href="mailto:chandlerc@google.com" style="color:
                      purple; text-decoration: underline;" class="">mailto:chandlerc@google.com</a>]<span
                      class="Apple-converted-space"> </span><br class="">
                    <b class="">Sent:</b><span
                      class="Apple-converted-space"> </span>Wednesday,
                    August 26, 2015 7:03 PM<br class="">
                    <b class="">To:</b><span
                      class="Apple-converted-space"> </span>Swaroop
                    Sridhar <<a moz-do-not-send="true"
                      href="mailto:Swaroop.Sridhar@microsoft.com"
                      style="color: purple; text-decoration: underline;"
                      class="">Swaroop.Sridhar@microsoft.com</a>>;
                    llvm-dev <<a moz-do-not-send="true"
                      href="mailto:llvm-dev@lists.llvm.org"
                      style="color: purple; text-decoration: underline;"
                      class="">llvm-dev@lists.llvm.org</a>>; Philip
                    Reames <<a moz-do-not-send="true"
                      href="mailto:listmail@philipreames.com"
                      style="color: purple; text-decoration: underline;"
                      class="">listmail@philipreames.com</a>>; Sanjoy
                    Das <<a moz-do-not-send="true"
                      href="mailto:sanjoy@playingwithpointers.com"
                      style="color: purple; text-decoration: underline;"
                      class="">sanjoy@playingwithpointers.com</a>><br
                      class="">
                    <b class="">Subject:</b><span
                      class="Apple-converted-space"> </span>Re:
                    [llvm-dev] RFC: alloca -- specify address space for
                    allocation<o:p class=""></o:p></span></div>
                <div style="margin: 0in 0in 0.0001pt; font-size: 12pt;
                  font-family: 'Times New Roman', serif;" class=""><o:p
                    class=""> </o:p></div>
                <div class="">
                  <div class="">
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class="">On Wed, Aug 26, 2015 at 6:46 PM Swaroop
                        Sridhar via llvm-dev <<a
                          moz-do-not-send="true"
                          href="mailto:llvm-dev@lists.llvm.org"
                          style="color: purple; text-decoration:
                          underline;" class="">llvm-dev@lists.llvm.org</a>>
                        wrote:<o:p class=""></o:p></div>
                    </div>
                    <blockquote style="border-style: none none none
                      solid; border-left-color: rgb(204, 204, 204);
                      border-left-width: 1pt; padding: 0in 0in 0in 6pt;
                      margin: 5pt 0in 5pt 4.8pt;" class="">
                      <div class="">
                        <div class="">
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class="">Currently, the<span
                              class="Apple-converted-space"> </span><span
                              style="font-size: 10pt; font-family:
                              Consolas;" class="">alloca</span><span
                              class="Apple-converted-space"> </span>instruction
                            always allocates in the generic address
                            space (0).<o:p class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class="">This proposal is to
                            extend the semantics of<span
                              class="Apple-converted-space"> </span><span
                              style="font-size: 10pt; font-family:
                              Consolas;" class="">alloca</span><span
                              class="Apple-converted-space"> </span>instruction
                            to allow allocation in any specified address
                            space.<o:p class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class=""> <o:p class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class=""><b class="">Proposed
                              Syntax</b><o:p class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class=""><span
                              style="font-size: 10pt; font-family:
                              Consolas;" class=""><result> =
                              alloca [inalloca] <type> [,
                              <ty> <NumElements>] [, align
                              <alignment>]<span
                                class="Apple-converted-space"> </span><b
                                class="">[,<span
                                  class="Apple-converted-space"> </span><span
                                  style="background-color: white;"
                                  class="">addrspace<span
                                    class="Apple-converted-space"> </span></span><<span
                                  style="background-color: white;"
                                  class="">num</span>>]</b><span
                                class="Apple-converted-space"> </span>;
                              yields type addrspace(num)*:result</span><o:p
                              class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class=""><span
                              style="font-size: 10pt; font-family:
                              Consolas;" class=""> </span><o:p class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class=""><b class="">Motivation</b><o:p
                              class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class="">Managed language
                            clients typically use address space 1 to
                            represent GC-pointers.<o:p class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class="">Some managed
                            clients (CLR, in particular) allow
                            construction of GC pointers to stack
                            locations.<o:p class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class="">For example, MSIL
                            instruction ldloca (ECMA 335, p 370) creates
                            a GC pointer to a stack local.<o:p class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class=""> <o:p class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class="">Creating an<span
                              class="Apple-converted-space"> </span><span
                              style="font-size: 10pt; font-family:
                              Consolas;" class="">addrespace(1)*</span><span
                              class="Apple-converted-space"> </span>pointer
                            to a stack location currently involves two
                            steps: the<span
                              class="Apple-converted-space"> </span><span
                              style="font-size: 10pt; font-family:
                              Consolas;" class="">alloca</span>, and an<span
                              class="Apple-converted-space"> </span><span
                              style="font-size: 10pt; font-family:
                              Consolas;" class="">addrspacecast</span>.<o:p
                              class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class="">Managed code
                            transformations (ex:<span
                              class="Apple-converted-space"> </span><span
                              style="font-size: 10pt; font-family:
                              Consolas;" class="">RewriteStatepointsForGC</span>)
                            do not handle arbitrary address space
                            casting.<o:p class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class="">So, it is desirable
                            to obtain the<span
                              class="Apple-converted-space"> </span><span
                              style="font-size: 10pt; font-family:
                              Consolas;" class="">addrespace(1)*</span><span
                              class="Apple-converted-space"> </span>pointer
                            by construction.<o:p class=""></o:p></div>
                        </div>
                      </div>
                    </blockquote>
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class="">I don't have a particular or specific
                        objection here necessarily, but I have to admit
                        I don't understand the use case (yet). I'm
                        hoping you can explain it to me more thoroughly.<o:p
                          class=""></o:p></div>
                    </div>
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><o:p class=""> </o:p></div>
                    </div>
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class="">What semantics do you expect for GC
                        pointer to a stack location? That's what I don't
                        really understand. Some questions that leap to
                        mind, but may be the wrong questions (so feel
                        free to point me in the right direction here)...<o:p
                          class=""></o:p></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><span style="font-size: 11pt;
                          font-family: Calibri, sans-serif; color:
                          rgb(31, 73, 125);" class=""> </span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><span style="font-size: 11pt;
                          font-family: Calibri, sans-serif; color:
                          rgb(31, 73, 125);" class="">CLR defines the a
                          kind of GC pointer called “managed pointer” ,
                          which can point to a local variable, heap
                          object, parameter, field of a compound type,
                          or element of an array</span>.<span
                          class="Apple-converted-space"> </span><span
                          style="font-size: 11pt; font-family: Calibri,
                          sans-serif; color: rgb(31, 73, 125);" class="">The
                          semantics of managed pointer is liberally
                          defined to support by-reference passing. For
                          example, in this C# example:<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class=""> </span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class=""> </span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">public</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">class</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: rgb(43, 145, 175);" class="">Obj<span
                            class="Apple-converted-space"> </span></span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">{ </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">public</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">int</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> i; }<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> </span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">public</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">static</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">int</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> Test() {<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">  </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: rgb(43, 145, 175);" class="">Obj</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> obj = </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">new</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: rgb(43, 145, 175);" class="">Obj</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">();<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> <span
                            class="Apple-converted-space"> </span></span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">int</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""><span
                            class="Apple-converted-space"> </span>i=0;<o:p
                            class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">  …<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> </span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">  </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">if</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">(cond) {<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">    Fn(</span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">ref</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> i);     </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: green;" class="">// managed pointer to a stack location</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""><o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">  }<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">  </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">else</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> {<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">    Fn(</span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: blue;" class="">ref</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""> obj.i); </span><span
                          style="font-size: 10pt; font-family: Consolas;
                          color: green;" class="">// managed pointer to a heap location</span><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class=""><o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">  }<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;
                        background-color: white;" class=""><span
                          style="font-size: 10pt; font-family:
                          Consolas;" class="">}<o:p class=""></o:p></span></div>
                    </div>
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><o:p class=""> </o:p></div>
                    </div>
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class="">- Can I promote such a location to an
                        SSA register?<o:p class=""></o:p></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><span style="font-size: 11pt;
                          font-family: Calibri, sans-serif; color:
                          rgb(31, 73, 125);" class=""> </span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><span style="font-size: 11pt;
                          font-family: Calibri, sans-serif; color:
                          rgb(31, 73, 125);" class="">The rules for the
                          stack location is the same as any
                          address-taken location.<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><span style="font-size: 11pt;
                          font-family: Calibri, sans-serif; color:
                          rgb(31, 73, 125);" class="">I don’t think the
                          fact that the generated address is a managed
                          pointer should make a difference.<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><o:p class=""> </o:p></div>
                    </div>
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class="">- What does it mean to collect a stack
                        location?<o:p class=""></o:p></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><o:p class=""> </o:p></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><span style="font-size: 11pt;
                          font-family: Calibri, sans-serif; color:
                          rgb(31, 73, 125);" class="">The stack location
                          is not GCed or relocated.<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><span style="font-size: 11pt;
                          font-family: Calibri, sans-serif; color:
                          rgb(31, 73, 125);" class="">For a reported
                          managed pointer, if the referenced location is
                          outside the bounds of the GC-heap, the runtime
                          leaves it alone.<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><o:p class=""> </o:p></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class="">- Can I merge stack allocations that
                        are GC pointers? Can I re-use them? What
                        semantics do I get?<o:p class=""></o:p></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class="">- Do GC pointers to stack locations
                        have any different aliasing properties?<o:p
                          class=""></o:p></div>
                    </div>
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class="">- When the optimizer needs to create a
                        new stack allocation, what address space should
                        it be in?<o:p class=""></o:p></div>
                    </div>
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><o:p class=""> </o:p></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><span style="font-size: 11pt;
                          font-family: Calibri, sans-serif; color:
                          rgb(31, 73, 125);" class="">I’ll answer these
                          questions in my next email.<o:p class=""></o:p></span></div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><o:p class=""> </o:p></div>
                    </div>
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class="">Ultimately, to make this change, you'll
                        also need to change a decent amount of code in
                        the optimizer that will blindly create stack
                        allocations in address space zero.<o:p class=""></o:p></div>
                    </div>
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class=""><o:p class=""> </o:p></div>
                    </div>
                    <div class="">
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class="">Without a better understanding of both
                        the motivation and the resulting consequences
                        such as what I've outlined in my questions
                        above, it is very hard for me to feel
                        comfortable with this kind of change.<o:p
                          class=""></o:p></div>
                    </div>
                    <blockquote style="border-style: none none none
                      solid; border-left-color: rgb(204, 204, 204);
                      border-left-width: 1pt; padding: 0in 0in 0in 6pt;
                      margin: 5pt 0in 5pt 4.8pt;" class="">
                      <div class="">
                        <div class="">
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class=""> <o:p class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class="">Thanks,<o:p
                              class=""></o:p></div>
                          <div style="margin: 0in 0in 0.0001pt;
                            font-size: 12pt; font-family: 'Times New
                            Roman', serif;" class="">Swaroop.<o:p
                              class=""></o:p></div>
                        </div>
                      </div>
                      <div style="margin: 0in 0in 0.0001pt; font-size:
                        12pt; font-family: 'Times New Roman', serif;"
                        class="">_______________________________________________<br
                          class="">
                        LLVM Developers mailing list<br class="">
                        <a moz-do-not-send="true"
                          href="mailto:llvm-dev@lists.llvm.org"
                          target="_blank" style="color: purple;
                          text-decoration: underline;" class="">llvm-dev@lists.llvm.org</a><br
                          class="">
                        <a moz-do-not-send="true"
href="https://urldefense.proofpoint.com/v2/url?u=https-3A__na01.safelinks.protection.outlook.com_-3Furl-3Dhttp-253a-252f-252flists.llvm.org-252fcgi-2Dbin-252fmailman-252flistinfo-252fllvm-2Ddev-26data-3D01-257c01-257cSwaroop.Sridhar-2540microsoft.com-257c58ded8bf3e5141b4884c08d2ae839898-257c72f988bf86f141af91ab2d7cd011db47-257c1-26sdata-3DxY2wWEhcEGdjQtcEqzSAXstTDgFW-252fxPl4RhJIDYQCCY-253d&d=BQMGaQ&c=eEvniauFctOgLOKGJOplqw&r=THu9ANfN9LYlQTYNQdmA7D-MsdMl2OioTAKXjMfn7i4&m=rPG5Brg7MCC-dk2NfmVIUdydnG-sBY4i5vxuuhfMjn4&s=JKA46T4ShURRYPiglJdaLfv4njMVPeb-zf_i0CiLfbw&e="
                          target="_blank" style="color: purple;
                          text-decoration: underline;" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><o:p
                          class=""></o:p></div>
                    </blockquote>
                  </div>
                </div>
              </div>
              <span style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                float: none; display: inline !important;" class="">_______________________________________________</span><br
                style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;"
                class="">
              <span style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                float: none; display: inline !important;" class="">LLVM
                Developers mailing list</span><br style="font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant: normal; font-weight: normal;
                letter-spacing: normal; line-height: normal; orphans:
                auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;"
                class="">
              <a moz-do-not-send="true"
                href="mailto:llvm-dev@lists.llvm.org" style="color:
                purple; text-decoration: underline; font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant: normal; font-weight: normal;
                letter-spacing: normal; line-height: normal; orphans:
                auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;"
                class="">llvm-dev@lists.llvm.org</a><br
                style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;"
                class="">
              <a moz-do-not-send="true"
href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=BQIGaQ&c=eEvniauFctOgLOKGJOplqw&r=THu9ANfN9LYlQTYNQdmA7D-MsdMl2OioTAKXjMfn7i4&m=rPG5Brg7MCC-dk2NfmVIUdydnG-sBY4i5vxuuhfMjn4&s=GWkPE5c8T8RLUaT_ef53yhM_NZqIhsE2Kyze3P8Rf3s&e="
                style="color: purple; text-decoration: underline;
                font-family: Helvetica; font-size: 12px; font-style:
                normal; font-variant: normal; font-weight: normal;
                letter-spacing: normal; line-height: normal; orphans:
                auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;"
                class="">https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=BQIGaQ&c=eEvniauFctOgLOKGJOplqw&r=THu9ANfN9LYlQTYNQdmA7D-MsdMl2OioTAKXjMfn7i4&m=rPG5Brg7MCC-dk2NfmVIUdydnG-sBY4i5vxuuhfMjn4&s=GWkPE5c8T8RLUaT_ef53yhM_NZqIhsE2Kyze3P8Rf3s&e=</a><span
                style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                float: none; display: inline !important;" class=""> </span><br
                style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;"
                class="">
            </div>
          </blockquote>
        </div>
        <br class="">
      </div>
    </blockquote>
    <br>
  </body>
</html>