diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-02-01 18:37:13 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-02-01 18:37:13 -0800 |
commit | 1549a85427fe76243a5cd1191e57b0a9cb867e5a (patch) | |
tree | a951339c4ac9b83d86f42cb270b5ea98df6d32b7 /tools/shared.py | |
parent | 97bcf966151e76ab22c4dcf701000efe1e08c3f6 (diff) |
llvm inlining support (disabled by default; enabled in benchmarks)
Diffstat (limited to 'tools/shared.py')
-rw-r--r-- | tools/shared.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/tools/shared.py b/tools/shared.py index 366834ef..2304d817 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -540,6 +540,10 @@ class Building: return Settings.USE_TYPED_ARRAYS == 2 @staticmethod + def can_inline(): + return Settings.INLINING_LIMIT == 0 + + @staticmethod def pick_llvm_opts(optimization_level): ''' It may be safe to use nonportable optimizations (like -OX) if we remove the platform info from the .ll @@ -556,7 +560,8 @@ class Building: opts = [] if optimization_level > 0: if unsafe: - opts.append('-disable-inlining') # we prefer to let closure compiler do our inlining, to avoid overly aggressive inlining + if not Building.can_inline(): + opts.append('-disable-inlining') # -Ox opts do -globaldce, which removes stuff that is needed for libraries and linkables if Building.can_build_standalone(): opts.append('-O%d' % optimization_level) @@ -583,7 +588,7 @@ class Building: opts.append('-simplifycfg') opts.append('-prune-eh') - if not optimize_size: opts.append('-inline') # The condition here is a difference with LLVM's createStandardAliasAnalysisPasses + if Building.can_inline(): opts.append('-inline') opts.append('-functionattrs') if optimization_level > 2: opts.append('-argpromotion') |