[llvm-dev] [GSoC 2016] Need more info on Add a MachineModulePass
John Criswell via llvm-dev
llvm-dev at lists.llvm.org
Mon Mar 21 14:39:14 PDT 2016
On 3/21/16 5:25 PM, Quentin Colombet wrote:
>
>> On Mar 20, 2016, at 12:53 PM, John Criswell <jtcriswel at gmail.com
>> <mailto:jtcriswel at gmail.com>> wrote:
>>
>> On 3/18/16 12:33 PM, Quentin Colombet via llvm-dev wrote:
>>> Hi Vivek,
>>>
>>>> On Mar 16, 2016, at 1:00 PM, vivek pandya via llvm-dev
>>>> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>>>
>>>> Hello,
>>>>
>>>> Probably this may be too late to start thinking about this project
>>>> but I think this is particularly useful feature for LLVM.
>>>
>>> +1. I’d like to use something this feature in GlobalISel. The idea
>>> is that has as soon as we lowered the LLVM IR of the whole module to
>>> MachineInstr, the LLVM IR should be deallocable.
>>> In other words, the MachineModule/MachineFunctions should contain
>>> enough information such that we do not have to keep the LLVM IR around.
>>
>> I think this is a separate issue from having a MachineModulePass. My
>> goal in having a MachineModulePass is to be able to do
>> inter-procedural analysis and transformation on a program after its
>> code has been generated. Examples of such applications include
>> inter-procedural register allocation, inter-procedural instruction
>> selection, inter-procedural code layout optimization (I have a
>> colleague working on this using reference affinity theory), and
>> inter-procedural analysis of machine code for measuring the efficacy
>> of compiler transformations for security.
>>
>> Whether one keeps the LLVM IR around or not is orthogonal. What is
>> needed is a way of being able to examine the whole program without
>> having to worry about another transformation running in parallel (if
>> you use a MachineFunctionPass, as I understand it, the pass should
>> not be analyzing/transforming other MachineFunction's).
>
> I agree. I was exposing my use case to help designing the whole thing.
> Yes, it does not have to be addressed for the MachineModule to be
> useable for other things.
>
>>
>>>
>>> One of the main challenge is about alias analysis information that
>>> are tight with LLVM IR, but may be used in MachineFunctionPass.
>>
>> One of the other projects I proposed is to encode this information
>> within the MachineInstr IR. This would be very useful for one of my
>> projects, and it might solve this problem as well (once the
>> information is encoded in the MachineInstr IR, you don't need the
>> LLVM IR around anymore).
>
> That sounds like a possible solution. Do you have a link to the thread
> where this has been discussed?
It's a project idea that I added to the Open Projects page. I don't
think I've seen anyone volunteering to work on it on the mailing lists.
Regards,
John Criswell
>
> Thanks,
> -Quentin
>
>>
>> Regards,
>>
>> John Criswell
>>
>> --
>> John Criswell
>> Assistant Professor
>> Department of Computer Science, University of Rochester
>> http://www.cs.rochester.edu/u/criswell
>
--
John Criswell
Assistant Professor
Department of Computer Science, University of Rochester
http://www.cs.rochester.edu/u/criswell
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160321/952c3e82/attachment.html>
More information about the llvm-dev
mailing list