summaryrefslogtreecommitdiff
path: root/makefile.patch
diff options
context:
space:
mode:
authorUlf Magnusson <ulfalizer@gmail.com>2017-11-01 02:02:45 +0100
committerUlf Magnusson <ulfalizer@gmail.com>2017-11-01 06:04:10 +0100
commit70a9eb0668b51934f8d79f0c037d65aeb440bcef (patch)
tree11cd7c6bced43852446e37e7f18b4dc555f1debb /makefile.patch
parent49a8303ca6e73419a3e26b963f78c61c6ab26d3b (diff)
Switch to a much faster invalidation algorithm
_cached_vis is always calculated as a side effect of calculating any other cached value, and so doubles as a flag for whether an item (symbol or choice) has any cached values. If _cached_vis is None for some item, it also indirectly means that no other item can have any cached values that (actually) depend on the item, because _cached_vis would have gotten calculated as a side effect of calculating any such cached value. Therefore, it's safe to stop recursive invalidation at an item that has _cached_vis None. Huge speedup for the allyes/noconfig*.py scripts. allnoconfig_simpler.py went from 2.671 seconds to 1.067 seconds. The dependency selftests need to be updated too now that _get_dependent() is gone. The kernel defconfig tests pass even if all global invalidation is disabled at least (except for the few defconfigs that don't set MODULES=y), and that's a huge invalidation test. Seems pretty speedy too, even though there's some redundant work, so maybe things could be simplified a bit...
Diffstat (limited to 'makefile.patch')
0 files changed, 0 insertions, 0 deletions