[PATCH] D64101: [LoopUnroll] fix cloning callbr

Hal Finkel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 3 17:45:32 PDT 2019


hfinkel added a comment.

In D64101#1569642 <https://reviews.llvm.org/D64101#1569642>, @efriedma wrote:

> Or actually, it might make more sense to change the way we generate/lower callbr, to make the label parameters implicit; instead of modeling them with blockaddress, we never write them in IR at all, and automatically generate them later based on the successor list.


That's an appealing idea.

We do need to be careful, AFAIK, because the goto targets can be passed into the asm as parameters (where the block addresses come from the labels-as-values extension). However, in theory we already shouldn't unroll loops with blocks with their address taken, so I imagine that case is irrelevant here (*).

(*) LoopUnroll.cpp actually only seems to check Header->hasAddressTaken(), not all of the blocks, so maybe that's wrong?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D64101/new/

https://reviews.llvm.org/D64101





More information about the llvm-commits mailing list