Bardia Mahjour via llvm-dev
2019-Nov-20 18:17 UTC
[llvm-dev] Loop Opt WG Meeting Minutes for Nov 20, 2019
----------------- Wed, Nov 20, 2019: ----------------- Loop Trip Count Value Profiling - Wael Yehia - Proposal is to associate value profiles to each loop using the llvm.loop metadata. - Suggestion for consideration: maybe value profiling should be done more generally on branches (as an extension to the presented proposal). LoopDeletion - Motivation: some passes cause/create empty loops, then instead of running loop deletion as a pass for all loops we may want to only run it on loop nests that contain empty ones. - Could we refactor it to create a loop-deletion utility? - Loop deletion has some special hand shake with the old pass manager. Need to detect if new pass manager is in use (via checking updater pointer). Loop Analysis - It appears that invalidating the LoopInfo analysis in a loop pass does not cause the analysis to be rerun on next query. - This may be because it is not a well-defined concept for the loop pass manager to be invalidating the structure of the loop in the middle of iterating over it. Order of subloops and basic blocks in LoopInfo - LoopInfoBase::analyze tries to put loops and basic blocks in program order, however update functions don't preserve this order. - Might be a bug, but fixing it requires a lot of effort and has compile-time impact. It may be better to have the consumers that care about the order sort the blocks. Loop Unswitching: - when old unswitching partially unswitches it simplifies the branches, but the new unswitching doesn't do that as much. This causes SCEV to not be able to generate proper expressions in some cases. Philip has a patch to improve SCEV to handle these more complex cases. - Status Updates - DomTreeUpdater investigation (Kit) - no update and the problem seems to have been fixed! - Data Dependence Graph (Bardia) - New patch to do topological sort will be posted soon. - Loop Nest Analysis (Ettore) - Updated patch to be posted soon. ----------------------------------- Tentative Agenda for Dec 4, 2019 ----------------------------------- Scalar Evolution Education (Philip Reames) - Status Updates - Data Dependence Graph (Bardia) - Loop Nest Analysis (Ettore) - Follow up on multi-dimensional array indexing RFC (Siddharth) - Impact of Loop Rotation on existing passes (Min-Yih) - Bugzilla bugs update Bardia Mahjour Compiler Optimizations IBM Toronto Software Lab -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191120/8f404a5b/attachment-0001.html>
Wael Yehia via llvm-dev
2019-Nov-26 15:23 UTC
[llvm-dev] Loop Opt WG Meeting Minutes for Nov 20, 2019
<font face="Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Verdana,Arial,Helvetica,sans-serif" size="2"><div><div>Hi, I posted this patch: <a target="_blank" href="https://reviews.llvm.org/D70688" title="https://reviews.llvm.org/D70688">[PGO] Add Value Profiling for Loop Trip Count (WIP)</a></div><div>I'm looking for reviewers please. Thanks</div><div><br></div>Wael Yehia<br>Compiler Development<br>IBM Canada Lab<br><a href="mailto:wyehia@ca.ibm.com">wyehia@ca.ibm.com</a></div><br><br><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2" color="#000000"><font color="#990099">-----"llvm-dev" <<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank">llvm-dev-bounces@lists.llvm.org</a>> wrote: -----</font><div class="iNotesHistory" style="padding-left:5px;"><div style="padding-right:0px;padding-left:5px;border-left:solid black 2px;">To: <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>From: Bardia Mahjour via llvm-dev <!--Notes ACF <llvm-dev@lists.llvm.org>--><br>Sent by: "llvm-dev" <!--Notes ACF <llvm-dev-bounces@lists.llvm.org>--><br>Date: 11/20/2019 05:37PM<br>Subject: [EXTERNAL] [llvm-dev] Loop Opt WG Meeting Minutes for Nov 20, 2019<br><br><p><font size="2">-----------------</font><br><font size="2">Wed, Nov 20, 2019:</font><br><font size="2">-----------------</font><br><br><font size="2">Loop Trip Count Value Profiling - Wael Yehia</font><br><font size="2"> - Proposal is to associate value profiles to each loop using the </font><br><font size="2"> llvm.loop metadata. </font><br><font size="2"> - Suggestion for consideration: maybe value profiling should be done</font><br><font size="2"> more generally on branches (as an extension to the presented proposal).</font><br><br><font size="2">LoopDeletion</font><br><font size="2"> - Motivation: some passes cause/create empty loops, then instead of </font><br><font size="2"> running loop deletion as a pass for all loops we may want to only</font><br><font size="2"> run it on loop nests that contain empty ones.</font><br><font size="2"> - Could we refactor it to create a loop-deletion utility?</font><br><font size="2"> - Loop deletion has some special hand shake with the old pass manager. </font><br><font size="2"> Need to detect if new pass manager is in use (via checking updater </font><br><font size="2"> pointer).</font><br><br><font size="2">Loop Analysis</font><br><font size="2"> - It appears that invalidating the LoopInfo analysis in a loop pass </font><br><font size="2"> does not cause the analysis to be rerun on next query.</font><br><font size="2"> - This may be because it is not a well-defined concept for the loop</font><br><font size="2"> pass manager to be invalidating the structure of the loop in the</font><br><font size="2"> middle of iterating over it.</font><br><br><font size="2">Order of subloops and basic blocks in LoopInfo</font><br><font size="2"> - LoopInfoBase::analyze tries to put loops and basic blocks in </font><br><font size="2"> program order, however update functions don't preserve this order.</font><br><font size="2"> - Might be a bug, but fixing it requires a lot of effort and has </font><br><font size="2"> compile-time impact. It may be better to have the consumers that </font><br><font size="2"> care about the order sort the blocks.</font><br><br><font size="2">Loop Unswitching:</font><br><font size="2"> - when old unswitching partially unswitches it simplifies the </font><br><font size="2"> branches, but the new unswitching doesn't do that as much. </font><br><font size="2"> This causes SCEV to not be able to generate proper expressions</font><br><font size="2"> in some cases. Philip has a patch to improve SCEV to handle</font><br><font size="2"> these more complex cases.</font><br><br><font size="2">- Status Updates</font><br><font size="2"> - DomTreeUpdater investigation (Kit)</font><br><font size="2"> - no update and the problem seems to have been fixed!</font><br><font size="2"> - Data Dependence Graph (Bardia)</font><br><font size="2"> - New patch to do topological sort will be posted soon.</font><br><font size="2"> - Loop Nest Analysis (Ettore)</font><br><font size="2"> - Updated patch to be posted soon.</font><br><br><br><font size="2">-----------------------------------</font><br><font size="2">Tentative Agenda for Dec 4, 2019</font><br><font size="2">-----------------------------------</font><br><br><font size="2">Scalar Evolution Education (Philip Reames)</font><br><br><font size="2">- Status Updates</font><br><font size="2"> - Data Dependence Graph (Bardia)</font><br><font size="2"> - Loop Nest Analysis (Ettore)</font><br><font size="2"> - Follow up on multi-dimensional array indexing RFC (Siddharth)</font><br><font size="2"> - Impact of Loop Rotation on existing passes (Min-Yih)</font><br><font size="2"> - Bugzilla bugs update</font><br><br><br><font size="2">Bardia Mahjour<br>Compiler Optimizations<br>IBM Toronto Software Lab</font><br> </p><div><font face="Courier New,Courier,monospace" size="2">_______________________________________________<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="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a> <br></font></div><!--Notes ACF </llvm-dev-bounces@lists.llvm.org>--><!--Notes ACF </llvm-dev@lists.llvm.org>--></div></div></font></font></font><BR>
Wael Yehia via llvm-dev
2019-Nov-27 18:05 UTC
[llvm-dev] Loop Opt WG Meeting Minutes for Nov 20, 2019
<font face="Verdana,Arial,Helvetica,sans-serif" size="2"><div style=""><div style=""><div style=""><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Hi, I posted this patch: <a href="https://reviews.llvm.org/D70688" target="_blank">https://reviews.llvm.org/D70688</a></font><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"> [PGO] Add Value Profiling for Loop Trip Count (WIP)</span></div><div style=""><font face="Verdana, Arial, Helvetica, sans-serif" size="2">I'm looking for reviewers please. Thanks</font></div><div style=""><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><br></font></div></div><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Wael Yehia</font><br><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Compiler Development</font><br><font face="Verdana, Arial, Helvetica, sans-serif" size="2">IBM Canada Lab</font><br><a href="mailto:wyehia@ca.ibm.com" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;">wyehia@ca.ibm.com</a></div><br><br><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2" color="#000000" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"><font color="#990099">-----"llvm-dev" <<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank">llvm-dev-bounces@lists.llvm.org</a>> wrote: -----</font><div class="iNotesHistory" style="padding-left:5px;"><div style="padding-right:0px;padding-left:5px;border-left:solid black 2px;">To: <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>From: Bardia Mahjour via llvm-dev <llvm-dev@lists.llvm.org><br>Sent by: "llvm-dev" <llvm-dev-bounces@lists.llvm.org><br>Date: 11/20/2019 05:37PM<br>Subject: [EXTERNAL] [llvm-dev] Loop Opt WG Meeting Minutes for Nov 20, 2019<br><br><p><font size="2">-----------------</font><br><font size="2">Wed, Nov 20, 2019:</font><br><font size="2">-----------------</font><br><br><font size="2">Loop Trip Count Value Profiling - Wael Yehia</font><br><font size="2"> - Proposal is to associate value profiles to each loop using the </font><br><font size="2"> llvm.loop metadata. </font><br><font size="2"> - Suggestion for consideration: maybe value profiling should be done</font><br><font size="2"> more generally on branches (as an extension to the presented proposal).</font><br><br><font size="2">LoopDeletion</font><br><font size="2"> - Motivation: some passes cause/create empty loops, then instead of </font><br><font size="2"> running loop deletion as a pass for all loops we may want to only</font><br><font size="2"> run it on loop nests that contain empty ones.</font><br><font size="2"> - Could we refactor it to create a loop-deletion utility?</font><br><font size="2"> - Loop deletion has some special hand shake with the old pass manager. </font><br><font size="2"> Need to detect if new pass manager is in use (via checking updater </font><br><font size="2"> pointer).</font><br><br><font size="2">Loop Analysis</font><br><font size="2"> - It appears that invalidating the LoopInfo analysis in a loop pass </font><br><font size="2"> does not cause the analysis to be rerun on next query.</font><br><font size="2"> - This may be because it is not a well-defined concept for the loop</font><br><font size="2"> pass manager to be invalidating the structure of the loop in the</font><br><font size="2"> middle of iterating over it.</font><br><br><font size="2">Order of subloops and basic blocks in LoopInfo</font><br><font size="2"> - LoopInfoBase::analyze tries to put loops and basic blocks in </font><br><font size="2"> program order, however update functions don't preserve this order.</font><br><font size="2"> - Might be a bug, but fixing it requires a lot of effort and has </font><br><font size="2"> compile-time impact. It may be better to have the consumers that </font><br><font size="2"> care about the order sort the blocks.</font><br><br><font size="2">Loop Unswitching:</font><br><font size="2"> - when old unswitching partially unswitches it simplifies the </font><br><font size="2"> branches, but the new unswitching doesn't do that as much. </font><br><font size="2"> This causes SCEV to not be able to generate proper expressions</font><br><font size="2"> in some cases. Philip has a patch to improve SCEV to handle</font><br><font size="2"> these more complex cases.</font><br><br><font size="2">- Status Updates</font><br><font size="2"> - DomTreeUpdater investigation (Kit)</font><br><font size="2"> - no update and the problem seems to have been fixed!</font><br><font size="2"> - Data Dependence Graph (Bardia)</font><br><font size="2"> - New patch to do topological sort will be posted soon.</font><br><font size="2"> - Loop Nest Analysis (Ettore)</font><br><font size="2"> - Updated patch to be posted soon.</font><br><br><br><font size="2">-----------------------------------</font><br><font size="2">Tentative Agenda for Dec 4, 2019</font><br><font size="2">-----------------------------------</font><br><br><font size="2">Scalar Evolution Education (Philip Reames)</font><br><br><font size="2">- Status Updates</font><br><font size="2"> - Data Dependence Graph (Bardia)</font><br><font size="2"> - Loop Nest Analysis (Ettore)</font><br><font size="2"> - Follow up on multi-dimensional array indexing RFC (Siddharth)</font><br><font size="2"> - Impact of Loop Rotation on existing passes (Min-Yih)</font><br><font size="2"> - Bugzilla bugs update</font><br><br><br><font size="2">Bardia Mahjour<br>Compiler Optimizations<br>IBM Toronto Software Lab</font><br> </p><div><font face="Courier New,Courier,monospace" size="2">_______________________________________________<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="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a> <br></font></div></llvm-dev-bounces@lists.llvm.org></llvm-dev@lists.llvm.org></div></div></font></font><BR>