<p dir="ltr">Thank you Quentin. </p>
<p dir="ltr">It is an interesting fact that the liveness Analisys be maintained in SSA, even after the phase of PHI Destruction. It facilitates the implementation of the register allocator.</p>
<p dir="ltr">Cheers, <br>
Natanael. </p>
<div class="gmail_quote">Em 09/07/2015 17:28, "Quentin Colombet" <<a href="mailto:qcolombet@apple.com">qcolombet@apple.com</a>> escreveu:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi Natanael,<div><br><div><blockquote type="cite"><div>On Jul 9, 2015, at 1:06 PM, Natanael Ramos <<a href="mailto:naelr8@gmail.com" target="_blank">naelr8@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Good Afternoon.<br><br><span lang="en"><span title="Sou um estudante de graduação em Ciência da Computação no Brasil e como trabalho de conclusão de curso, estou desenvolvendo um alocador de registradores, utilizando a infraestrutura da LLVM.

">I am a Computer Science undergraduate student in Brazil and as 
completion of course work, I am developing an register allocator, using
 the infrastructure of the LLVM.<br><br></span><span title="Para realizar tal tarefa, tenho baseado minha implementação nos alocadores já implementados na LLVM.">To accomplish this task, I have based my implementation in allocators already implemented in LLVM. </span><span title="Porém, surgiu-me uma dúvida enquanto eu pesquisava em livros e artigos da teoria de compiladores e na própria documentação da LLVM, notei um passo importante na fase de otimização, que a desconstrução da forma SSA (PHI Elimination), pelo que tenho lido,">But
 a question came to me while I was researching in books and articles of 
compiler theory and own documentation of LLVM, I noticed an important 
step in the optimization phase, the deconstruction of form SSA (<b>PHI 
Elimination</b>), from what I've read, </span><span title="esse passo tem grande impacto na geração de código e pode ser feito antes ou depois da fase de alocação de registradores.">this step has great impact on the code generation and can be done before or after the register allocation phase. </span><span title="E pretendo implementar o alocador de registradores utilizando dos recursos da representação SSA, tornando esse passo (PHI Elimination) vital para o desenvolvimento.

">And I intend to implement the allocator registers using the resources 
of SSA representation, making this step (<b>PHI Elimination</b>) vital for 
development.<br><br></span><span title="Olhando os códigos fonte dos alocadores da LLVM, não vejo nenhuma chamada explícita da PHI Elimination (AU.addRequiredID(PHIEliminationID)), minha dúvida é se caso esse passo seja chamado, quando e onde ocorre tal chamada?

">Looking at the source code of allocators of LLVM, I see no explicit 
call of PHI Elimination (<i><b>AU.addRequiredID (PHIEliminationID</b><b>)</b></i>), my 
question is whether if this step is called, occurs when and where such a
 call?</span></span><br clear="all"></div></div></div></blockquote><div><br></div><div>Yes, this pass is always called, but before register allocation. (Though the liveness information still uses the SSA form.)</div><div><br></div>The pass is added in the pipeline in lib/CodeGen/Passes.cpp, see for instance: <span style="font-family:Menlo;font-size:11px">TargetPassConfig::addOptimizedRegAlloc</span></div><div><br></div><div>Cheers,</div><div>-Quentin<br><blockquote type="cite"><div><div dir="ltr"><br>-- <br><div>Natanael Ramos <br>Membro do corpo discente de Ciência da Computação pelo Instituto Federal de <br>Minas Gerais - Campus Formiga<br><br></div>
</div>
_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></div></blockquote></div><br></div></div></blockquote></div>