<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-family:"Courier New"">I’m writing a new Target in 3.6.2, I’m getting this assert<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1166: void {anonymous}::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*): Assertion `TLI.getTypeAction(*DAG.getContext(), Node->getValueType(i)) == TargetLowering::TypeLegal
&& "Unexpected illegal type!"' failed.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">which gdb shows having come from<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">#4 0x0000000001afce5b in SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd0f0, Node=0x3571be0)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">I did my run with -debug-only=isel, so I got the output at the bottom,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">the question is, why is Node=0x3571be0 being examined at all ?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">in particular that Node got replaced (and deleted ?) a long time ago ?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">that node’s last appearance in the DAG was in the output titled<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> Optimized lowered selection DAG: BB#0 'foobar:entry'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">and we are two phases later, in what would be titled<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> Legalized selection DAG: BB#2 'foobar:entry’<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">were we to finished the phase we’re in,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">0x3571be0: i8 = Constant<1> original, which got replaced, by CurDAG->LegalizeTypes(), with<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">0x3571690: i16 = Constant<1> replacement, but later CurDAG->Legalize() is somehow examining the original ???<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">TIA, Peter Lawrence.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">FYI:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">def SLL : FMT_I3 <0x7200, (outs datareg:$dst), (ins datareg:$rs1, i16imm:$imm),<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> "sll $dst,$rs1,$imm",<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> [(set i16:$dst, (shl i16:$rs1, i16:$imm))]>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">int foobar(int A)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> return A << 1;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">Optimized lowered selection DAG: BB#0 'foobar:entry'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">SelectionDAG has 11 nodes:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35455b0: ch = EntryToken<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35455b0: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571360: i16 = Register %vreg0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571470: i16,ch = CopyFromReg 0x35455b0, 0x3571360 [ORD=1]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571e00: i16 = Register %R0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35455b0: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571470: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571580: i16 = FrameIndex<0><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35717a0: i16 = undef<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35718b0: ch = store 0x35455b0, 0x3571470, 0x3571580, 0x35717a0 <ST2[%A.addr]> [ORD=3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571e00: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571470: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571be0: i8 = Constant<1><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571cf0: i16 = shl 0x3571470, 0x3571be0 [ORD=5]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571f10: ch,glue = CopyToReg 0x35718b0, 0x3571e00, 0x3571cf0 [ORD=6]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571f10: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571e00: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571f10: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3572020: ch = XmcISD::RET 0x3571f10, 0x3571e00, 0x3571f10:1 [ORD=6]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">Type-legalized selection DAG: BB#0 'foobar:entry'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">SelectionDAG has 11 nodes:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35455b0: ch = EntryToken [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35455b0: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571360: i16 = Register %vreg0 [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571470: i16,ch = CopyFromReg 0x35455b0, 0x3571360 [ORD=1] [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571e00: i16 = Register %R0 [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35455b0: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571470: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571580: i16 = FrameIndex<0> [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35717a0: i16 = undef [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35718b0: ch = store 0x35455b0, 0x3571470, 0x3571580, 0x35717a0 <ST2[%A.addr]> [ORD=3] [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571e00: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571470: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571690: i16 = Constant<1> [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35719c0: i16 = shl 0x3571470, 0x3571690 [ORD=5] [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571f10: ch,glue = CopyToReg 0x35718b0, 0x3571e00, 0x35719c0 [ORD=6] [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571f10: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571e00: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571f10: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3572020: ch = XmcISD::RET 0x3571f10, 0x3571e00, 0x3571f10:1 [ORD=6] [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">Optimized type-legalized selection DAG: BB#0 'foobar:entry'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">SelectionDAG has 11 nodes:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35455b0: ch = EntryToken [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35455b0: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571360: i16 = Register %vreg0 [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571470: i16,ch = CopyFromReg 0x35455b0, 0x3571360 [ORD=1] [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571e00: i16 = Register %R0 [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35455b0: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571470: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571580: i16 = FrameIndex<0> [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35717a0: i16 = undef [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35718b0: ch = store 0x35455b0, 0x3571470, 0x3571580, 0x35717a0 <ST2[%A.addr]> [ORD=3] [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571e00: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571470: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571690: i16 = Constant<1> [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x35719c0: i16 = shl 0x3571470, 0x3571690 [ORD=5] [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571f10: ch,glue = CopyToReg 0x35718b0, 0x3571e00, 0x35719c0 [ORD=6] [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571f10: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571e00: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3571f10: <multiple use><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> 0x3572020: ch = XmcISD::RET 0x3571f10, 0x3571e00, 0x3571f10:1 [ORD=6] [ID=-3]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">llc: /projects/Firmware/plawrenc/xllvm/llvm-3.6.2.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1166: void {anonymous}::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*): Assertion `TLI.getTypeAction(*DAG.getContext(),
Node->getValueType(i)) == TargetLowering::TypeLegal && "Unexpected illegal type!"' failed.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">Program received signal SIGABRT, Aborted.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">0x0000003d9f035c55 in raise () from /lib64/libc.so.6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">(gdb) where<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">#0 0x0000003d9f035c55 in raise () from /lib64/libc.so.6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">#1 0x0000003d9f037408 in abort () from /lib64/libc.so.6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">#2 0x0000003d9f02e972 in __assert_fail_base () from /lib64/libc.so.6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">#3 0x0000003d9f02ea22 in __assert_fail () from /lib64/libc.so.6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">#4 0x0000000001afce5b in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd0f0, Node=0x3571be0)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""> at /projects/Firmware/plawrenc/xllvm/llvm-3.6.2.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1164<o:p></o:p></span></p>
</div>
</body>
</html>