tree 5eb069afe085b5856220a563195deeff7bcb2486
parent 3941394b9943eb5c095e7d71febbe6764295ca77
author Takuto Ikuta <tikuta@google.com> 1553035839 +0900
committer Commit Bot <commit-bot@chromium.org> 1553036682 +0000

Make gn check faster

This CL skip re-calculation of unreachable check by caching unreachable
result.
In chromium, unreachable targets are sometimes there if an included
header file is listed in sources of several targets.

e.g.
```
source_set("x") {
  sources = [ "x.cc", "y.cc" ] # both x.cc and y.cc have #include "a.h"
  deps = [ ":a" ]
}

source_set("a") {
  sources = [ "a.h" ]
}

source_set("a2") {
  sources = [ "a.h" ]
}

source_set("a3") {
  sources = [ "a.h" ]
}
```

In above example, dependency checker tries to find dependency path from
"x" to "a", "a2" and "a3". If "a" is not checked first, checker does
unreachable check for "a2" or "a3". And checker does such unreachable
check for "a.h" found in both x.cc and y.cc.
That seems the main reason of duplicate check in chromium.
e.g. gfx_export.h listed in sources of multiple targets.
https://cs.chromium.org/search/?q=gfx_export.h+file:gn&sq=package:chromium&type=cs

With this CL, `gn gen --check` for chromium on Z840 Win10 improved from
53.2s to 24.5s

I hope this makes 'generate_build_files' step faster on win7-rel
builder.
e.g. tooks nearly 3mins in
https://ci.chromium.org/p/chromium/builders/try/win7-rel/42250

Bug: chromium:941946
Change-Id: I7b797c8739a899b3a8519a81a1b1629e5affa659
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/4240
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Brett Wilson <brettw@chromium.org>
