gecko-dev/gfx/qcms/moz.build
Andrew Osmond bb4bf3f608 Bug 1600911 - Implement AVX variant of QCMS ICCv2 algorithm. r=jrmuizel
Our performance gtests indicate anywhere from 10-20% reduction in
execution time based on the SSE2 version. Where it fell in the range
depended on the platform, but presumably that is related to the hardware
selected by treeherder. llvm-mca suggested it should be closer to 20%
on modern hardware (skylake).

Differential Revision: https://phabricator.services.mozilla.com/D55642

--HG--
extra : moz-landing-system : lando
2019-12-17 19:22:36 +00:00

67 lines
1.7 KiB
Python

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
EXPORTS += [
'qcms.h',
'qcmstypes.h',
]
SOURCES += [
'chain.c',
'iccread.c',
'matrix.c',
'transform.cpp',
'transform_util.c',
]
FINAL_LIBRARY = 'xul'
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
CFLAGS += ['-Wno-missing-field-initializers']
use_sse1 = False
use_sse2 = False
use_neon = False
use_altivec = False
if CONFIG['INTEL_ARCHITECTURE']:
use_sse2 = True
if CONFIG['CC_TYPE'] == 'clang-cl':
if CONFIG['OS_ARCH'] != 'WINNT' or CONFIG['CPU_ARCH'] != 'x86_64':
use_sse1 = True
else:
use_sse1 = True
elif CONFIG['CPU_ARCH'] == 'aarch64' or CONFIG['BUILD_ARM_NEON']:
use_neon = True
elif CONFIG['HAVE_ALTIVEC']:
use_altivec = True
if use_sse1:
SOURCES += ['transform-sse1.cpp']
SOURCES['transform-sse1.cpp'].flags += CONFIG['SSE_FLAGS']
if use_sse2:
SOURCES += [
'transform-avx.cpp',
'transform-sse2.cpp'
]
SOURCES['transform-avx.cpp'].flags += ['-mavx']
SOURCES['transform-sse2.cpp'].flags += CONFIG['SSE2_FLAGS']
if use_neon:
SOURCES += ['transform-neon.cpp']
SOURCES['transform-neon.cpp'].flags += CONFIG['NEON_FLAGS']
if use_altivec:
SOURCES += ['transform-altivec.cpp']
SOURCES['transform-altivec.cpp'].flags += ['-maltivec']
include('/tools/fuzzing/libfuzzer-config.mozbuild')
if CONFIG['FUZZING_INTERFACES']:
TEST_DIRS += [
'fuzztest'
]