diff options
author | Andres Freund <andres@anarazel.de> | 2023-02-19 12:22:37 -0800 |
---|---|---|
committer | Eli Schwartz <eschwartz93@gmail.com> | 2023-02-27 20:09:32 -0500 |
commit | 808d5934dd6c6a6c16f66e9dc51dae6e83e02cef (patch) | |
tree | e70ac01d9ccac49bad5a7d20b8a79730e388a548 /mesonbuild/interpreter/compiler.py | |
parent | 9a41ce58d682faa59fcef5b067adc393a5412d30 (diff) | |
download | meson-808d5934dd6c6a6c16f66e9dc51dae6e83e02cef.zip meson-808d5934dd6c6a6c16f66e9dc51dae6e83e02cef.tar.gz meson-808d5934dd6c6a6c16f66e9dc51dae6e83e02cef.tar.bz2 |
Use caching in Compiler.sizeof() and Compiler.alignment()
Diffstat (limited to 'mesonbuild/interpreter/compiler.py')
-rw-r--r-- | mesonbuild/interpreter/compiler.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/mesonbuild/interpreter/compiler.py b/mesonbuild/interpreter/compiler.py index c6d0293..70bfd31 100644 --- a/mesonbuild/interpreter/compiler.py +++ b/mesonbuild/interpreter/compiler.py @@ -272,10 +272,12 @@ class CompilerHolder(ObjectHolder['Compiler']): def alignment_method(self, args: T.Tuple[str], kwargs: 'AlignmentKw') -> int: typename = args[0] deps, msg = self._determine_dependencies(kwargs['dependencies'], compile_only=self.compiler.is_cross) - result = self.compiler.alignment(typename, kwargs['prefix'], self.environment, - extra_args=kwargs['args'], - dependencies=deps) - mlog.log('Checking for alignment of', mlog.bold(typename, True), msg, mlog.bold(str(result))) + result, cached = self.compiler.alignment(typename, kwargs['prefix'], self.environment, + extra_args=kwargs['args'], + dependencies=deps) + cached_msg = mlog.blue('(cached)') if cached else '' + mlog.log('Checking for alignment of', + mlog.bold(typename, True), msg, mlog.bold(str(result)), cached_msg) return result @typed_pos_args('compiler.run', (str, mesonlib.File)) @@ -419,9 +421,11 @@ class CompilerHolder(ObjectHolder['Compiler']): element = args[0] extra_args = functools.partial(self._determine_args, kwargs['no_builtin_args'], kwargs['include_directories'], kwargs['args']) deps, msg = self._determine_dependencies(kwargs['dependencies'], compile_only=self.compiler.is_cross) - esize = self.compiler.sizeof(element, kwargs['prefix'], self.environment, - extra_args=extra_args, dependencies=deps) - mlog.log('Checking for size of', mlog.bold(element, True), msg, mlog.bold(str(esize))) + esize, cached = self.compiler.sizeof(element, kwargs['prefix'], self.environment, + extra_args=extra_args, dependencies=deps) + cached_msg = mlog.blue('(cached)') if cached else '' + mlog.log('Checking for size of', + mlog.bold(element, True), msg, mlog.bold(str(esize)), cached_msg) return esize @FeatureNew('compiler.get_define', '0.40.0') |