Merge pull request #21993 from perfinion:jpeg

PiperOrigin-RevId: 211706322
This commit is contained in:
TensorFlower Gardener 2018-09-05 15:16:33 -07:00
commit 7288b3da07
2 changed files with 201 additions and 131 deletions

View File

@ -240,11 +240,11 @@ def tf_workspace(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "jpeg", name = "jpeg",
urls = [ urls = [
"https://mirror.bazel.build/github.com/libjpeg-turbo/libjpeg-turbo/archive/1.5.3.tar.gz", "https://mirror.bazel.build/github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.0.tar.gz",
"https://github.com/libjpeg-turbo/libjpeg-turbo/archive/1.5.3.tar.gz", "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.0.tar.gz",
], ],
sha256 = "1a17020f859cb12711175a67eab5c71fc1904e04b587046218e36106e07eabde", sha256 = "f892fff427ab3adffc289363eac26d197ce3ccacefe5f5822377348a8166069b",
strip_prefix = "libjpeg-turbo-1.5.3", strip_prefix = "libjpeg-turbo-2.0.0",
build_file = clean_dep("//third_party/jpeg:jpeg.BUILD"), build_file = clean_dep("//third_party/jpeg:jpeg.BUILD"),
system_build_file = clean_dep("//third_party/systemlibs:jpeg.BUILD"), system_build_file = clean_dep("//third_party/systemlibs:jpeg.BUILD"),
) )

View File

@ -144,27 +144,27 @@ cc_library(
"jpeglib.h", "jpeglib.h",
"jsimd.h", "jsimd.h",
"jsimddct.h", "jsimddct.h",
"simd/jccolor-altivec.c",
"simd/jcgray-altivec.c",
"simd/jcsample.h",
"simd/jcsample-altivec.c",
"simd/jdcolor-altivec.c",
"simd/jdmerge-altivec.c",
"simd/jdsample-altivec.c",
"simd/jfdctfst-altivec.c",
"simd/jfdctint-altivec.c",
"simd/jidctfst-altivec.c",
"simd/jidctint-altivec.c",
"simd/jquanti-altivec.c",
"simd/jsimd.h", "simd/jsimd.h",
"simd/jsimd_altivec.h", "simd/powerpc/jccolor-altivec.c",
"simd/jsimd_powerpc.c", "simd/powerpc/jcgray-altivec.c",
"simd/powerpc/jcsample-altivec.c",
"simd/powerpc/jdcolor-altivec.c",
"simd/powerpc/jdmerge-altivec.c",
"simd/powerpc/jdsample-altivec.c",
"simd/powerpc/jfdctfst-altivec.c",
"simd/powerpc/jfdctint-altivec.c",
"simd/powerpc/jidctfst-altivec.c",
"simd/powerpc/jidctint-altivec.c",
"simd/powerpc/jquanti-altivec.c",
"simd/powerpc/jsimd.c",
], ],
hdrs = [ hdrs = [
"simd/jccolext-altivec.c", # should have been named .inc "simd/powerpc/jccolext-altivec.c",
"simd/jcgryext-altivec.c", # should have been named .inc "simd/powerpc/jcgryext-altivec.c",
"simd/jdcolext-altivec.c", # should have been named .inc "simd/powerpc/jdcolext-altivec.c",
"simd/jdmrgext-altivec.c", # should have been named .inc "simd/powerpc/jdmrgext-altivec.c",
"simd/powerpc/jcsample.h",
"simd/powerpc/jsimd_altivec.h",
], ],
copts = libjpegturbo_copts, copts = libjpegturbo_copts,
nocopts = libjpegturbo_nocopts, nocopts = libjpegturbo_nocopts,
@ -175,6 +175,7 @@ cc_library(
srcs = [ srcs = [
"jchuff.h", "jchuff.h",
"jconfig.h", "jconfig.h",
"jconfigint.h",
"jdct.h", "jdct.h",
"jerror.h", "jerror.h",
"jinclude.h", "jinclude.h",
@ -183,24 +184,35 @@ cc_library(
"jpeglib.h", "jpeglib.h",
"jsimd.h", "jsimd.h",
"jsimddct.h", "jsimddct.h",
"simd/jccolor-sse2-64.o",
"simd/jcgray-sse2-64.o",
"simd/jchuff-sse2-64.o",
"simd/jcsample-sse2-64.o",
"simd/jdcolor-sse2-64.o",
"simd/jdmerge-sse2-64.o",
"simd/jdsample-sse2-64.o",
"simd/jfdctflt-sse-64.o",
"simd/jfdctfst-sse2-64.o",
"simd/jfdctint-sse2-64.o",
"simd/jidctflt-sse2-64.o",
"simd/jidctfst-sse2-64.o",
"simd/jidctint-sse2-64.o",
"simd/jidctred-sse2-64.o",
"simd/jquantf-sse2-64.o",
"simd/jquanti-sse2-64.o",
"simd/jsimd.h", "simd/jsimd.h",
"simd/jsimd_x86_64.c", "simd/x86_64/jsimd.c",
"simd/x86_64/jccolor-avx2.o",
"simd/x86_64/jccolor-sse2.o",
"simd/x86_64/jcgray-avx2.o",
"simd/x86_64/jcgray-sse2.o",
"simd/x86_64/jchuff-sse2.o",
"simd/x86_64/jcphuff-sse2.o",
"simd/x86_64/jcsample-avx2.o",
"simd/x86_64/jcsample-sse2.o",
"simd/x86_64/jdcolor-avx2.o",
"simd/x86_64/jdcolor-sse2.o",
"simd/x86_64/jdmerge-avx2.o",
"simd/x86_64/jdmerge-sse2.o",
"simd/x86_64/jdsample-avx2.o",
"simd/x86_64/jdsample-sse2.o",
"simd/x86_64/jfdctflt-sse.o",
"simd/x86_64/jfdctfst-sse2.o",
"simd/x86_64/jfdctint-avx2.o",
"simd/x86_64/jfdctint-sse2.o",
"simd/x86_64/jidctflt-sse2.o",
"simd/x86_64/jidctfst-sse2.o",
"simd/x86_64/jidctint-avx2.o",
"simd/x86_64/jidctint-sse2.o",
"simd/x86_64/jidctred-sse2.o",
"simd/x86_64/jquantf-sse2.o",
"simd/x86_64/jquanti-avx2.o",
"simd/x86_64/jquanti-sse2.o",
"simd/x86_64/jsimdcpu.o",
], ],
copts = libjpegturbo_copts, copts = libjpegturbo_copts,
linkstatic = 1, linkstatic = 1,
@ -210,57 +222,88 @@ cc_library(
genrule( genrule(
name = "simd_x86_64_assemblage23", name = "simd_x86_64_assemblage23",
srcs = [ srcs = [
"simd/jccolext-sse2-64.asm", "jconfig.h",
"simd/jccolor-sse2-64.asm", "jconfigint.h",
"simd/jcgray-sse2-64.asm", "simd/x86_64/jccolext-avx2.asm",
"simd/jcgryext-sse2-64.asm", "simd/x86_64/jccolext-sse2.asm",
"simd/jchuff-sse2-64.asm", "simd/x86_64/jccolor-avx2.asm",
"simd/jcolsamp.inc", "simd/x86_64/jccolor-sse2.asm",
"simd/jcsample-sse2-64.asm", "simd/x86_64/jcgray-avx2.asm",
"simd/jdcolext-sse2-64.asm", "simd/x86_64/jcgray-sse2.asm",
"simd/jdcolor-sse2-64.asm", "simd/x86_64/jcgryext-avx2.asm",
"simd/jdct.inc", "simd/x86_64/jcgryext-sse2.asm",
"simd/jdmerge-sse2-64.asm", "simd/x86_64/jchuff-sse2.asm",
"simd/jdmrgext-sse2-64.asm", "simd/x86_64/jcphuff-sse2.asm",
"simd/jdsample-sse2-64.asm", "simd/x86_64/jcsample-avx2.asm",
"simd/jfdctflt-sse-64.asm", "simd/x86_64/jcsample-sse2.asm",
"simd/jfdctfst-sse2-64.asm", "simd/x86_64/jdcolext-avx2.asm",
"simd/jfdctint-sse2-64.asm", "simd/x86_64/jdcolext-sse2.asm",
"simd/jidctflt-sse2-64.asm", "simd/x86_64/jdcolor-avx2.asm",
"simd/jidctfst-sse2-64.asm", "simd/x86_64/jdcolor-sse2.asm",
"simd/jidctint-sse2-64.asm", "simd/x86_64/jdmerge-avx2.asm",
"simd/jidctred-sse2-64.asm", "simd/x86_64/jdmerge-sse2.asm",
"simd/jpeg_nbits_table.inc", "simd/x86_64/jdmrgext-avx2.asm",
"simd/jquantf-sse2-64.asm", "simd/x86_64/jdmrgext-sse2.asm",
"simd/jquanti-sse2-64.asm", "simd/x86_64/jdsample-avx2.asm",
"simd/jsimdcfg.inc", "simd/x86_64/jdsample-sse2.asm",
"simd/jsimdext.inc", "simd/x86_64/jfdctflt-sse.asm",
"simd/x86_64/jfdctfst-sse2.asm",
"simd/x86_64/jfdctint-avx2.asm",
"simd/x86_64/jfdctint-sse2.asm",
"simd/x86_64/jidctflt-sse2.asm",
"simd/x86_64/jidctfst-sse2.asm",
"simd/x86_64/jidctint-avx2.asm",
"simd/x86_64/jidctint-sse2.asm",
"simd/x86_64/jidctred-sse2.asm",
"simd/x86_64/jquantf-sse2.asm",
"simd/x86_64/jquanti-avx2.asm",
"simd/x86_64/jquanti-sse2.asm",
"simd/x86_64/jsimdcpu.asm",
"simd/nasm/jcolsamp.inc",
"simd/nasm/jdct.inc",
"simd/nasm/jpeg_nbits_table.inc",
"simd/nasm/jsimdcfg.inc",
"simd/nasm/jsimdcfg.inc.h",
"simd/nasm/jsimdext.inc",
], ],
outs = [ outs = [
"simd/jccolor-sse2-64.o", "simd/x86_64/jccolor-avx2.o",
"simd/jcgray-sse2-64.o", "simd/x86_64/jccolor-sse2.o",
"simd/jchuff-sse2-64.o", "simd/x86_64/jcgray-avx2.o",
"simd/jcsample-sse2-64.o", "simd/x86_64/jcgray-sse2.o",
"simd/jdcolor-sse2-64.o", "simd/x86_64/jchuff-sse2.o",
"simd/jdmerge-sse2-64.o", "simd/x86_64/jcphuff-sse2.o",
"simd/jdsample-sse2-64.o", "simd/x86_64/jcsample-avx2.o",
"simd/jfdctflt-sse-64.o", "simd/x86_64/jcsample-sse2.o",
"simd/jfdctfst-sse2-64.o", "simd/x86_64/jdcolor-avx2.o",
"simd/jfdctint-sse2-64.o", "simd/x86_64/jdcolor-sse2.o",
"simd/jidctflt-sse2-64.o", "simd/x86_64/jdmerge-avx2.o",
"simd/jidctfst-sse2-64.o", "simd/x86_64/jdmerge-sse2.o",
"simd/jidctint-sse2-64.o", "simd/x86_64/jdsample-avx2.o",
"simd/jidctred-sse2-64.o", "simd/x86_64/jdsample-sse2.o",
"simd/jquantf-sse2-64.o", "simd/x86_64/jfdctflt-sse.o",
"simd/jquanti-sse2-64.o", "simd/x86_64/jfdctfst-sse2.o",
"simd/x86_64/jfdctint-avx2.o",
"simd/x86_64/jfdctint-sse2.o",
"simd/x86_64/jidctflt-sse2.o",
"simd/x86_64/jidctfst-sse2.o",
"simd/x86_64/jidctint-avx2.o",
"simd/x86_64/jidctint-sse2.o",
"simd/x86_64/jidctred-sse2.o",
"simd/x86_64/jquantf-sse2.o",
"simd/x86_64/jquanti-avx2.o",
"simd/x86_64/jquanti-sse2.o",
"simd/x86_64/jsimdcpu.o",
], ],
cmd = "for out in $(OUTS); do\n" + cmd = "for out in $(OUTS); do\n" +
" $(location @nasm//:nasm) -f elf64" + " $(location @nasm//:nasm) -f elf64" +
" -DELF -DPIC -DRGBX_FILLER_0XFF -D__x86_64__ -DARCH_X86_64" + " -DELF -DPIC -D__x86_64__" +
" -I $$(dirname $(location simd/jdct.inc))/" + " -I $$(dirname $(location jconfig.h))/" +
" -I $$(dirname $(location simd/jsimdcfg.inc))/" + " -I $$(dirname $(location jconfigint.h))/" +
" -I $$(dirname $(location simd/nasm/jsimdcfg.inc.h))/" +
" -I $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/" +
" -o $$out" + " -o $$out" +
" $$(dirname $(location simd/jdct.inc))/$$(basename $${out%.o}.asm)\n" + " $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/$$(basename $${out%.o}.asm)\n" +
"done", "done",
tools = ["@nasm"], tools = ["@nasm"],
) )
@ -279,8 +322,8 @@ cc_library(
"jsimd.h", "jsimd.h",
"jsimddct.h", "jsimddct.h",
"simd/jsimd.h", "simd/jsimd.h",
"simd/jsimd_arm.c", "simd/arm/jsimd.c",
"simd/jsimd_arm_neon.S", "simd/arm/jsimd_neon.S",
], ],
copts = libjpegturbo_copts, copts = libjpegturbo_copts,
nocopts = libjpegturbo_nocopts, nocopts = libjpegturbo_nocopts,
@ -300,8 +343,8 @@ cc_library(
"jsimd.h", "jsimd.h",
"jsimddct.h", "jsimddct.h",
"simd/jsimd.h", "simd/jsimd.h",
"simd/jsimd_arm64.c", "simd/arm64/jsimd.c",
"simd/jsimd_arm64_neon.S", "simd/arm64/jsimd_neon.S",
], ],
copts = libjpegturbo_copts, copts = libjpegturbo_copts,
nocopts = libjpegturbo_nocopts, nocopts = libjpegturbo_nocopts,
@ -332,50 +375,44 @@ template_rule(
out = "jconfig_win.h", out = "jconfig_win.h",
substitutions = { substitutions = {
"@JPEG_LIB_VERSION@": "62", "@JPEG_LIB_VERSION@": "62",
"@VERSION@": "1.5.1", "@VERSION@": "2.0.0",
"@LIBJPEG_TURBO_VERSION_NUMBER@": "1005001", "@LIBJPEG_TURBO_VERSION_NUMBER@": "2000000",
"cmakedefine": "define",
"@BITS_IN_JSAMPLE@": "8", "@BITS_IN_JSAMPLE@": "8",
}, "#cmakedefine C_ARITH_CODING_SUPPORTED": "#define C_ARITH_CODING_SUPPORTED",
) "#cmakedefine D_ARITH_CODING_SUPPORTED": "#define D_ARITH_CODING_SUPPORTED",
"#cmakedefine MEM_SRCDST_SUPPORTED": "#define MEM_SRCDST_SUPPORTED",
template_rule( "#cmakedefine WITH_SIMD": "",
name = "jconfigint_win",
src = "win/jconfigint.h.in",
out = "jconfigint_win.h",
substitutions = {
"@VERSION@": "1.5.1",
"@BUILD@": "20161115",
"@CMAKE_PROJECT_NAME@": "libjpeg-turbo",
}, },
) )
JCONFIG_NOWIN_COMMON_SUBSTITUTIONS = { JCONFIG_NOWIN_COMMON_SUBSTITUTIONS = {
"LIBJPEG_TURBO_VERSION 0": "LIBJPEG_TURBO_VERSION 1.5.1", "@JPEG_LIB_VERSION@": "62",
"LIBJPEG_TURBO_VERSION_NUMBER 0": "LIBJPEG_TURBO_VERSION_NUMBER 1005001", "@VERSION@": "2.0.0",
"#undef C_ARITH_CODING_SUPPORTED": "#define C_ARITH_CODING_SUPPORTED 1", "@LIBJPEG_TURBO_VERSION_NUMBER@": "2000000",
"#undef D_ARITH_CODING_SUPPORTED": "#define D_ARITH_CODING_SUPPORTED 1", "#cmakedefine C_ARITH_CODING_SUPPORTED": "#define C_ARITH_CODING_SUPPORTED",
"#undef HAVE_LOCALE_H": "#define HAVE_LOCALE_H 1", "#cmakedefine D_ARITH_CODING_SUPPORTED": "#define D_ARITH_CODING_SUPPORTED",
"#undef HAVE_STDDEF_H": "#define HAVE_STDDEF_H 1", "#cmakedefine MEM_SRCDST_SUPPORTED": "#define MEM_SRCDST_SUPPORTED",
"#undef HAVE_STDLIB_H": "#define HAVE_STDLIB_H 1", "@BITS_IN_JSAMPLE@": "8",
"#undef HAVE_UNSIGNED_CHAR": "#define HAVE_UNSIGNED_CHAR 1", "#cmakedefine HAVE_LOCALE_H": "#define HAVE_LOCALE_H 1",
"#undef HAVE_UNSIGNED_SHORT": "#define HAVE_UNSIGNED_SHORT 1", "#cmakedefine HAVE_STDDEF_H": "#define HAVE_STDDEF_H 1",
"#undef INCOMPLETE_TYPES_BROKEN": "", "#cmakedefine HAVE_STDLIB_H": "#define HAVE_STDLIB_H 1",
"#undef MEM_SRCDST_SUPPORTED": "#define MEM_SRCDST_SUPPORTED 1", "#cmakedefine NEED_SYS_TYPES_H": "#define NEED_SYS_TYPES_H",
"#undef NEED_BSD_STRINGS": "", "#cmakedefine NEED_BSD_STRINGS": "",
"#undef NEED_SYS_TYPES_H": "#define NEED_SYS_TYPES_H 1", "#cmakedefine HAVE_UNSIGNED_CHAR": "#define HAVE_UNSIGNED_CHAR 1",
"#undef __CHAR_UNSIGNED__": "", "#cmakedefine HAVE_UNSIGNED_SHORT": "#define HAVE_UNSIGNED_SHORT 1",
"#cmakedefine INCOMPLETE_TYPES_BROKEN": "",
"#cmakedefine RIGHT_SHIFT_IS_UNSIGNED": "",
"#cmakedefine __CHAR_UNSIGNED__": "",
"#undef const": "", "#undef const": "",
"#undef size_t": "", "#undef size_t": "",
"#undef RIGHT_SHIFT_IS_UNSIGNED": "",
} }
JCONFIG_NOWIN_SIMD_SUBSTITUTIONS = { JCONFIG_NOWIN_SIMD_SUBSTITUTIONS = {
"#undef WITH_SIMD": "#define WITH_SIMD 1", "#cmakedefine WITH_SIMD": "#define WITH_SIMD",
} }
JCONFIG_NOWIN_NOSIMD_SUBSTITUTIONS = { JCONFIG_NOWIN_NOSIMD_SUBSTITUTIONS = {
"#undef WITH_SIMD": "", "#cmakedefine WITH_SIMD": "",
} }
JCONFIG_NOWIN_SIMD_SUBSTITUTIONS.update(JCONFIG_NOWIN_COMMON_SUBSTITUTIONS) JCONFIG_NOWIN_SIMD_SUBSTITUTIONS.update(JCONFIG_NOWIN_COMMON_SUBSTITUTIONS)
@ -396,22 +433,55 @@ template_rule(
substitutions = JCONFIG_NOWIN_SIMD_SUBSTITUTIONS, substitutions = JCONFIG_NOWIN_SIMD_SUBSTITUTIONS,
) )
template_rule( JCONFIGINT_COMMON_SUBSTITUTIONS = {
name = "jconfigint_nowin", "@BUILD@": "20180831",
src = "jconfigint.h.in", "@VERSION@": "2.0.0",
out = "jconfigint_nowin.h", "@CMAKE_PROJECT_NAME@": "libjpeg-turbo",
substitutions = {
"#undef BUILD": "#define BUILD \"20161115\"",
"#undef inline": "", "#undef inline": "",
"#undef INLINE": "#define INLINE inline __attribute__((always_inline))", "#cmakedefine HAVE_INTRIN_H": "",
"#undef PACKAGE_NAME": "#define PACKAGE_NAME \"libjpeg-turbo\"", }
"#undef VERSION": "#define VERSION \"1.5.1\"",
"#undef SIZEOF_SIZE_T": "#if (__WORDSIZE==64 && !defined(__native_client__))\n" + JCONFIGINT_NOWIN_SUBSTITUTIONS = {
"#cmakedefine HAVE_BUILTIN_CTZL": "#define HAVE_BUILTIN_CTZL",
"@INLINE@": "inline __attribute__((always_inline))",
"#define SIZEOF_SIZE_T @SIZE_T@": "#if (__WORDSIZE==64 && !defined(__native_client__))\n" +
"#define SIZEOF_SIZE_T 8\n" + "#define SIZEOF_SIZE_T 8\n" +
"#else\n" + "#else\n" +
"#define SIZEOF_SIZE_T 4\n" + "#define SIZEOF_SIZE_T 4\n" +
"#endif\n", "#endif\n",
}, }
JCONFIGINT_WIN_SUBSTITUTIONS = {
"#cmakedefine HAVE_BUILTIN_CTZL": "",
"#define INLINE @INLINE@": "#if defined(__GNUC__)\n" +
"#define INLINE inline __attribute__((always_inline))\n" +
"#elif defined(_MSC_VER)\n" +
"#define INLINE __forceinline\n" +
"#else\n" +
"#define INLINE\n" +
"#endif\n",
"#define SIZEOF_SIZE_T @SIZE_T@": "#if (__WORDSIZE==64)\n" +
"#define SIZEOF_SIZE_T 8\n" +
"#else\n" +
"#define SIZEOF_SIZE_T 4\n" +
"#endif\n",
}
JCONFIGINT_NOWIN_SUBSTITUTIONS.update(JCONFIGINT_COMMON_SUBSTITUTIONS)
JCONFIGINT_WIN_SUBSTITUTIONS.update(JCONFIGINT_COMMON_SUBSTITUTIONS)
template_rule(
name = "jconfigint_nowin",
src = "jconfigint.h.in",
out = "jconfigint_nowin.h",
substitutions = JCONFIGINT_NOWIN_SUBSTITUTIONS,
)
template_rule(
name = "jconfigint_win",
src = "jconfigint.h.in",
out = "jconfigint_win.h",
substitutions = JCONFIGINT_WIN_SUBSTITUTIONS,
) )
genrule( genrule(