Paul C. Anagnostopoulos via llvm-dev
2020-Sep-25 16:46 UTC
[llvm-dev] TableGen pseudo lowering
The TableGen PseudoLoweringEmitter backend is responsible for lowering pseudo-instructions to real machine instructions. In the code is this comment: // FIXME: This pass currently can only expand a pseudo to a single instruction. // The pseudo expansion really should take a list of dags, not just // a single dag, so we can do fancier things. Does anyone think that enhancing it to expand to multiple instructions is worth the effort?
Paul, Absolutely. This may reduce the amount of hand-written code for pseudo-expansion in the backends in general. However, there are caveats as in many cases additional properties need to be transferred as well and "splitted" between these instructions. I don't have a good solution for this. On Fri, Sep 25, 2020 at 7:48 PM Paul C. Anagnostopoulos via llvm-dev <llvm-dev at lists.llvm.org> wrote:> > The TableGen PseudoLoweringEmitter backend is responsible for lowering pseudo-instructions to real machine instructions. In the code is this comment: > > // FIXME: This pass currently can only expand a pseudo to a single instruction. > // The pseudo expansion really should take a list of dags, not just > // a single dag, so we can do fancier things. > > Does anyone think that enhancing it to expand to multiple instructions is worth the effort? > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-- With best regards, Anton Korobeynikov Department of Statistical Modelling, Saint Petersburg State University
Paul C. Anagnostopoulos via llvm-dev
2020-Sep-26 13:12 UTC
[llvm-dev] TableGen pseudo lowering
Can you give an example of the property splitting issue? At 9/26/2020 03:34 AM, Anton Korobeynikov wrote:>Paul, > >Absolutely. This may reduce the amount of hand-written code for >pseudo-expansion in the backends in general. However, there are >caveats as in many cases additional properties need to be transferred >as well and "splitted" between these instructions. I don't have a good >solution for this. > > >On Fri, Sep 25, 2020 at 7:48 PM Paul C. Anagnostopoulos via llvm-dev ><llvm-dev at lists.llvm.org> wrote: >> >> The TableGen PseudoLoweringEmitter backend is responsible for lowering pseudo-instructions to real machine instructions. In the code is this comment: >> >> // FIXME: This pass currently can only expand a pseudo to a single instruction. >> // The pseudo expansion really should take a list of dags, not just >> // a single dag, so we can do fancier things. >> >> Does anyone think that enhancing it to expand to multiple instructions is worth the effort?