diff options
author | Steven Shi <steven.shi@intel.com> | 2019-11-19 16:17:00 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2019-12-10 02:07:12 +0000 |
commit | fc8b8deac2d77524ff8cfe44acf95b5e1f59804e (patch) | |
tree | 0af9c4aefabb98f56c52b55c44f0eccd626d3920 /BaseTools/Source/Python/Common | |
parent | 3bfbc915074a45f4d9c61aa2b698a62f1a24124e (diff) | |
download | edk2-fc8b8deac2d77524ff8cfe44acf95b5e1f59804e.tar.gz edk2-fc8b8deac2d77524ff8cfe44acf95b5e1f59804e.tar.bz2 edk2-fc8b8deac2d77524ff8cfe44acf95b5e1f59804e.zip |
BaseTools: Leverage compiler output to optimize binary cache
Redesign the binary cache and bases on the compiler to
output the dependency header files info for every module.
The binary cache will directly consume the dependency header
files info and doesn't parse the C source code by iteself.
Also redesign the dependency files list format for module
and try to share the common lib hash result as more as
possible in local process. Remove the unnecessary share data
access across multiprocessing.
Signed-off-by: Steven Shi <steven.shi@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/Common')
-rwxr-xr-x | BaseTools/Source/Python/Common/GlobalData.py | 35 |
1 files changed, 13 insertions, 22 deletions
diff --git a/BaseTools/Source/Python/Common/GlobalData.py b/BaseTools/Source/Python/Common/GlobalData.py index 74c6d0079b..0b3ebe035d 100755 --- a/BaseTools/Source/Python/Common/GlobalData.py +++ b/BaseTools/Source/Python/Common/GlobalData.py @@ -104,29 +104,20 @@ gUseHashCache = None gBinCacheDest = None
gBinCacheSource = None
gPlatformHash = None
-gPackageHash = {}
-gModuleHash = {}
+gPlatformHashFile = None
+gPackageHash = None
+gPackageHashFile = None
+gModuleHashFile = None
+gCMakeHashFile = None
+gHashChainStatus = None
+gModulePreMakeCacheStatus = None
+gModuleMakeCacheStatus = None
+gFileHashDict = None
+gModuleAllCacheStatus = None
+gModuleCacheHit = None
+
gEnableGenfdsMultiThread = True
gSikpAutoGenCache = set()
-
-# Dictionary for tracking Module build status as success or failure
-# Top Dict: Key: Arch Type Value: Dictionary
-# Second Dict: Key: AutoGen Obj Value: 'SUCCESS'\'FAIL'\'FAIL_METAFILE'
-gModuleBuildTracking = dict()
-
-# Dictionary of booleans that dictate whether a module or
-# library can be skiped
-# Top Dict: Key: Arch Type Value: Dictionary
-# Second Dict: Key: Module\Library Name Value: True\False
-gBuildHashSkipTracking = dict()
-
-# Common dictionary to share module cache intermediate result and state
-gCacheIR = None
-# Common lock for the module cache intermediate data
-cache_lock = None
# Common lock for the file access in multiple process AutoGens
file_lock = None
-# Common dictionary to share platform libraries' constant Pcd
-libConstPcd = None
-# Common dictionary to share platform libraries' reference info
-Refes = None
+
|