[llvm-dev] MIR YAML deserialisation failure

Sean Fertile via llvm-dev
Tue, 20 Mar 2018 03:51:56 -0000

Hello Valentin,

To generate a mir test case i think the process is to first create an IR
file by passing '-S -emit-llvm' to clang, then you can feed that file
into
llc and use stop-before to get the mir just before the if-converter pass,
eg: `llc -stop-before=if-converter  -simplify-mir -o test.mir test.ll`.

Also there is a MIR language reference:
https://llvm.org/docs/MIRLangRef.html which has some of the limitations
documented, as well as tips for further simplifying the generated mir if
need be.

Regards,
Sean

On Mon, Mar 19, 2018 at 7:53 PM, Valentin Churavy via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hello,
>
> I am trying to isolate an assertion failure in if-converter (on PPC) and I
> generated a textual debuglog with:
>
> ```
> LLVM_ARGS=-print-before-all -print-module-scope -filter-print-funcs=japi1__
> require_7687
> ```
>
> and after splicing out the the MIR before the if-converter pass
> I would like to run `llc -march=ppc64le -run-pass=if-converter input.mir`
> so that I can start minimising the MIR.
>
> This steps fails for me with a:
> ```
> error: YAML:188:20: Unrecognized character while tokenizing.
> Function Live Ins: %x4
>                    ^
>
> error: YAML:188:1: Map value must not be empty
> Function Live Ins: %x4
> ^~~~~~~~~~~~~~~~~
> ```
>
> Should I expect this to work, or is some part of my workflow wrong?
>
> I put the full log and just the extracted MIR file online:
> https://drive.google.com/open?id=1Br0s9Qvr4tzPv8nqbnV_nWezpEH5Ci7B and
> would appreciate any guidance whether I should file this as a deserialiser
> bug.
>
> Best,
> Valentin
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20180319/9405ec1c/attachment.html>