Xin Tong via llvm-dev
2017-Oct-04 20:08 UTC
[llvm-dev] Loop Rotation in MachineBlockPlacement
Hi. I have this nested loop. When loop at Depth3 is processed, BB#193 is the exiting block. And when loop at Depth2 is processed, the loop is rotated w.r.t BB#193 because PreferredLoopExit is not cleared. This does not seem right to me as BB#193 does not even exit loop at Depth2. Should not we clear PreferredLoopExit everytime we process a new loop ? BB#193: derived from LLVM BB %cleanup.i.i781 Live Ins: %RAX %RBP %RBX %RSI %R9 %R10 %R11 %R13 %R14 %R15 Predecessors according to CFG: BB#192 %RBX<def,tied1> = ADD64ri8 %RBX<kill,tied0>, 8, %EFLAGS<imp-def,dead> %RBP<def,tied1> = ADD64ri8 %RBP<kill,tied0>, 8, %EFLAGS<imp-def,dead> CMP64rr %RBX, %R15, %EFLAGS<imp-def> JB_1 <BB#192>, %EFLAGS<imp-use> JMP_1 <BB#174> Successors according to CFG: BB#192(0x7fef9fcb / 0x80000000 = 99.95%) BB#174(0x00106035 / 0x80000000 = 0.05%) Loop at depth 2 containing: BB#191<header>,BB#192,BB#182,BB#193,BB#174,BB#175,BB#176,BB#177,BB#178,BB#179,BB#180,BB#181,BB#183,BB#187<exiting>,BB#184,BB#185,BB#186<exiting>,BB#188<exiting>,BB#189<exiting>,BB#190<latch> Loop at depth 3 containing: BB#192<header><exiting>,BB#193<latch><exiting> Thanks -Xin -- Software Engineer - Compiler Toolchain Employee of Facebook Inc. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171005/e29aecf1/attachment.html>
Xinliang David Li via llvm-dev
2017-Oct-04 20:21 UTC
[llvm-dev] Loop Rotation in MachineBlockPlacement
looks like a bug to me. David On Wed, Oct 4, 2017 at 1:08 PM, Xin Tong via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hi. > > > I have this nested loop. When loop at Depth3 is processed, BB#193 is the > exiting block. And when loop at Depth2 is processed, the loop is rotated > w.r.t BB#193 because PreferredLoopExit is not cleared. This does not seem > right to me as BB#193 does not even exit loop at Depth2. Should not we clear PreferredLoopExit > everytime we process a new loop ? > > > > BB#193: derived from LLVM BB %cleanup.i.i781 > > Live Ins: %RAX %RBP %RBX %RSI %R9 %R10 %R11 %R13 %R14 %R15 > > Predecessors according to CFG: BB#192 > > %RBX<def,tied1> = ADD64ri8 %RBX<kill,tied0>, 8, > %EFLAGS<imp-def,dead> > > %RBP<def,tied1> = ADD64ri8 %RBP<kill,tied0>, 8, > %EFLAGS<imp-def,dead> > > CMP64rr %RBX, %R15, %EFLAGS<imp-def> > > JB_1 <BB#192>, %EFLAGS<imp-use> > > JMP_1 <BB#174> > > Successors according to CFG: BB#192(0x7fef9fcb / 0x80000000 = 99.95%) > BB#174(0x00106035 / 0x80000000 = 0.05%) > > > > Loop at depth 2 containing: BB#191<header>,BB#192,BB#182, > BB#193,BB#174,BB#175,BB#176,BB#177,BB#178,BB#179,BB#180, > BB#181,BB#183,BB#187<exiting>,BB#184,BB#185,BB#186<exiting>, > BB#188<exiting>,BB#189<exiting>,BB#190<latch> > > Loop at depth 3 containing: BB#192<header><exiting>,BB#193<latch><exiting> > > > > Thanks > > -Xin > > -- > Software Engineer - Compiler Toolchain > Employee of Facebook Inc. > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171004/2805021d/attachment.html>