From: Dhruv Chawla <[email protected]> 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. --- 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 ee2fa2affbc..92f83ebbbb0 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 f2feefc1532..87f9612b3d7 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); } -- 2.43.0
