From 43dc5c223de80888614f1a006d2f8c11d9fb94de Mon Sep 17 00:00:00 2001 From: Vyacheslav Egorov Date: Tue, 10 May 2016 20:06:54 +0200 Subject: [PATCH] Introduce a new ARMSIMDBC configuration. This allows us to build dart binary with SIMDBC for non-Android ARM devices. We are going to use it to measure performance. BUG=http://dartbug.com/26421 R=zra@google.com Review URL: https://codereview.chromium.org/1967613002 . --- tools/build.py | 6 +++--- tools/gyp/configurations.gypi | 32 ++++++++++++++++++++++++++++++++ tools/utils.py | 1 + 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/tools/build.py b/tools/build.py index 92c05c72f02..518a0152b73 100755 --- a/tools/build.py +++ b/tools/build.py @@ -56,7 +56,7 @@ def BuildOptions(): result.add_option("-a", "--arch", help='Target architectures (comma-separated).', metavar='[all,ia32,x64,simarm,arm,simarmv6,armv6,simarmv5te,armv5te,' - 'simmips,mips,simarm64,arm64,simdbc,]', + 'simmips,mips,simarm64,arm64,simdbc,armsimdbc]', default=utils.GuessArchitecture()) result.add_option("--os", help='Target OSs (comma-separated).', @@ -103,7 +103,7 @@ def ProcessOptions(options, args): for arch in options.arch: archs = ['ia32', 'x64', 'simarm', 'arm', 'simarmv6', 'armv6', 'simarmv5te', 'armv5te', 'simmips', 'mips', 'simarm64', 'arm64', - 'simdbc', 'simdbc64'] + 'simdbc', 'simdbc64', 'armsimdbc'] if not arch in archs: print "Unknown arch %s" % arch return False @@ -154,7 +154,7 @@ def GetToolchainPrefix(target_os, arch, options): 'supported on Linux.') # For ARM Linux, by default use the Linux distribution's cross-compiler. - if arch == 'arm': + if arch == 'arm' or arch == 'armsimdbc': # To use a non-hf compiler, specify on the command line with --toolchain. return (DEFAULT_ARM_CROSS_COMPILER_PATH + "/arm-linux-gnueabihf") if arch == 'arm64': diff --git a/tools/gyp/configurations.gypi b/tools/gyp/configurations.gypi index 81e6b13e805..29f457e7c3b 100644 --- a/tools/gyp/configurations.gypi +++ b/tools/gyp/configurations.gypi @@ -426,6 +426,38 @@ ], }, + # Special Linux-only targets to enable SIMDBC cross compilation for + # non-Android ARM devices. + 'DebugXARMSIMDBC': { + 'inherit_from': [ + 'Dart_Base', 'Dart_simdbc_Base', 'Dart_Debug', + 'Dart_Linux_Base', + 'Dart_Linux_xarm_Base', + 'Dart_Linux_Debug', + ], + 'defines': [ + 'DEBUG', + ], + }, + + 'ReleaseXARMSIMDBC': { + 'inherit_from': [ + 'Dart_Base', 'Dart_simdbc_Base', 'Dart_Release', + 'Dart_Linux_Base', + 'Dart_Linux_xarm_Base', + 'Dart_Linux_Release', + ], + }, + + 'ProductXARMSIMDBC': { + 'inherit_from': [ + 'Dart_Base', 'Dart_simdbc_Base', 'Dart_Product', + 'Dart_Linux_Base', + 'Dart_Linux_xarm_Base', + 'Dart_Linux_Product', + ], + }, + # ARM and MIPS hardware configurations are only for Linux and Android. 'DebugXARM': { 'inherit_from': [ diff --git a/tools/utils.py b/tools/utils.py index 02fe8efad86..c4be5af9e96 100644 --- a/tools/utils.py +++ b/tools/utils.py @@ -242,6 +242,7 @@ ARCH_FAMILY = { 'simarm64': 'ia32', 'simdbc': 'ia32', 'simdbc64': 'ia32', + 'armsimdbc': 'arm', } ARCH_GUESS = GuessArchitecture()