<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">There is an error in the function <b>SelectionDAGBuilder::handleLoad ()</b>, whereby <b>Ranges</b> is not defined:<div><br></div><div><div><font class="Apple-style-span" face="Courier">void SelectionDAGBuilder::handleLoad(const Instruction &I, const Value *SV, Type *Ty,</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">     </span>bool isVolatile, bool isNonTemporal,</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">    </span>bool isInvariant, unsigned Alignment,</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">   </span>const MDNode *TBAAInfo) </font></div><div><font class="Apple-style-span" face="Courier">{</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">      </span>SmallVector<EVT, 4> ValueVTs;</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">     </span>SmallVector<uint64_t, 4> Offsets;</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre"> </span>ComputeValueVTs(TLI, Ty, ValueVTs, &Offsets);</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">       </span>unsigned NumValues = ValueVTs.size();</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">   </span>if (NumValues == 0)</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">             </span>return;</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">   </span>SDValue Ptr = getValue(SV);</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">       </span>SDValue Root;</font></div></div><div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">    </span>bool ConstantMemory = false;</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">      </span>...<span class="Apple-tab-span" style="white-space:pre"> </span></font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier">  <span class="Apple-tab-span" style="white-space:pre">   </span>for (unsigned i = 0; i != NumValues; ++i, ++ChainI) {</font></div><div><font class="Apple-style-span" face="Courier">    <span class="Apple-tab-span" style="white-space:pre">             </span>// ...</font></div></div><div><div><font class="Apple-style-span" face="Courier">    <span class="Apple-tab-span" style="white-space:pre">             </span>if (ChainI == MaxParallelChains) {</font></div><div><font class="Apple-style-span" face="Courier">      <span class="Apple-tab-span" style="white-space:pre">                 </span>assert(PendingLoads.empty() && "PendingLoads must be serialized first");</font></div><div><font class="Apple-style-span" face="Courier">      <span class="Apple-tab-span" style="white-space:pre">                 </span>SDValue Chain = DAG.getNode(ISD::TokenFactor, getCurDebugLoc(), MVT::Other, &Chains[0], ChainI);</font></div><div><font class="Apple-style-span" face="Courier">      <span class="Apple-tab-span" style="white-space:pre">                  </span>Root = Chain;</font></div><div><font class="Apple-style-span" face="Courier">      <span class="Apple-tab-span" style="white-space:pre">                      </span>ChainI = 0;</font></div><div><font class="Apple-style-span" face="Courier">    <span class="Apple-tab-span" style="white-space:pre">               </span>}</font></div><div><font class="Apple-style-span" face="Courier">   <span class="Apple-tab-span" style="white-space:pre">          </span> SDValue A = DAG.getNode(ISD::ADD, getCurDebugLoc(),</font></div><div><font class="Apple-style-span" face="Courier">                            PtrVT, Ptr,</font></div><div><font class="Apple-style-span" face="Courier">                            DAG.getConstant(Offsets[i], PtrVT));</font></div><div><font class="Apple-style-span" face="Courier">    <span class="Apple-tab-span" style="white-space:pre">           </span>SDValue L = DAG.getLoad(ValueVTs[i], getCurDebugLoc(), Root,</font></div><div><font class="Apple-style-span" face="Courier">                            A, MachinePointerInfo(SV, Offsets[i]), isVolatile,</font></div><div><font class="Apple-style-span" face="Courier">                            isNonTemporal, isInvariant, Alignment, TBAAInfo,</font></div><div><font class="Apple-style-span" face="Courier">                            <b>Ranges</b>);</font></div></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">         </span>...</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">     </span>}</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre">       </span>...</font></div><div><font class="Apple-style-span" face="Courier">}</font></div><div><br></div><div><br></div><div>It looks as if the following code should be inserted at the top of the function:</div><div><br></div><div><pre class="line" style="margin: 0px; padding: 0px 0px 0px 10px; border: 0px; font-size: 12px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgb(51, 51, 51); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">const MDNode *Ranges = I.getMetadata(LLVMContext::MD_range);</pre><pre class="line" style="margin: 0px; padding: 0px 0px 0px 10px; border: 0px; font-size: 12px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgb(51, 51, 51); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica; line-height: normal; white-space: normal; font-size: medium; "><br></span></pre><pre class="line" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="white-space: normal;"><br></span></font></pre><div><br></div></div><div><br></div></body></html>