Commit graph

3334 commits

Author SHA1 Message Date
Ying Wang
1be5fb675a am 25f39b2f: am 62cd88d0: Merge "FDO: Only support locally"
* commit '25f39b2fbe9dee8ec6c680569c22c71fce9e595c':
  FDO: Only support locally
2013-09-04 11:56:03 -07:00
Ying Wang
25f39b2fbe am 62cd88d0: Merge "FDO: Only support locally"
* commit '62cd88d0d1614bbdb643f4cf4f014283b427ec7b':
  FDO: Only support locally
2013-09-04 11:53:43 -07:00
synergydev
7c4674205c FDO: Only support locally
The issues:
  - The size increase from utilizing FDO is quite large while
    utilizing runtime profiles in build.
  - By default, FDO is utilized globally if the target arch variant
    profiles exist.
  - Not all modules can show statistical significance in
    performance comparison, yet still suffer the size increase.

The solution:
  - Only enable FDO locally with LOCAL_FDO_SUPPORT
    for modules which may benefit enough to justify the size
    tradeoff.

Solution notes:
  - I've noted statistical significance in libwebcore and libskia
    thus far from utilizing FDO.
  - Analysis included sunspider, drawcanvas benchmarks, as
    well as gooda analysis on both arm and x86
  - To support runtime profile generation in modules which have
    LOCAL_FDO_SUPPORT specified,
    BUILD_FDO_INSTRUMENTATION is still used. Otherwise,
    if the target arch variant profiles exist, FDO is utilized for
    specified modules.

Change-Id: I7e95266943ff47c7d82b02e6200fd09911d0bb57
2013-09-03 20:53:20 +00:00
Torne (Richard Coles)
baa01faf1d am 4f30a507: Merge "Fix handling of .o files in LOCAL_GENERATED_SOURCES." into klp-dev
* commit '4f30a5076bea324b8224e4af4cfcf291f787ed4c':
  Fix handling of .o files in LOCAL_GENERATED_SOURCES.
2013-08-30 02:42:55 -07:00
Torne (Richard Coles)
a5afbe8ac6 Fix handling of .o files in LOCAL_GENERATED_SOURCES.
Rule-generated .o files (in gen_o_objects) were being given a dependency
on everything in LOCAL_GENERATED_SOURCES (except for other .o files);
unfortunately this can still create cycles in cases where there are
explicit dependencies between entries in LOCAL_GENERATED_SOURCES.

Instead, make handling of generated .o files consistent with other
generated files (which don't automatically get any dependencies on other
generated files) by excluding them from the target side of the rule.

Change-Id: I3fb5652dc3d85012c179a03b81887d16a85ab3bf
2013-08-29 15:36:34 +01:00
Ying Wang
c97e86dca8 am c62c92c3: Create an empty zip file if no dict file found.
* commit 'c62c92c3d737304cbd38e99e92f29e193b15b7c8':
  Create an empty zip file if no dict file found.
2013-08-28 18:43:32 -07:00
Ying Wang
c62c92c3d7 Create an empty zip file if no dict file found.
Instead of touch an empty file.

Change-Id: Ifa8bb04cea6fc0fc3165337f6815d5976bac677d
2013-08-28 18:38:25 -07:00
Ying Wang
54e81f546c am 37b82aac: Skip compiling Java if an apk has no Java code.
* commit '37b82aacd958ee5b820d0058a808e8f13e9b22bb':
  Skip compiling Java if an apk has no Java code.
2013-08-28 17:34:24 -07:00
Ying Wang
37b82aacd9 Skip compiling Java if an apk has no Java code.
Change-Id: Iee204e03ad5bc8ce5c3b4b3863c19c89184826e2
2013-08-28 17:28:36 -07:00
Ying Wang
9915650b98 am 990cf5e5: Better handle of need_compile_java.
* commit '990cf5e57d5f3e454dd60f1d532f4dabe92a1b32':
  Better handle of need_compile_java.
2013-08-28 14:09:39 -07:00
Ying Wang
990cf5e57d Better handle of need_compile_java.
Change-Id: I609a27e2b35b08962243b6516c6c525c0c938d3c
2013-08-28 14:05:20 -07:00
Ben Cheng
e3b1fc39f9 am db4113fd: am d58df2de: Merge "Re-tighten default compiler options."
* commit 'db4113fdcce77872cc4657d74ac4136b356de928':
  Re-tighten default compiler options.
2013-08-28 11:32:25 -07:00
Ben Cheng
db4113fdcc am d58df2de: Merge "Re-tighten default compiler options."
* commit 'd58df2de78b798f8fc301afcfeb61f574629b8ce':
  Re-tighten default compiler options.
2013-08-28 11:29:41 -07:00
Ying Wang
161aa74de6 am 576e0146: Make it a fatal error if no source files for Java module.
* commit '576e0146a91f0f092cf67208c864ab9635b42222':
  Make it a fatal error if no source files for Java module.
2013-08-28 11:26:37 -07:00
Ying Wang
576e0146a9 Make it a fatal error if no source files for Java module.
Change-Id: Ia04158c11381b6b1687b9d5c699a9ea8ae3cb317
2013-08-28 11:19:36 -07:00
Ben Cheng
85ccf735e2 Re-tighten default compiler options.
Remove "-Wno-unused-parameter -Wno-unused-but-set-parameter" added for
GCC 4.8 experiment.

BUG: 10495043
(cherry picked from internal master 1cea0755f4)

Change-Id: Ifa221709b1351a9268c06872e2b667138995c3da
2013-08-28 11:17:43 -07:00
Ying Wang
bf05f6cc3e am 495f6840: In apps_only build dist a module only if it has a BUILT file.
* commit '495f68402493de82606b8c06213bae5bb1156a8b':
  In apps_only build dist a module only if it has a BUILT file.
2013-08-27 15:07:53 -07:00
Ying Wang
495f684024 In apps_only build dist a module only if it has a BUILT file.
This allows you to specify a PHONY target in TARGET_BUILD_APPS.

Change-Id: Idd813cd0dbdb14c705fbd3187596d4c64b99d045
2013-08-27 15:04:57 -07:00
Ying Wang
ea0237dd89 am 10d2e0cd: Remove the vendor-specific vars from the protected list.
* commit '10d2e0cd9119d25ba58d27004c18f4b894992a80':
  Remove the vendor-specific vars from the protected list.
2013-08-26 15:05:47 -07:00
Ying Wang
a704583265 am 62c81f82: Collect NOTICE files for apps_only build.
* commit '62c81f821f3675ea57485bfa6cb3320b7178759e':
  Collect NOTICE files for apps_only build.
2013-08-26 15:04:13 -07:00
Ying Wang
8541895267 am b6cf5b2f: am b88ca53a: am ddce2eb0: am de32713f: Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev
* commit 'b6cf5b2f41d460405a0a22812255b2700a79fb20':
  Collect and store proguard obfuscation dictionary files.
2013-08-26 15:01:13 -07:00
Ying Wang
b3ad11246d am 27f2cfb7: am 29695daa: am 653a037d: am 638ce57a: Treat LOCAL_APK_LIBRARIES like shared Java libraries.
* commit '27f2cfb72e932a3ccbb592ef9b75e37542ceabc4':
  Treat LOCAL_APK_LIBRARIES like shared Java libraries.
2013-08-26 15:00:57 -07:00
Ying Wang
10d2e0cd91 Remove the vendor-specific vars from the protected list.
Change-Id: I915a61034c9c3e2b886f609c4b8f4043e97bda61
2013-08-26 14:57:52 -07:00
Ying Wang
62c81f821f Collect NOTICE files for apps_only build.
In apps_only build (after running tapas or exporting TARGET_BUILD_APPS),
run "make notice_files" to collect and combine the NOTICE files of
modules that are needed by the apps.

Bug: 10445634
Change-Id: I6555bba1104e43b48c723c82143c46d444a75e80
2013-08-24 13:55:59 -07:00
Ying Wang
b6cf5b2f41 am b88ca53a: am ddce2eb0: am de32713f: Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev
* commit 'b88ca53a465ef004a60ceb9c4c641c3c997edeb5':
  Collect and store proguard obfuscation dictionary files.
2013-08-23 12:19:48 -07:00
Ying Wang
b88ca53a46 am ddce2eb0: am de32713f: Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev
* commit 'ddce2eb007c97b8ca94bc7b3190a83006df0c187':
  Collect and store proguard obfuscation dictionary files.
2013-08-23 12:18:11 -07:00
Ying Wang
ddce2eb007 am de32713f: Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev
* commit 'de32713f47b33c6d4c0bb4c8943e1eccf81aa0c5':
  Collect and store proguard obfuscation dictionary files.
2013-08-23 12:16:16 -07:00
Ying Wang
de32713f47 Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev 2013-08-23 19:14:20 +00:00
Ying Wang
ae9115a525 Collect and store proguard obfuscation dictionary files.
Collect and store proguard obfuscation dictionary files.
Only do this for apps_only build for now.

Bug: 9407666
Change-Id: I51c78bf0f42f959dc920de230e60e0f71ed0d0ea
2013-08-23 12:13:24 -07:00
Ying Wang
27f2cfb72e am 29695daa: am 653a037d: am 638ce57a: Treat LOCAL_APK_LIBRARIES like shared Java libraries.
* commit '29695daa9734a8dfb516b7ff2e35b2b263e6b37b':
  Treat LOCAL_APK_LIBRARIES like shared Java libraries.
2013-08-23 12:10:20 -07:00
Ying Wang
29695daa97 am 653a037d: am 638ce57a: Treat LOCAL_APK_LIBRARIES like shared Java libraries.
* commit '653a037d70d770d2fc03d4f205a9c626af5f5c76':
  Treat LOCAL_APK_LIBRARIES like shared Java libraries.
2013-08-23 12:07:45 -07:00
Ying Wang
653a037d70 am 638ce57a: Treat LOCAL_APK_LIBRARIES like shared Java libraries.
* commit '638ce57a5848c10d781502bf198a2b93aeb58a7a':
  Treat LOCAL_APK_LIBRARIES like shared Java libraries.
2013-08-23 12:03:47 -07:00
Ying Wang
638ce57a58 Treat LOCAL_APK_LIBRARIES like shared Java libraries.
This fix proguard build.
Bug: 10307372

Change-Id: Id99d6e903077b4bacdea2e68cbb78e46a4a6afb8
2013-08-23 11:59:49 -07:00
Ying Wang
92ed0994d9 am c3e977ac: am 2363485c: am 06de9f94: am 8709497e: Merge "Revert "Collect and store proguard obfuscation dictionary files."" into jb-mr2-dev
* commit 'c3e977acf150c54a73d7a4cd7f5d47474a122a66':
  Revert "Collect and store proguard obfuscation dictionary files."
2013-08-23 10:21:06 -07:00
Ying Wang
c3e977acf1 am 2363485c: am 06de9f94: am 8709497e: Merge "Revert "Collect and store proguard obfuscation dictionary files."" into jb-mr2-dev
* commit '2363485c2fb3f08d36e8cdbb2240b9c3993b470c':
  Revert "Collect and store proguard obfuscation dictionary files."
2013-08-23 10:17:47 -07:00
Ying Wang
7657012367 am 58ad7061: am 93b95dc4: am aa87a11d: am afd7457a: Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev
* commit '58ad70618d4d21f16ffe89c1e0eea7e35eae918b':
  Collect and store proguard obfuscation dictionary files.
2013-08-23 10:17:36 -07:00
Ying Wang
670a7a6389 am c5b72527: am ec3c15e5: am 04c4d34d: am 7311a344: Make it easier to enable obfuscation and optimization.
* commit 'c5b72527d30602568dad9fd310e82b6b12fc1106':
  Make it easier to enable obfuscation and optimization.
2013-08-23 10:17:35 -07:00
Ying Wang
2363485c2f am 06de9f94: am 8709497e: Merge "Revert "Collect and store proguard obfuscation dictionary files."" into jb-mr2-dev
* commit '06de9f940c34b8ade1f1866fbc1c6b32f93277b4':
  Revert "Collect and store proguard obfuscation dictionary files."
2013-08-23 10:14:48 -07:00
Ying Wang
06de9f940c am 8709497e: Merge "Revert "Collect and store proguard obfuscation dictionary files."" into jb-mr2-dev
* commit '8709497ed82800f399e99516df59afdb1bae8472':
  Revert "Collect and store proguard obfuscation dictionary files."
2013-08-23 10:13:19 -07:00
Ying Wang
58ad70618d am 93b95dc4: am aa87a11d: am afd7457a: Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev
* commit '93b95dc4b9f9b4e04e8a0fac25c958d5c52266e4':
  Collect and store proguard obfuscation dictionary files.
2013-08-23 10:12:26 -07:00
Ying Wang
c5b72527d3 am ec3c15e5: am 04c4d34d: am 7311a344: Make it easier to enable obfuscation and optimization.
* commit 'ec3c15e5c7c11cf3a831898f286c7eb7c216e50f':
  Make it easier to enable obfuscation and optimization.
2013-08-23 10:12:26 -07:00
Ying Wang
8709497ed8 Merge "Revert "Collect and store proguard obfuscation dictionary files."" into jb-mr2-dev 2013-08-23 17:11:29 +00:00
Ying Wang
df8b48449a Revert "Collect and store proguard obfuscation dictionary files."
This reverts commit 41dbe1e535.

Change-Id: I023594779128083b75a069fd860cd29dd7951ef5
2013-08-23 17:11:18 +00:00
Ying Wang
93b95dc4b9 am aa87a11d: am afd7457a: Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev
* commit 'aa87a11dffec0ea58c93ab0dd23b067975a4c681':
  Collect and store proguard obfuscation dictionary files.
2013-08-23 10:09:28 -07:00
Ying Wang
ec3c15e5c7 am 04c4d34d: am 7311a344: Make it easier to enable obfuscation and optimization.
* commit '04c4d34d4fdb56c824abf39239d2c87806706b7e':
  Make it easier to enable obfuscation and optimization.
2013-08-23 10:09:27 -07:00
Ying Wang
aa87a11dff am afd7457a: Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev
* commit 'afd7457adf844692b5de8f8d7eefedcc10dc7da1':
  Collect and store proguard obfuscation dictionary files.
2013-08-23 10:06:59 -07:00
Ying Wang
04c4d34d4f am 7311a344: Make it easier to enable obfuscation and optimization.
* commit '7311a344bed507062e781ba70331d85652c217d8':
  Make it easier to enable obfuscation and optimization.
2013-08-23 10:06:58 -07:00
Ying Wang
afd7457adf Merge "Collect and store proguard obfuscation dictionary files." into jb-mr2-dev 2013-08-23 17:05:32 +00:00
Ying Wang
41dbe1e535 Collect and store proguard obfuscation dictionary files.
Collect and store proguard obfuscation dictionary files.
Only do this for apps_only build for now.

Bug: 9407666
Change-Id: I0324eed6bb236abb0d3725f8d2a0b6c5c31935fe
2013-08-22 20:54:31 -07:00
Ying Wang
7311a344be Make it easier to enable obfuscation and optimization.
With this change, use:
* LOCAL_PROGUARD_ENABLED := obfuscation  # to enable obfuscation
* LOCAL_PROGUARD_ENABLED := optimization # to enable optimization
* LOCAL_PROGUARD_ENABLED := obfuscation optimization # to enable both

Now the meaning of the LOCAL_PROGUARD_ENABLED options:
* full:
    Use the build system's default configurations:
    with shrink but no obfuscation or optimization,
    global proguard flags in build/core/proguard.flags
    are applied.
* custom:
    The same as "full" except no aapt-generated resource-related
    proguard flags.
* nosystem:
    Don't use any build system's default configurations; but
    aapt-generated proguard flags are still applied. You are
    responsible for any other flags.
* disabled:
    Disable proguard.
* obfuscation:
    The same as "full" but with obfuscation enabled.
* optimization:
    The same as "full" but with optimization enabled.
* no value (the default):
    The build system chooses the proper value: "full" if it's an
    app; "disabled" if it's a library.

You can use more than 1 of them in a meaningful combination,
for example:
LOCAL_PROGUARD_ENABLED := obfuscation optimization

Bug: 10307372
Change-Id: Id248caca3048e99547f16559fae74f4afe85c354
2013-08-22 17:12:38 -07:00