1. Replace simd_none w/ proper targets for arm builds.

2. Refactored build rules for libjpeg_turbo simd build, especially for the ARM platform.

PiperOrigin-RevId: 386998061
Change-Id: I1d47644c8709b1978329f524c46efe6215d0f4fe
This commit is contained in:
Chao Mei
2021-07-26 17:39:07 -07:00
committed by TensorFlower Gardener
parent 5a7d190aeb
commit ca348fdb7f

View File

@@ -127,10 +127,8 @@ cc_library(
visibility = ["//visibility:public"],
deps = select({
":k8": [":simd_x86_64"],
# TODO(b/188696518): use :simd_armv7a for 32bit ARM, and :simd_armv8a
# for 64bit ARM.
":armeabi-v7a": [":simd_none"],
":arm64-v8a": [":simd_none"],
":armeabi-v7a": [":simd_armv7a"],
":arm64-v8a": [":simd_armv8a"],
":linux_ppc64le": [":simd_altivec"],
":windows": [":simd_win_x86_64"],
"//conditions:default": [":simd_none"],
@@ -175,21 +173,24 @@ cc_library(
copts = libjpegturbo_copts,
)
SRCS_SIMD_COMMON = [
"jchuff.h",
"jconfig.h",
"jconfigint.h",
"jdct.h",
"jerror.h",
"jinclude.h",
"jmorecfg.h",
"jpegint.h",
"jpeglib.h",
"jsimddct.h",
"jsimd.h",
"simd/jsimd.h",
]
cc_library(
name = "simd_x86_64",
srcs = [
"jchuff.h",
"jconfig.h",
"jconfigint.h",
"jdct.h",
"jerror.h",
"jinclude.h",
"jmorecfg.h",
"jpegint.h",
"jpeglib.h",
"jsimd.h",
"jsimddct.h",
"simd/jsimd.h",
"simd/x86_64/jccolor-avx2.o",
"simd/x86_64/jccolor-sse2.o",
"simd/x86_64/jcgray-avx2.o",
@@ -218,7 +219,7 @@ cc_library(
"simd/x86_64/jquanti-sse2.o",
"simd/x86_64/jsimd.c",
"simd/x86_64/jsimdcpu.o",
],
] + SRCS_SIMD_COMMON,
copts = libjpegturbo_copts,
linkstatic = 1,
)
@@ -336,7 +337,6 @@ cc_library(
)
SRCS_SIMD_ARM = [
"simd/arm/align.h",
"simd/arm/jccolor-neon.c",
"simd/arm/jcgray-neon.c",
"simd/arm/jcphuff-neon.c",
@@ -352,57 +352,48 @@ SRCS_SIMD_ARM = [
"simd/arm/jquanti-neon.c",
]
# .c files in the following list are used like .h files in that they are
# "#include"-ed in the actual .c files. So, treat them like normal headers, and
# they *should not* be compiled into individual objects.
HDRS_SIMD_ARM = [
"simd/arm/align.h",
"simd/arm/jchuff.h",
"simd/arm/jcgryext-neon.c",
"simd/arm/jdcolext-neon.c",
"simd/arm/jdmrgext-neon.c",
]
cc_library(
name = "simd_armv7a",
srcs = [
"jconfig.h",
"jconfigint.h",
"jsimd.h",
"jsimddct.h",
"simd/arm/aarch32/jsimd.c",
"simd/arm/aarch32/jchuff-neon.c",
] + SRCS_SIMD_ARM,
] + SRCS_SIMD_COMMON + SRCS_SIMD_ARM,
hdrs = [
"simd/arm/aarch32/jccolext-neon.c",
] + HDRS_SIMD_ARM,
copts = libjpegturbo_copts,
includes = [
".",
"../../",
],
visibility = ["//visibility:private"],
deps = [":neon-compat_hdr"],
)
cc_library(
name = "simd_armv8a",
srcs = [
"jconfig.h",
"jconfigint.h",
"jsimd.h",
"jsimddct.h",
"simd/arm/aarch64/jsimd.c",
"simd/arm/aarch64/jchuff-neon.c",
] + SRCS_SIMD_ARM,
] + SRCS_SIMD_COMMON + SRCS_SIMD_ARM,
hdrs = [
"simd/arm/aarch64/jccolext-neon.c",
] + HDRS_SIMD_ARM,
copts = libjpegturbo_copts,
includes = [
".",
"../../",
],
visibility = ["//visibility:private"],
deps = [":neon-compat_hdr"],
)
cc_library(
name = "simd_win_x86_64",
srcs = [
"jchuff.h",
"jconfig.h",
"jconfigint.h",
"jdct.h",
"jerror.h",
"jinclude.h",
"jmorecfg.h",
"jpegint.h",
"jpeglib.h",
"jsimd.h",
"jsimddct.h",
"simd/jsimd.h",
"simd/x86_64/jccolor-avx2.obj",
"simd/x86_64/jccolor-sse2.obj",
"simd/x86_64/jcgray-avx2.obj",
@@ -431,7 +422,7 @@ cc_library(
"simd/x86_64/jquanti-sse2.obj",
"simd/x86_64/jsimd.c",
"simd/x86_64/jsimdcpu.obj",
],
] + SRCS_SIMD_COMMON,
copts = libjpegturbo_copts,
)