[llvm-commits] [llvm] r44858 - in /llvm/trunk: include/llvm/Bitcode/LLVMBitCodes.h include/llvm/DerivedTypes.h include/llvm/GlobalVariable.h include/llvm/Instructions.h lib/AsmParser/LLLexer.cpp lib/AsmParser/llvmAsmParser.y lib/Bitcode/Reader/BitcodeReader.cpp lib/Bitcode/Writer/BitcodeWriter.cpp lib/VMCore/AsmWriter.cpp lib/VMCore/Constants.cpp lib/VMCore/Globals.cpp lib/VMCore/Instructions.cpp lib/VMCore/Type.cpp test/Assembler/2007-12-11-AddressSpaces.ll tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp

Christopher Lamb christopher.lamb at gmail.com
Tue Dec 11 20:43:58 PST 2007


On Dec 11, 2007, at 8:36 PM, Chris Lattner wrote:

>>> Making the address space default to zero is convenient, but
>>> dangerous.  This means that xforms that play with pointers need  
>>> to be
>>> very careful to propagate this info in some cases.
>>
>> This is true.
>>
>>> Do you think this  is the best way to go?
>>
>> As opposed to no default value, forcing clients to propagate this
>> information?
>
> Yep.
>
>>> Do many clients of PointerType::get need to  be aware of addr  
>>> spaces?
>>
>> Many do. Unfortunately it seems common to simply pass a value's type
>> around and synthesize a pointer when needed. The addition of address
>> spaces means that this approach is no longer equivalent to passing
>> the pointer type, and I expect there will be fixes needed to once a
>> back end depends on this feature.
>
> I think I'd really rather have people have to provide it so that
> people cons'ing up pointers have to think about alternate address
> spaces and that all existing code gets updated.  This makes it much
> less likely that alternate address spaces are a second class feature
> that is just too buggy to rely on.

First class it is, sir.


>>> It would be nice to use the above stuff to avoid duplicating this
>>> production.  Maybe it would need to be:
>>>
>>> OptCommaAddrSpace ::= ',' ADDRSPACE '(' EUINT64VAL ')' { $$=$4; }
>>> OptCommaAddrSpace ::= /*empty*/ { $$ = 0; }
>>>
>>> And then just add OptCommaAddrSpace to the existing production.   
>>> What
>>> do you think?
>>
>> Avoiding the duplicate production is good, but I'm not sure about
>> the comma. The addrspace() qualifier can not be positionally
>> permuted with other attributes, the comma gives the impression that
>> it can be.
>
> Good point, but I don't think lack of comma really makes it clear
> either...

I agree. No compromises. I will improve my bison-fu.

--
Christopher Lamb



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20071211/ab8bba50/attachment.html>


More information about the llvm-commits mailing list