Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Test 12: * Update disable lists * Don't force parallelization * Don't tile registers * Fix BlueTooth * Add ThinLTO and LTO option * Completely Reorganize (Styling based on JustArchi's optimization commit) Test 11: * Add modules to arm disable list * Use O3 for all modules * Revert exit-early change * Change per loop instructions in dtc source, not via flag * Only process profitable loops * Remove -lgomp from parallelization flags * Clean my_cflags to decrease conflicts and total argument size * Improve 3.9 compatibility for arm64 with more disables NOTE: Prebuilts must be updated to make use of some new optimizations. Test 10: * Fix typo * Do not exit early, regardless of clang version Test 9: * Remove arm.mk * Fix issue with DISABLE_DTC where -mcpu=krait2 causes errors * Add 3.9 support * Add arm64 modules that need to be disabled * Do not allow no-affine loops * Do not detect parallelization opportunities, all loops are parallelized by force * Use context when parallelizing to avoid mis-transformations and overflow * 3.7 and up no longer limit computed dependences and use value based dependences to prevent overaproximation * 3.8 and up now run Polly's new inliner to prepare loops for transformations * 3.8 and up now calculate profitablity based on instructions before loops. The minimal amount of instructions has ben set to 40 in order to avoid run-time regressions while exposing optimization opportunities * 3.8 and up now process loops that have been deemed unprofitable in hopes of finding unlikely optimization points * 3.8 and up now ignore the first analysis error to find more optimization opportunities * 3.8 and up have a max of 40 arrays, raised from 20, that can be taken into account when aliasing * 3.8 and up now have register tiling enabled NOTE: Old test commits must be reverted first due to reorganization in binary.mk Test 8: * Remove triple flags Test 7: * Add option to enable DragonTC on GCC modules * Make sure that the correct target triple is used (for arm64 errors) Test 6: * Add option to disable DTC for specific modules (for arm64 errors) * Use Polly Vectorizer instead of Strip-mining loops * Run Dead code elimination pass * Run Polly after loop optimizations on 3.8 to improve transformations NOTE: Prebuilts must be updated because of additions to DragonTC.mk Test 5: * Fix typo for disabling modules * Make separate disable lists for arm and arm64 NOTE: LOCAL_DISABLE_POLLY does not have arch specific versions. This is because it should be in your device tree, so it shouldn't interfere. Test 4: * Make ARM mode off by default Test 3: Huge updates here folks, make sure to read if youve been following the test commits. * Toolchain directories can now be named whatver you want, just make sure to set TARGET_DRAGONTC_VERSION to the name in core/clang/config.mk. * A simplified SaberMod ARM mode is now bundled, which should improve performance and fix some errors with Polly. * AOSP Clang 3.6 is bundled in DragonTC, so you dont need prebuilts/clang/linux-x86/host/3.6 to be AOSP anymore. * The Krait2 flag now checks for DragonTC. * Exporting DISABLE_DTC_OPTS=true or adding it to a device tree disables Polly and ARM mode. Things to note: * If you used the previous test commits, you MUST revert those before cherry-picking this due to changes in binary.mk. * If you build your own prebuilts, you MUST sync DragonTC source and rebuild them before using this. * There is a new commit in frameworks/rs that you need to cherry-pick if you don't track ours. Signed-off-by: Joe Maples <joe@frap129.org>
- Loading branch information