<div dir="ltr">Thanks Anton and Krzysztof!<div><br></div><div><br></div><div><br></div><div>Here is the dump using the -debug flag. At this point I am not making much sense of this, would it be too much to ask if one of you could walk me through one of these lines?  </div><div><br></div><div>One thing that I didn't point out is that I never defined any separate floating point registers, not sure if this will pose any issue? <br><div><br></div><div>Thanks again for your time!<br><br></div><div>Jeff</div><div><br></div><div><div>jeff@ubuntu:~/code$ llc -debug-only=isel dft_gf_msp.ll</div><div><br></div><div>=== main</div><div>Initial selection DAG: BB#0 'main:entry'</div><div>SelectionDAG has 18 nodes:</div><div>            t0: ch = EntryToken</div><div>          t4: ch = store<ST4[%retval]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32</div><div>        t7: ch = store<ST4[%sz]> t4, Constant:i32<256>, FrameIndex:i32<2>, undef:i32</div><div>      t10: ch = store<ST4[%dir]> t7, ConstantFP:f32<-1.000000e+00>, FrameIndex:i32<3>, undef:i32</div><div>    t12: ch = store<ST4[%m]> t10, Constant:i32<0>, FrameIndex:i32<19>, undef:i32</div><div>  t13: i32,ch = load<LD4[%sz]> t12, FrameIndex:i32<2>, undef:i32</div><div>    t15: ch = store<ST4[%j]> t13:1, t13, FrameIndex:i32<16>, undef:i32</div><div>  t17: ch = store<ST4[%le]> t15, t13, FrameIndex:i32<14>, undef:i32</div><div><br></div><div><br></div><div>Optimized lowered selection DAG: BB#0 'main:entry'</div><div>SelectionDAG has 18 nodes:</div><div>            t0: ch = EntryToken</div><div>          t4: ch = store<ST4[%retval]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32</div><div>        t7: ch = store<ST4[%sz]> t4, Constant:i32<256>, FrameIndex:i32<2>, undef:i32</div><div>      t19: ch = store<ST4[%dir]> t7, Constant:i32<-1082130432>, FrameIndex:i32<3>, undef:i32</div><div>    t12: ch = store<ST4[%m]> t19, Constant:i32<0>, FrameIndex:i32<19>, undef:i32</div><div>  t13: i32,ch = load<LD4[%sz]> t12, FrameIndex:i32<2>, undef:i32</div><div>    t15: ch = store<ST4[%j]> t13:1, t13, FrameIndex:i32<16>, undef:i32</div><div>  t17: ch = store<ST4[%le]> t15, t13, FrameIndex:i32<14>, undef:i32</div><div><br></div><div><br></div><div>Type-legalized selection DAG: BB#0 'main:entry'</div><div>SelectionDAG has 18 nodes:</div><div>            t0: ch = EntryToken</div><div>          t4: ch = store<ST4[%retval]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32</div><div>        t7: ch = store<ST4[%sz]> t4, Constant:i32<256>, FrameIndex:i32<2>, undef:i32</div><div>      t19: ch = store<ST4[%dir]> t7, Constant:i32<-1082130432>, FrameIndex:i32<3>, undef:i32</div><div>    t12: ch = store<ST4[%m]> t19, Constant:i32<0>, FrameIndex:i32<19>, undef:i32</div><div>  t13: i32,ch = load<LD4[%sz]> t12, FrameIndex:i32<2>, undef:i32</div><div>    t15: ch = store<ST4[%j]> t13:1, t13, FrameIndex:i32<16>, undef:i32</div><div>  t17: ch = store<ST4[%le]> t15, t13, FrameIndex:i32<14>, undef:i32</div><div><br></div><div><br></div><div>Legalized selection DAG: BB#0 'main:entry'</div><div>SelectionDAG has 18 nodes:</div><div>            t0: ch = EntryToken</div><div>          t4: ch = store<ST4[%retval]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32</div><div>        t7: ch = store<ST4[%sz]> t4, Constant:i32<256>, FrameIndex:i32<2>, undef:i32</div><div>      t19: ch = store<ST4[%dir]> t7, Constant:i32<-1082130432>, FrameIndex:i32<3>, undef:i32</div><div>    t12: ch = store<ST4[%m]> t19, Constant:i32<0>, FrameIndex:i32<19>, undef:i32</div><div>  t13: i32,ch = load<LD4[%sz]> t12, FrameIndex:i32<2>, undef:i32</div><div>    t15: ch = store<ST4[%j]> t13:1, t13, FrameIndex:i32<16>, undef:i32</div><div>  t17: ch = store<ST4[%le]> t15, t13, FrameIndex:i32<14>, undef:i32</div><div><br></div><div><br></div><div>Optimized legalized selection DAG: BB#0 'main:entry'</div><div>SelectionDAG has 18 nodes:</div><div>            t0: ch = EntryToken</div><div>          t4: ch = store<ST4[%retval]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32</div><div>        t7: ch = store<ST4[%sz]> t4, Constant:i32<256>, FrameIndex:i32<2>, undef:i32</div><div>      t19: ch = store<ST4[%dir]> t7, Constant:i32<-1082130432>, FrameIndex:i32<3>, undef:i32</div><div>    t12: ch = store<ST4[%m]> t19, Constant:i32<0>, FrameIndex:i32<19>, undef:i32</div><div>  t13: i32,ch = load<LD4[%sz]> t12, FrameIndex:i32<2>, undef:i32</div><div>    t15: ch = store<ST4[%j]> t13:1, t13, FrameIndex:i32<16>, undef:i32</div><div>  t17: ch = store<ST4[%le]> t15, t13, FrameIndex:i32<14>, undef:i32</div><div><br></div><div><br></div><div>===== Instruction selection begins: BB#0 'entry'</div><div>ISEL: Starting pattern match on root node: t17: ch = store<ST4[%le]> t15, t13, FrameIndex:i32<14>, undef:i32</div><div><br></div><div>  Match failed at index 0</div><div>LLVM ERROR: Cannot select: t17: ch = store<ST4[%le]> t15, t13, FrameIndex:i32<14>, undef:i32</div><div>  t13: i32,ch = load<LD4[%sz]> t12, FrameIndex:i32<2>, undef:i32</div><div>    t6: i32 = FrameIndex<2></div><div>    t3: i32 = undef</div><div>  t16: i32 = FrameIndex<14></div><div>  t3: i32 = undef</div><div>In function: main</div></div><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 21, 2016 at 11:19 AM, Krzysztof Parzyszek via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 6/21/2016 11:12 AM, Jeff E via llvm-dev wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Also - It would be great if someone could point me to a document that<br>
describes some of these error messages? For example what does t26 ..t4 mean?<br>
</blockquote>
<br></span>
The t.. are just identifiers of the DAG nodes. It used to print addresses, but they were long and would change every time.<br>
<br>
The "cannot select" errors are not that hard to track down: compile the failing testcase with -debug-only=isel and you'll see all the steps being taken up to the moment of failure.  The last few messages will be something like "match failed at nnn".  In your build directory in lib/Target/<yourtarget> there will be a file <yourtarget>GenDAGISel.inc.  It contains the matching "script".  The numbers nnn are shown in comments in that file and correspond to the steps the matcher performs. You'll be able to see what exactly it's trying to match.<span class="HOEnZb"><font color="#888888"><br>
<br>
-Krzysztof<br>
<br>
<br>
-- <br>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</div></div></blockquote></div><br></div>