[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