[LLVMdev] instruction scheduling issue

Xu Liu xl10 at rice.edu
Mon Jan 7 12:52:59 PST 2013


Krzysztof,

Thanks for your helpful answers.

Xu

Quoting Krzysztof Parzyszek <kparzysz at codeaurora.org>:

> On 1/7/2013 2:15 PM, Xu Liu wrote:
>>
>> This would be ideal. How can I do the instrumentation pass after the
>> instruction scheduling?
>
> You could derive your own class from TargetPassConfig, and add the  
> annotation pass in YourDerivedTargetPassConfig::addPreEmitPass.   
> This will add your annotation pass very late, just before the final  
> code is emitted.  If you're using the X86 target, then the class and  
> the function is already there:
>
> lib/Target/X86/X86TargetMachine.cpp:
>
> bool X86PassConfig::addPreEmitPass() {
>   bool ShouldPrint = false;
>   if (getOptLevel() != CodeGenOpt::None && getX86Subtarget().hasSSE2()) {
>     addPass(createExecutionDependencyFixPass(&X86::VR128RegClass));
>     ShouldPrint = true;
>   }
>
>   if (getX86Subtarget().hasAVX() && UseVZeroUpper) {
>     addPass(createX86IssueVZeroUpperPass());
>     ShouldPrint = true;
>   }
>
>   return ShouldPrint;
> }
>
>
>
> -Krzysztof
>
> -- 
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,  
> hosted by The Linux Foundation
>
>





More information about the llvm-dev mailing list