[LLVMdev] llvm-java

Owen Anderson resistor at mac.com
Wed May 20 11:02:23 PDT 2009


On May 20, 2009, at 5:48 AM, Fernando Magno Quintao Pereira wrote:
> transformation: it replaces a variable with new variables that have  
> the
> SSI property. In this case, it must add copies and new phi-functions  
> into
> LLVM IR. Queries are now O(1): just find the variable and recover the
> constraints. The downside is that it increases the program size.

It also has the benefit of being much easier to maintain across other  
transformations.

An analysis needs to maintain global information mapping program  
points to whatever internal indexing it uses, so it needs to be  
informed about all insertions/deletions/CFG changes made in order to  
remain up to date.  In contrast, only those registers directly  
impacted need to be update to preserve it in the transformation version.

Also, I think the transformation version is much easier for client  
transformations to use.  They take an SSI register, prove something  
true about it, and can just use replaceAllUsesWith to simplify it.  A  
post-pass of constant propagation cleans the whole things up.  This  
should make things like an SSI-based predicate simplifier extremely  
simple.

--Owen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2620 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090520/ca61accc/attachment.bin>


More information about the llvm-dev mailing list