[LLVMdev] run -mem2reg and -reg2mem programmably from within a Pass

Chuck Zhao czhao at eecg.toronto.edu
Mon Jun 20 08:38:16 PDT 2011


Xi,

Thank you for the comments.

I also found a recent comment (from John Criswell) on Transformation 
Pass as a pre requisite:

http://comments.gmane.org/gmane.comp.compilers.llvm.devel/35640

My problem is now solved :-)

Chuck

On 6/19/2011 11:19 PM, Xi Wang wrote:
> I guess AU.addRequiredID(DemoteRegisterToMemoryID) would do the trick.
>
> - xi
>
> On Jun 19, 2011, at 11:03 PM, Chuck Zhao wrote:
>
>> I am currently building a BasicBlock pass which requires to run -reg2mem before it, and need to run -mem2reg after it to clean up.
>>
>> So, I want to specify -reg2mem as one of the pre-requisite passes to it, as:
>>
>>
>> class MyPass: public BasicBlockPass{
>>
>>    virtual void getAnalysisUsage(AnalysisUsage&AU){
>>      ...
>>      AU.addRequired<RegToMem>();
>>      ...
>>    }
>>
>> };
>>
>>
>> I searched all passes under the lib/Transform directory, but didn't find a single case of my expected usage.
>> Though I know opt takes both -reg2mem and -mem2reg as valid arguments and does the proper transformation, I didn't figure out how it is being done.
>>
>>
>> What is the right way of doing this?
>> (Or, is there a different way doing it?)
>>
>>
>> Thank you very  much
>>
>>
>> Chuck
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://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




More information about the llvm-dev mailing list