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

--- Comment #1 from Hongtao.liu <crazylht at gmail dot com> ---
for cmdline option, it's handled in process_options which will enable
flag_cunroll_grow_size which is the real effective flag to unroll the loop in
testcase.

cut from toplev.c
---
  /* Unrolling all loops implies that standard loop unrolling must also
     be done.  */
  if (flag_unroll_all_loops)
    flag_unroll_loops = 1;

  /* Allow cunroll to grow size accordingly.  */
  if (flag_cunroll_grow_size == AUTODETECT_VALUE)
    flag_cunroll_grow_size
      = flag_unroll_loops || flag_peel_loops || optimize >= 3;

  /* web and rename-registers help when run after loop unrolling.  */
  if (flag_web == AUTODETECT_VALUE)
    flag_web = flag_unroll_loops;

  if (flag_rename_registers == AUTODETECT_VALUE)
    flag_rename_registers = flag_unroll_loops;

---

But for attribute ((optimize ("unroll-loops")))
it's handled in handle_optimize_attribute which doesn't enable
flag_cunroll_grow_size.

Reply via email to