<div dir="ltr"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:13px">Hi,</span><div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:13px"><br></div><div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:13px">
I have been facing some issues on LLVMLinux project side that is definitely related to this commit: </div><div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:13px"><br></div><div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:13px">
<div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">    Bug 13662: Enable GPRPair for all i64 operands of inline asm on ARM<br>
    <br>    This patch assigns paired GPRs  for inline asm with<br>    64-bit data on ARM. It's enabled for both ARM and Thumb to support modifiers<br>    like %H, %Q, %R.<br>    <br>    git-svn-id: <a href="https://llvm.org/svn/llvm-project/llvm/trunk@185169" target="_blank">https://llvm.org/svn/llvm-project/llvm/trunk@185169</a> 91177308-0d34-0410-b5e6-96231b3b80d8</blockquote>
<div><br></div><div>After this commit, we notice that vexpress started to have a runtime error. By reverting this patch and three other minor patches, the problem is gone and all start to work again. At compile time there was no error before and after this patch (at least on vexpress target). This commit was made mainly to solve problems with paired registers for strex/ldrex and strexd/ldrexd instructions when using INLINE ASM.</div>
</div><div><br></div><div>Unfortunately I was not able to get the root cause of the error and it is being quite difficult to find it. Specially because Linux kernel code is huge. Besides it uses a lot of low-level optimizations that probably will not appear in any other code base.</div>
<div><br></div><div>Hence I would like to ask for help or rather that patch be reviewed because it may have issues. Do you have any other suggestions? If is there any data that I could provide please ask me.</div><div><br>
</div><div>List of reverted patches to make vexpress work:</div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
    Add a comment to this change, requested by Eric Christopher.<br>    <br>    git-svn-id: <a href="https://llvm.org/svn/llvm-project/llvm/trunk@185853" target="_blank">https://llvm.org/svn/llvm-project/llvm/trunk@185853</a> 91177308-0d34-0410-b5e6-96231b3b80d8<br>
    PR16490: fix a crash in ARMDAGToDAGISel::SelectInlineAsm.<br>    <br>    In the SelectionDAG immediate operands to inline asm are constructed as<br>    two separate operands. The first is a constant of value InlineAsm::Kind_Imm<br>
    and the second is a constant with the value of the immediate.<br>    <br>    In ARMDAGToDAGISel::SelectInlineAsm, if we reach an operand of Kind_Imm we<br>    should skip over the next operand too.<br>    <br>    git-svn-id: <a href="https://llvm.org/svn/llvm-project/llvm/trunk@185688" target="_blank">https://llvm.org/svn/llvm-project/llvm/trunk@185688</a> 91177308-0d34-0410-b5e6-96231b3b80d8<br>
    Remove unused variables.<br>    <br>    git-svn-id: <a href="https://llvm.org/svn/llvm-project/llvm/trunk@185180" target="_blank">https://llvm.org/svn/llvm-project/llvm/trunk@185180</a> 91177308-0d34-0410-b5e6-96231b3b80d8<br>
    Bug 13662: Enable GPRPair for all i64 operands of inline asm on ARM<br>    <br>    This patch assigns paired GPRs  for inline asm with<br>    64-bit data on ARM. It's enabled for both ARM and Thumb to support modifiers<br>
    like %H, %Q, %R.<br>    <br>    git-svn-id: <a href="https://llvm.org/svn/llvm-project/llvm/trunk@185169" target="_blank">https://llvm.org/svn/llvm-project/llvm/trunk@185169</a> 91177308-0d34-0410-b5e6-96231b3b80d8</blockquote>
</div><div><br></div><div>Best regards,</div><div>Tinti</div></div><div><br></div>-- <br><div dir="ltr">Simplicity is the ultimate sophistication<br></div>
</div>