https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103734
--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> --- With -fprofile-use we get Evaluating opportunities for MorphologyApply/3266. - considering value 134217719 for param #1 const ChannelType (caller_count: 3) good_cloning_opportunity_p (time: 1, size: 427, count_sum: 2 (precise), overall time saved: 2 (adjusted), single_call) -> evaluation: 0.00, threshold: 500 not cloning: time saved is not hot good_cloning_opportunity_p (time: 1.11411e+06, size: 1493, count_sum: 2 (precise), overall time saved: 2228228 (adjusted), single_call) -> evaluation: 1268.58, threshold: not cloning: time saved is not hot - considering value 1 for param #2 const MorphologyMethod (caller_count: 6) good_cloning_opportunity_p (time: 1, size: 357, count_sum: 2 (precise), overall time saved: 2 (adjusted), single_call) -> evaluation: 0.00, threshold: 500 not cloning: time saved is not hot good_cloning_opportunity_p (time: 1, size: 357, count_sum: 2 (precise), overall time saved: 2 (adjusted), single_call) -> evaluation: 0.00, threshold: 500 not cloning: time saved is not hot - considering value 1 for param #3 const ssize_t (caller_count: 6) good_cloning_opportunity_p (time: 1, size: 424, count_sum: 2 (precise), overall time saved: 2 (adjusted), single_call) -> evaluation: 0.00, threshold: 500 not cloning: time saved is not hot good_cloning_opportunity_p (time: 1, size: 424, count_sum: 2 (precise), overall time saved: 2 (adjusted), single_call) -> evaluation: 0.00, threshold: 500 not cloning: time saved is not hot - considering value 0 for param #5 const CompositeOperator (caller_count: 6) good_cloning_opportunity_p (time: 1, size: 427, count_sum: 2 (precise), overall time saved: 2 (adjusted), single_call) -> evaluation: 0.00, threshold: 500 not cloning: time saved is not hot good_cloning_opportunity_p (time: 1, size: 427, count_sum: 2 (precise), overall time saved: 2 (adjusted), single_call) -> evaluation: 0.00, threshold: 500 not cloning: time saved is not hot - considering value 0.0 for param #6 const double (caller_count: 6) good_cloning_opportunity_p (time: 1, size: 427, count_sum: 2 (precise), overall time saved: 2 (adjusted), single_call) -> evaluation: 0.00, threshold: 500 not cloning: time saved is not hot good_cloning_opportunity_p (time: 2, size: 1575, count_sum: 2 (precise), overall time saved: 4 (adjusted), single_call) -> evaluation: 0.00, threshold: 500 not cloning: time saved is not hot So no cloning of MorphologyApply For GetVirtualPixelsFromNexus Evaluating opportunities for GetVirtualPixelsFromNexus/487. - considering value 1 for param #4 const size_t (caller_count: 14) good_cloning_opportunity_p (time: 1, size: 537, count_sum: 23739800 (precise), overall time saved: 23739800 (adjusted), scc) -> evaluation: 26524.92, threshold: 500 not cloning: time saved is not hot good_cloning_opportunity_p (time: 2, size: 648, count_sum: 23739800 (precise), overall time saved: 47479600 (adjusted), scc) -> evaluation: 43962.59, threshold: 500 Creating a specialized node of GetVirtualPixelsFromNexus/487. .... - considering value 1 for param #5 const size_t (caller_count: 12) good_cloning_opportunity_p (time: 1, size: 537, count_sum: 19110748 (adjusted), overall time saved: 19110748 (adjusted), scc) -> evaluation: 21352.79, threshold: 500 not cloning: time saved is not hot good_cloning_opportunity_p (time: 2, size: 648, count_sum: 19110748 (adjusted), overall time saved: 38221496 (adjusted), scc) -> evaluation: 35390.27, threshold: 500 Creating a specialized node of GetVirtualPixelsFromNexus/487. replacing param #5 const size_t with const 1 So at least here the cloning now works.