[LLVMdev] prevents instruction-scheduler from interfereing instruction pair

Amara Emerson amara.emerson at gmail.com
Sat Nov 23 04:37:46 PST 2013


What I meant was to write your own expansion pass and run it after the
scheduler passes, e.g. in the pre-emit stage.
> if (addPreEmitPass())
    printAndVerify("After PreEmit passes")

Though if it's too hacky for you then fair enough.

Amara

On 23 November 2013 03:17, Liu Xin <navy.xliu at gmail.com> wrote:
> Amara,
>
> first, thank you for answering.  but I found expandPsuedo instructions
> actually happens before post-RA, like the following code showing:
> your approach is a little hacky, right? : )
>
> // Expand pseudo instructions before second scheduling pass.
>   addPass(&ExpandPostRAPseudosID);
>   printAndVerify("After ExpandPostRAPseudos");
>
>   // Run pre-sched2 passes.
>   if (addPreSched2())
>     printAndVerify("After PreSched2 passes");
>
>   // Second pass scheduler.
>   if (getOptLevel() != CodeGenOpt::None) {
>     addPass(&PostRASchedulerID);
>     printAndVerify("After PostRAScheduler");
>   }
>
>
> secondly, psuedo instruction is kind of compiler internal representation. I
> wish our instruction pair can disclose to programmer. intrinsics can do
> that.
>
> thanks,
> --lx
>
>
> On Fri, Nov 22, 2013 at 9:45 PM, Amara Emerson <amara.emerson at arm.com>
> wrote:
>>
>> What about describing the instruction pairs as pseudo-instructions, and
>> then expanding them in a machine function pass at the pre-emit stage?
>>
>>
>>
>> Amara
>
>
>
> _______________________________________________
> 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