[llvm-dev] [GlobalISel] A Proposal for global instruction selection

Quentin Colombet via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 8 09:12:27 PST 2016


> On Jan 8, 2016, at 8:51 AM, Mehdi Amini <mehdi.amini at apple.com> wrote:
> 
>> 
>> On Jan 8, 2016, at 1:34 AM, David Chisnall via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>> 
>> On 7 Jan 2016, at 19:47, Quentin Colombet <qcolombet at apple.com> wrote:
>>> 
>>> Indeed, you said that inttoptr instruction is not a no-op on your architecture, whereas the language reference says:
>>> “The ‘inttoptr‘ instruction converts value to type ty2 by applying either a zero extension or a truncation depending on the size of the integer value. If value is larger than the size of a pointer then a truncation is done. If value is smaller than the size of a pointer then a zero extension is done. If they are the same size, nothing is done (no-op cast).”
>>> 
>>> The bottom line is that IMHO, if you rely on inttoptr/ptrtoint instructions to do the conversion from fat pointers to plain integers you are abusing the IR.
>>> 
>> 
>> I believe that this is somewhere where the IR specification needs to evolve.  Currently, we have no in-tree architectures where pointers are not integers and so that definition is appropriate.  Adding a new pair of IR instructions for integer-to-pointer and pointer-to-integer conversions and not calling them inttoptr / ptrtoint is likely to be far more confusing.
> 
> I think this would deserve its own RFC email thread.

+1

Q.
> 
>> Mehdi

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160108/792ab1b5/attachment.html>


More information about the llvm-dev mailing list