Change information
Commit message:
Improve performance of `BuiltinRestriction` checks.
`BuiltinRestriction` checks an allowlist on every private starlark API call, making it a hot code path. Improvements:
* Check all main repo allowlist entries first to avoid applying `RepositoryMapping` if possible.
* Move more common allowlist entries earlier in the allowlist to short-circuit.
* Replace streams with standard loops.
* Cache the conversion from starlark to java representation.
PiperOrigin-RevId: 923346855
Change-Id: I76e0e170a923587485dd0941539f8a9dd78515c2
Files:
- M src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java
- M src/main/java/com/google/devtools/build/lib/packages/BuiltinRestriction.java
- M src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java
- M src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoCommon.java
- M src/main/starlark/builtins_bzl/common/java/java_common.bzl
Change size: L
Delta: 5 files changed, 240 insertions(+), 118 deletions(-)
Branch: refs/heads/master