[LLVMdev] PHP Zend LLVM extension (SoC)

Owen Anderson resistor at mac.com
Wed Apr 23 22:49:55 PDT 2008

On Apr 23, 2008, at 1:44 PM, Nuno Lopes wrote:

> Thank you both for your answers!
> That part of type inference was my second question. PHP uses a  
> structure
> with a union to represent a variable (because a variable can have  
> different
> types, like a long, a double, a stream, etc..), but often a single  
> variable
> will only have one type throughout the program (e.g. iterating  
> through $i in
> a loop). Will LLVM automagically see that we always use the same  
> type for a
> certain variable and discard the whole union and use a single scalar  
> (and
> also discard all the type checking done in the opcode handlers)? We  
> can do
> some type inference on our side if we do a pass on the bytecode, but  
> I would
> like to be sure if that's needed or if LLVM will do it on its own.

LLVM likely won't be able to do type inference for you.  That kind of  
high level language will be lost by the time you hit LLVM IR.  Take a  
look at how llvm-gcc or the online demo does codegen for C unions,  
especially for ones of any complexity.  If you want to see a real  
performance win from this, some degree of type inference at a stage  
where high level information has not yet been discarded will be very  


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

More information about the llvm-dev mailing list