On Thu, Jul 11, 2019 at 11:11:58AM +0200, Richard Biener wrote: > The others all smell like they might be yours ;) (besides object-size > maybe but that one is limited by having a cache - hopefully also > used when not used in the compute-everything mode).
objsz doesn't really have a compute everything mode, it has a mode where the caches are available and a mode where they aren't. If they are available, it will compute whatever it needs to and anything needed to compute that and cache. If they aren't available, for optimize > 0 it will just punt on SSA_NAMEs (defers until it is done with the caches), for -O0 it looks through SSA_NAME_DEF_STMTs of POINTER_PLUS_EXPR with constant as second argument, and that one indeed is inbounded, so if one has a million of POINTER_PLUS_EXPRs stmts, each adding 1 to the previous SSA_NAME, yes, it will be a pain if every one of those SSA_NAMEs is then passed to some __builtin_object_size too. Guess we could add a limit there too, no reason to look through more than a dozen or two at most. Jakub