https://gcc.gnu.org/g:4cede4b0f48e07b03ccd71d1ef68b423f1c6be6b

commit r17-1612-g4cede4b0f48e07b03ccd71d1ef68b423f1c6be6b
Author: Dhruv Chawla <[email protected]>
Date:   Tue Jun 16 12:05:39 2026 +0000

    lto: Fix streaming of loop->can_be_parallel [PR125717]
    
    The can_be_parallel flag was not being streamed out, so any frontend
    setting the flag (via annot_expr_parallel_kind) would not observe it doing
    anything when LTO was enabled.
    
    Bootstrapped and regtested on aarch64-linux-gnu.
    
    Signed-off-by: Dhruv Chawla <[email protected]>
    
    gcc/ChangeLog:
    
            PR fortran/125717
            * lto-streamer-in.cc (input_cfg): Stream loop->can_be_parallel in.
            * lto-streamer-out.cc (output_cfg): Stream loop->can_be_parallel 
out.

Diff:
---
 gcc/lto-streamer-in.cc  | 1 +
 gcc/lto-streamer-out.cc | 1 +
 2 files changed, 2 insertions(+)

diff --git a/gcc/lto-streamer-in.cc b/gcc/lto-streamer-in.cc
index ee2fa2affbc1..92f83ebbbb0d 100644
--- a/gcc/lto-streamer-in.cc
+++ b/gcc/lto-streamer-in.cc
@@ -1140,6 +1140,7 @@ input_cfg (class lto_input_block *ib, class data_in 
*data_in,
       loop->dont_vectorize = streamer_read_hwi (ib);
       loop->force_vectorize = streamer_read_hwi (ib);
       loop->finite_p = streamer_read_hwi (ib);
+      loop->can_be_parallel = streamer_read_hwi (ib);
       loop->simduid = stream_read_tree (ib, data_in);
 
       place_new_loop (fn, loop);
diff --git a/gcc/lto-streamer-out.cc b/gcc/lto-streamer-out.cc
index f2feefc1532b..87f9612b3d79 100644
--- a/gcc/lto-streamer-out.cc
+++ b/gcc/lto-streamer-out.cc
@@ -2220,6 +2220,7 @@ output_cfg (struct output_block *ob, struct function *fn)
       streamer_write_hwi (ob, loop->dont_vectorize);
       streamer_write_hwi (ob, loop->force_vectorize);
       streamer_write_hwi (ob, loop->finite_p);
+      streamer_write_hwi (ob, loop->can_be_parallel);
       stream_write_tree (ob, loop->simduid, true);
     }

Reply via email to