Open
Description
mypy.type_visitor.TypeQuery
is constructed often with the any
or all
builtin function as an argument. The function is used as a callable inside the query. Calling callable variables is kind of slow when compiled with mypyc. Since type queries are used a lot, switching to an integer constant or a compiled object instead of a callable could speed up runtimes measurably, perhaps by as much as 0.5% or so (random guess). Since the optimization is pretty simple, this may be worth doing.
Discussion:
- Maybe have separate type query visitor which produces boolean values. The strategy could be specified as an integer constant.
- For non-bool type queries, experiment with using an object instead of a callable for the strategy, since callables are currently pretty slow when compiled.
- Maybe also special case
self.strategy([])
since it's used a lot.