<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 11/11/13 3:47 AM, Saleena Nazeer
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAG7=QRCnbmDruY4eUBEPLVtzdK_8rgNoYyZe0uzged4CXe-d1g@mail.gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
                <div>Hi,<br>
                </div>
                We are planning to implement an analysis and
                optimization specifically meant for non-SSA code. We
                would like to know whether LLVM supports non-SSA IR? The
                other choice we have is to work with the GIMPLE code of
                GCC. We need your help in choosing the appropriate
                framework. <br>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Heap objects and address-taken global and stack variables are not in
    SSA form in LLVM.  You can therefore use your analysis on them
    (although be aware that you'll have to deal with weak updates due to
    aliasing).<br>
    <br>
    Also, I would think that an analysis on non-SSA variables would also
    work on SSA variables; the analysis just may not be as efficient as
    it could be because it's not taking advantage of the SSA form.  Is
    there a particular reason why you're looking for a non-SSA IR?<br>
    <br>
    The machine code IR in LLVM (MachineInstrs, MachineBasicBlocks,
    etc.) is not required to be in SSA form.  I think it starts in SSA
    form and is then changed into non-SSA form during code generation. 
    You could make your analysis and optimization a MachineFunctionPass,
    but if it's meant to run on a platform-independent IR, I'm not sure
    it's the best choice.<br>
    <br>
    The Clang AST is higher level than LLVM IR, but I don't think it's
    in SSA form.<br>
    <br>
    As for GIMPLE, I've never worked with it, so I can't compare it to
    LLVM.<br>
    <br>
    -- John T.<br>
    <br>
    <blockquote
cite="mid:CAG7=QRCnbmDruY4eUBEPLVtzdK_8rgNoYyZe0uzged4CXe-d1g@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
              </div>
              thanks<br>
            </div>
            Saleena N<br>
          </div>
          National Institute of Technology Calicut<br>
        </div>
        India<br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a class="moz-txt-link-freetext" href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>