https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82090

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aldyh at gcc dot gnu.org,
                   |                            |amacleod at redhat dot com,
                   |                            |law at gcc dot gnu.org

--- Comment #3 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
> Jump threading probably gives up because of the asm ().

Actually the problem is the number of instructions in the asm.

The path starting at 3->4 would elide the undefined read but the asm has a ton
of statements and the threadfull* passes fail to even look at the path:

Checking profitability of path (backwards):  bb:4 (18 insns) bb:3
  Control statement insns: 2
  Overall: 16 insns
  FAIL: Did not thread around loop and would copy too many statements.

Assuming estimate_num_insns() is correct for the asm inline, we can't depend on
the threader.

Hmmm, I keep thinking we need a path solver/ranger aware uninit pass :).

Reply via email to