2009/3/27 Andre Tavares <span dir="ltr"><<a href="mailto:andrelct@dcc.ufmg.br">andrelct@dcc.ufmg.br</a>></span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I'm a Computer Science master student at UFMG, Brasil. I'm interested in taking part on Google Summer of Codes 2009. My idea is not on the LLVM list, but I have written a project description to make my intentions clear. My project is attached as a pdf file.</blockquote>
<div><br>By changing LLVM IR from SSA to SSI, you propose to make a non-backwards-compatible change which will break all existing passes, optimizers, analyses, as well as instruction selectors and register allocations.  It's particularly troublesome because the SSI sigma instruction defines multiple variables, whereas the SSA form instructions can only define a single value (in fact, LLVM's Instruction class is an indirect subclass of the Value class), and this assumption is ingrained in LLVM.<br>
<br>It doesn't sound like you're prepared to update the entire LLVM codebase to be built on SSI -- you want to make SSI an offshoot of the SSA form, and that's hard to accomodate as that means every pass will have to know about and support SSI form, not just the ones you write.<br>
<br>Does SSI bring anything to SSA that cannot be expressed in a structure outside of the SSA encoding, if your goal is to implement the  two applications of bitwidth analysis and array bounds-checking elimination?<br></div>
</div><br>Misha<br>