[llvm] r291609 - CodeGen: Allow small copyable blocks to "break" the CFG.

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 11 00:06:32 PST 2017


> On Jan 10, 2017, at 19:13, Kyle Butt <iteratee at google.com> wrote:
> 
> 
> I looked at the code in question. There are more compare instructions, but no codepath should execute more of them. Which codepath are you concerned about?
> 
> For the compare, and 1 of the branches, it occurs due to tail duplication, and so for those, this is not a regression, it is WAI.
> 
> Are you worried about the code size, or did this actually cause a performance regression?
> If it did cause a regression, can you tell me which path is the hot path? 
> -Matt
> 
> 
> Thanks,
> Kyle.

This changes from having a path where no branch occurs, to ensuring that a branch will occur, and branches are expensive. I noticed this from the code size changes, but I’m mostly surprised by replacing a fall through with a branch.

Looking at the expected cycle counts on all paths in the artificial testcase, the loads + waits are always skipped, which is good. I think if the waitcnts were inserted smarter, the original code CFG would be slightly better. I need to look more at the full testcase.

-Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170111/5325e8f3/attachment.html>


More information about the llvm-commits mailing list