[LLVMdev] prevents instruction-scheduler from interfereing instruction pair

Liu Xin navy.xliu at gmail.com
Fri Nov 22 19:17:05 PST 2013


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131123/88eb3f0f/attachment.html>


More information about the llvm-dev mailing list