[LLVMdev] GetElementPtr

Ryan Taylor ryta1203 at gmail.com
Thu Dec 8 11:49:18 PST 2011


After some thought, to put this more simply (more direct), it would be fine
if the getelementptr is lowered into IR assuming an x86 architecture. The
real problem is that I don't want the x86 code generation, I still want to
deal in LLVM IR just with the GEP lowered, and it lowered for the x86
architecture is fine.

Is there any way to do this?

On Thu, Dec 8, 2011 at 11:39 AM, Ryan Taylor <ryta1203 at gmail.com> wrote:

> Or is it in the docs such that when you use the word "independent", you
> really mean "independent of a particular target" and not actually "target
> independent"?
>
>
> On Thu, Dec 8, 2011 at 11:18 AM, Ryan Taylor <ryta1203 at gmail.com> wrote:
>
>>
>>
>> ---------- Forwarded message ----------
>> From: Ryan Taylor <ryta1203 at gmail.com>
>> Date: Thu, Dec 8, 2011 at 11:13 AM
>> Subject: Re: [LLVMdev] GetElementPtr
>> To: Reid Kleckner <reid.kleckner at gmail.com>
>>
>>
>> There is no support for gep, it's my understanding that it's
>> target-independent, so there's no reason to put the lowering in the target
>> lowering portion is there?
>>
>> Eventually the GEP has to be lowered correctly, to the target
>> architecture, but the docs state that it's target-independent, so given
>> that it should be possible to lower it without knowing any specifics about
>> the target, correct?
>>
>>
>> On Thu, Dec 8, 2011 at 11:08 AM, Reid Kleckner <reid.kleckner at gmail.com>wrote:
>>
>>> Why would you want to remove all GEP instructions?
>>>  inttoptr+math+ptrtoint don't have the exact same semantics in LLVM IR.
>>>  GEP instructions have certain guarantees about what addresses can be
>>> computed with them that straight pointer arithmetic doesn't.
>>>
>>> Reid
>>>
>>>
>>> On Thu, Dec 8, 2011 at 2:00 PM, Ryan Taylor <ryta1203 at gmail.com> wrote:
>>>
>>>> Do you think I could use the SelectionDAGBuilder in a pass to
>>>> accomplish this for me? if there is already code that does this I don't
>>>> really think I should have to do this again, unless it's not possible to
>>>> access that code from the stage where I want to use it?
>>>>
>>>> On Thu, Dec 8, 2011 at 12:56 AM, Pedro Ferreira <
>>>> pedro.ferreira at imgtec.com> wrote:
>>>>
>>>>>  I was unaware of its removal. I am still using 2.8. I grep'd the
>>>>> source tree for that pass and found it on the header I mentioned; it led me
>>>>> to believe the pass was still there.
>>>>>
>>>>> The transformation itself isn't complicated; doing it manually should
>>>>> be simple.
>>>>>
>>>>>
>>>>> On 07/12/11 21:50, Ryan Taylor wrote:
>>>>>
>>>>> There is a GEPSplitterPass in the Scalar.h but not in the
>>>>> LLVM_SRC/lib/Transforms/Scalar folder, there is no GEPSplitterPass.cpp
>>>>> file. Is it possible to get this from 2.8 and compile it and use it for 2.9?
>>>>>
>>>>>  On Wed, Dec 7, 2011 at 12:31 PM, Ryan Taylor <ryta1203 at gmail.com>wrote:
>>>>>
>>>>>> Looking at the release notes for 2.9, it appears that GEPSplitterPass
>>>>>> has been removed from 2.9. Is this the case, can I access it anyways or no?
>>>>>>
>>>>>> Due to all the changes between versions of LLVM, it's not timely to
>>>>>> switch to any other version of LLVM, since the code modifications would be
>>>>>> too many. Any other ideas?
>>>>>>
>>>>>>
>>>>>> On Wed, Dec 7, 2011 at 12:14 PM, Ryan Taylor <ryta1203 at gmail.com>wrote:
>>>>>>
>>>>>>> Yes, exactly along these lines, how do I use this pass? It's not
>>>>>>> documented in the Transforms section of llvm.org
>>>>>>>
>>>>>>>
>>>>>>>  On Wed, Dec 7, 2011 at 6:06 AM, Pedro Ferreira <
>>>>>>> pedro.ferreira at imgtec.com> wrote:
>>>>>>>
>>>>>>>>  You mean, something along the lines of the GEPSplitterPass?
>>>>>>>>
>>>>>>>> // GEPSplitter - Split complex GEPs into simple ones
>>>>>>>>
>>>>>>>> in
>>>>>>>>
>>>>>>>> ./include/llvm/Transforms/Scalar.h
>>>>>>>>
>>>>>>>>
>>>>>>>> On 06/12/11 20:53, Ryan Taylor wrote:
>>>>>>>>
>>>>>>>>  Does a transform exist to breakdown the GEP?
>>>>>>>>
>>>>>>>>
>>>>>>>>  _______________________________________________
>>>>>>>> LLVM Developers mailing listLLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> LLVM Developers mailing list
>>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>
>>>>
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111208/ab9e4f43/attachment.html>


More information about the llvm-dev mailing list