On 11/18/23 20:21, Jan Hubicka wrote:
Hi,
this patch implements very basic propaation of return value ranges from VRP
pass. This helps std::vector's push_back since we work out value range of
allocated block. This propagates only within single translation unit. I hoped
we will also do the propagation at WPA stage, but that needs more work on
ipa-cp side.
I also added code auto-detecting return_nonnull and corresponding
-Wsuggest-attribute
Variant of this patch bootstrapped/regtested x86_64-linux, testing with
this version is running. I plan to commit the patch at Monday provided
there are no issues.
I see no obvious issues with the ranger/vrp changes...
My only comment is that execute_ranger_vrp is called 3 times... EVRP,
VRP1 and VRP2.. perhaps more someday. As long as that is OK with the
call to warn_function_returns_nonnull().
Andrew