aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorAlex Coplan <alex.coplan@arm.com>2024-08-03 17:02:36 +0000
committerAlex Coplan <alex.coplan@arm.com>2024-09-11 11:50:48 +0100
commit9759f6299d9633cabac540e5c893341c708093ac (patch)
tree801554cd6a88774873385b3d3e865e3eac8e49b3 /libcpp
parent31ff173c70847bba94613eac5b1ef2c0bec842e6 (diff)
downloadgcc-9759f6299d9633cabac540e5c893341c708093ac.zip
gcc-9759f6299d9633cabac540e5c893341c708093ac.tar.gz
gcc-9759f6299d9633cabac540e5c893341c708093ac.tar.bz2
lto: Stream has_unroll flag during LTO [PR116140]
When #pragma GCC unroll is processed in tree-cfg.cc:replace_loop_annotate_in_block, we set both the loop->unroll field (which is currently streamed out and back in during LTO) but also the cfun->has_unroll flag. cfun->has_unroll, however, is not currently streamed during LTO. This patch fixes that. Prior to this patch, loops marked with #pragma GCC unroll that would be unrolled by RTL loop2_unroll in a non-LTO compilation didn't get unrolled under LTO. gcc/ChangeLog: PR libstdc++/116140 * lto-streamer-in.cc (input_struct_function_base): Stream in fn->has_unroll. * lto-streamer-out.cc (output_struct_function_base): Stream out fn->has_unroll. gcc/testsuite/ChangeLog: PR libstdc++/116140 * g++.dg/ext/pragma-unroll-lambda-lto.C: New test.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions