[llvm-dev] Making an analysis availble during call lowering

Hal Finkel via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 31 21:47:55 PDT 2017


On 07/31/2017 02:31 PM, Matt Arsenault wrote:
>
>> On Jul 24, 2017, at 14:00, Matt Arsenault <arsenm2 at gmail.com 
>> <mailto:arsenm2 at gmail.com>> wrote:
>>
>>>
>>> On Jul 24, 2017, at 13:52, Hal Finkel via llvm-dev 
>>> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>>
>>>
>>> On 06/13/2017 12:46 PM, Arsenault, Matthew via llvm-dev wrote:
>>>> Hi,
>>>>
>>>> I want to be able to access a custom analysis pass during call 
>>>> lowering, but there isn't a way to access this now and I'm not sure 
>>>> the least bad way to thread this information into the DAG.
>>>>
>>>> I want to be able to use knowledge of the callee function to change 
>>>> the lowering of a call. Since AMDGPUDAGToDAGISel is ultimately a 
>>>> normal MachineFunction pass, I'm able to get the interprocedural 
>>>> analysis pass there but don't have a way to pass this into the call 
>>>> lowering where it's actually needed.
>>>>
>>>> The laziest option would be to stash the pointer to the analysis in 
>>>> the TargetMachine and get it from there, but is probably not the 
>>>> best idea. Another option might be to store a pointer to the 
>>>> SelectionDAGISel pass in SelectionDAG, so then there's a way to 
>>>> access the pass to get analysis directly. Is there another option?
>>>
>>> With the legacy pass manager, are you planning to schedule the 
>>> analysis pass manually and then use getAnalysisIfAvailable?
>>>
>>> Thanks again,
>>> Hal
>>>
>>
>> I didn’t need to do anything special. addRequired/getAnalysis work.

Did you add INITIALIZE_PASS_DEPENDENCY somewhere?

  -Hal

>>
>> -Matt
>
> ping

-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory

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


More information about the llvm-dev mailing list