mirror of
https://github.com/zebrajr/tensorflow.git
synced 2026-01-15 12:15:41 +00:00
[Bazel/MSVC] Enable jpeg SIMD for MSVC
- Add config/msvc.h when building nasm on Windows - Update Windows SIMD for libjpeg-turbo 2.0.0 - Add missing source files
This commit is contained in:
139
third_party/jpeg/jpeg.BUILD
vendored
139
third_party/jpeg/jpeg.BUILD
vendored
@@ -11,8 +11,8 @@ libjpegturbo_nocopts = "-[W]error"
|
||||
|
||||
WIN_COPTS = [
|
||||
"/Ox",
|
||||
"/w14711", # function 'function' selected for inline expansion
|
||||
"/w14710", # 'function' : function not inlined
|
||||
"-DWITH_SIMD",
|
||||
"-wd4996",
|
||||
]
|
||||
|
||||
libjpegturbo_copts = select({
|
||||
@@ -127,6 +127,7 @@ cc_library(
|
||||
":armeabi-v7a": [":simd_armv7a"],
|
||||
":arm64-v8a": [":simd_armv8a"],
|
||||
":linux_ppc64le": [":simd_altivec"],
|
||||
":windows": [":simd_win_x86_64"],
|
||||
"//conditions:default": [":simd_none"],
|
||||
}),
|
||||
)
|
||||
@@ -350,6 +351,140 @@ cc_library(
|
||||
nocopts = libjpegturbo_nocopts,
|
||||
)
|
||||
|
||||
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/jsimd.c",
|
||||
"simd/x86_64/jccolor-avx2.obj",
|
||||
"simd/x86_64/jccolor-sse2.obj",
|
||||
"simd/x86_64/jcgray-avx2.obj",
|
||||
"simd/x86_64/jcgray-sse2.obj",
|
||||
"simd/x86_64/jchuff-sse2.obj",
|
||||
"simd/x86_64/jcphuff-sse2.obj",
|
||||
"simd/x86_64/jcsample-avx2.obj",
|
||||
"simd/x86_64/jcsample-sse2.obj",
|
||||
"simd/x86_64/jdcolor-avx2.obj",
|
||||
"simd/x86_64/jdcolor-sse2.obj",
|
||||
"simd/x86_64/jdmerge-avx2.obj",
|
||||
"simd/x86_64/jdmerge-sse2.obj",
|
||||
"simd/x86_64/jdsample-avx2.obj",
|
||||
"simd/x86_64/jdsample-sse2.obj",
|
||||
"simd/x86_64/jfdctflt-sse.obj",
|
||||
"simd/x86_64/jfdctfst-sse2.obj",
|
||||
"simd/x86_64/jfdctint-avx2.obj",
|
||||
"simd/x86_64/jfdctint-sse2.obj",
|
||||
"simd/x86_64/jidctflt-sse2.obj",
|
||||
"simd/x86_64/jidctfst-sse2.obj",
|
||||
"simd/x86_64/jidctint-avx2.obj",
|
||||
"simd/x86_64/jidctint-sse2.obj",
|
||||
"simd/x86_64/jidctred-sse2.obj",
|
||||
"simd/x86_64/jquantf-sse2.obj",
|
||||
"simd/x86_64/jquanti-avx2.obj",
|
||||
"simd/x86_64/jquanti-sse2.obj",
|
||||
"simd/x86_64/jsimdcpu.obj",
|
||||
],
|
||||
copts = libjpegturbo_copts,
|
||||
)
|
||||
|
||||
genrule(
|
||||
name = "simd_win_x86_64_assemble",
|
||||
srcs = [
|
||||
"jconfig.h",
|
||||
"jconfigint.h",
|
||||
"simd/x86_64/jccolext-avx2.asm",
|
||||
"simd/x86_64/jccolext-sse2.asm",
|
||||
"simd/x86_64/jccolor-avx2.asm",
|
||||
"simd/x86_64/jccolor-sse2.asm",
|
||||
"simd/x86_64/jcgray-avx2.asm",
|
||||
"simd/x86_64/jcgray-sse2.asm",
|
||||
"simd/x86_64/jcgryext-avx2.asm",
|
||||
"simd/x86_64/jcgryext-sse2.asm",
|
||||
"simd/x86_64/jchuff-sse2.asm",
|
||||
"simd/x86_64/jcphuff-sse2.asm",
|
||||
"simd/x86_64/jcsample-avx2.asm",
|
||||
"simd/x86_64/jcsample-sse2.asm",
|
||||
"simd/x86_64/jdcolext-avx2.asm",
|
||||
"simd/x86_64/jdcolext-sse2.asm",
|
||||
"simd/x86_64/jdcolor-avx2.asm",
|
||||
"simd/x86_64/jdcolor-sse2.asm",
|
||||
"simd/x86_64/jdmerge-avx2.asm",
|
||||
"simd/x86_64/jdmerge-sse2.asm",
|
||||
"simd/x86_64/jdmrgext-avx2.asm",
|
||||
"simd/x86_64/jdmrgext-sse2.asm",
|
||||
"simd/x86_64/jdsample-avx2.asm",
|
||||
"simd/x86_64/jdsample-sse2.asm",
|
||||
"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 = [
|
||||
"simd/x86_64/jccolor-avx2.obj",
|
||||
"simd/x86_64/jccolor-sse2.obj",
|
||||
"simd/x86_64/jcgray-avx2.obj",
|
||||
"simd/x86_64/jcgray-sse2.obj",
|
||||
"simd/x86_64/jchuff-sse2.obj",
|
||||
"simd/x86_64/jcphuff-sse2.obj",
|
||||
"simd/x86_64/jcsample-avx2.obj",
|
||||
"simd/x86_64/jcsample-sse2.obj",
|
||||
"simd/x86_64/jdcolor-avx2.obj",
|
||||
"simd/x86_64/jdcolor-sse2.obj",
|
||||
"simd/x86_64/jdmerge-avx2.obj",
|
||||
"simd/x86_64/jdmerge-sse2.obj",
|
||||
"simd/x86_64/jdsample-avx2.obj",
|
||||
"simd/x86_64/jdsample-sse2.obj",
|
||||
"simd/x86_64/jfdctflt-sse.obj",
|
||||
"simd/x86_64/jfdctfst-sse2.obj",
|
||||
"simd/x86_64/jfdctint-avx2.obj",
|
||||
"simd/x86_64/jfdctint-sse2.obj",
|
||||
"simd/x86_64/jidctflt-sse2.obj",
|
||||
"simd/x86_64/jidctfst-sse2.obj",
|
||||
"simd/x86_64/jidctint-avx2.obj",
|
||||
"simd/x86_64/jidctint-sse2.obj",
|
||||
"simd/x86_64/jidctred-sse2.obj",
|
||||
"simd/x86_64/jquantf-sse2.obj",
|
||||
"simd/x86_64/jquanti-avx2.obj",
|
||||
"simd/x86_64/jquanti-sse2.obj",
|
||||
"simd/x86_64/jsimdcpu.obj",
|
||||
],
|
||||
cmd = "for out in $(OUTS); do\n" +
|
||||
" $(location @nasm//:nasm) -fwin64 -DWIN64 -D__x86_64__" +
|
||||
" -I $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/" +
|
||||
" -I $$(dirname $(location simd/nasm/jdct.inc))/" +
|
||||
" -I $$(dirname $(location simd/nasm/jdct.inc))/../../win/" +
|
||||
" -o $$out" +
|
||||
" $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/$$(basename $${out%.obj}.asm)\n" +
|
||||
"done",
|
||||
tools = ["@nasm"],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "simd_none",
|
||||
srcs = [
|
||||
|
||||
5
third_party/nasm.BUILD
vendored
5
third_party/nasm.BUILD
vendored
@@ -133,7 +133,10 @@ cc_binary(
|
||||
"x86/regs.c",
|
||||
"x86/regs.h",
|
||||
"x86/regvals.c",
|
||||
],
|
||||
] + select({
|
||||
":windows": ["config/msvc.h"],
|
||||
"//conditions:default": [],
|
||||
}),
|
||||
includes = [
|
||||
"asm",
|
||||
"include",
|
||||
|
||||
Reference in New Issue
Block a user