[LLVMdev] prevents instruction-scheduler from interfereing instruction pair
Liu Xin
navy.xliu at gmail.com
Sat Nov 23 06:11:27 PST 2013
I think this after a second. I got your point. I can define a pseudo
instruction for an instr-pair and expand it after post-RA-sched. as you
said, in preEmitPass.
The original intrinsic can also be kept. I just convert the intrinsic to
pseudo instruction in TargetLower. Thank you for your enlightening
suggestion!
thanks,
--lx
On Sat, Nov 23, 2013 at 8:37 PM, Amara Emerson <amara.emerson at gmail.com>wrote:
> 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
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131123/2be2da0d/attachment.html>
More information about the llvm-dev
mailing list