https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102513
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aldyh at gcc dot gnu.org, | |amacleod at redhat dot com --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- + Creating a specialized node of encode_block/0. + replacing param #0 block2 with const &block2 + replacing param #1 level with const 4 + Creating a specialized node of encode_block/0. + replacing param #0 block2 with const &block2 + replacing param #1 level with const 3 + Creating a specialized node of encode_block/0. + replacing param #0 block2 with const &block2 + replacing param #1 level with const 2 + Creating a specialized node of encode_block/0. + replacing param #0 block2 with const &block2 + replacing param #1 level with const 1 + Creating a specialized node of encode_block/0. + replacing param #0 block2 with const &block2 + replacing param #1 level with const 0 + Creating a specialized node of encode_block/0. + replacing param #0 block2 with const &block2 + replacing param #1 level with const 4294967295 + Creating a specialized node of encode_block/0. + replacing param #0 block2 with const &block2 + replacing param #1 level with const 4294967294 Maybe the IPA transformation should just use VRP info to guide it. We don't have anything that says level is [0, 5], that is there purely from the fact that the caller calls it with 5, but we know that it isn't -1U: # RANGE [0, 4294967294] _9 = level_19(D) + 4294967295; _23 = encode_block (block2_21(D), _9); _26 = encode_block (block2_21(D), _9); so we shouldn't create that specialized node and those that are needed just because we've created them.