<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<br><div><div><br></div><blockquote type="cite"><blockquote type="cite"> </blockquote><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Totally agree.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Here is a proposed patch for ScheduleDAGRRList.cpp. It contains the</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">following changes:</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">1) Uses std::set instead of the priority queue. This makes removal of</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">nodes very fast and removes a bottleneck</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">2) sorting functions use now strict ordering</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">3) According to your proposal, it takes node priority updates into</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">account and updates the priority queue by removing and re-inserting</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">the updated element.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">4) SumOfUnscheduledPredsOfSuccs is slightly changed to avoid useless</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">computations. This saves a LOT OF time on big basic blocks.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Please review and test, if possible. I have problems with running the</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">llvm-test test-suite. When I to run it (and keep in mind, I never did</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">it before), I always get the following error messages on my X86/Ubuntu</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">system:</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span class="Apple-converted-space"> </span>make[4]: *** No rule to make target</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">`Output/sse.expandfft.linked.rbc', needed by</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">`Output/sse.expandfft.linked.bc'.<span class="Apple-converted-space">  </span>Stop.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div></blockquote><blockquote type="cite"><font class="Apple-style-span" color="#000000"><br></font> </blockquote><br></div><div>Please keep in mind that all proposed patches should have been tested before submitting. This includes llvm-test and 'make check'.</div><div><a href="http://llvm.org/docs/DeveloperPolicy.html#quality">http://llvm.org/docs/DeveloperPolicy.html#quality</a></div><div><br class="webkit-block-placeholder"></div><div>This will make Evan's job easier ;)</div><div><br class="webkit-block-placeholder"></div><div>As for the error in llvm-test that you are seeing, can you use 'make VERBOSE=1 TEST=nightly report' and post more details on what make is running? It looks like an error in configuration. Did you reconfigure once you set llvm-gcc path?</div><div><br class="webkit-block-placeholder"></div><div>Thanks,</div><div>Tanya</div><div><br class="webkit-block-placeholder"></div><div><br class="webkit-block-placeholder"></div><br></body></html>