Closed GoogleCodeExporter closed 8 years ago
Rotate now uses Visual C source for 32 bit clangcl.
https://webrtc-codereview.appspot.com/54819004/
Was
// The following are available for Visual C:
#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \
defined(_MSC_VER) && !defined(__clang__)
Now
// The following are available for Visual C and clangcl 32 bit:
#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86)
For 32 bit, this would make Visual C and clangcl use the same code path,
avoiding this issue.
Consider using Visual C source for all clangcl 32 bit:
compare_win.cc
rotate_win.cc
row_win.cc
scale_win.cc
Original comment by fbarch...@chromium.org
on 11 Aug 2015 at 5:17
Switched clang to use Visual C for
compare_win.cc
rotate_win.cc
Todo:
row_win.cc
scale_win.cc
Once complete, /fallback will work for 32 bit.
Original comment by fbarch...@chromium.org
on 18 Aug 2015 at 6:26
scale fixed.
To repro, change build/common.gypi to add /fallback
['clang==1 and target_arch=="ia32"', {
# TODO(thakis): Remove this block once llvm.org/PR24167 is fixed.
'VCCLCompilerTool': {
'WarnAsError': 'false',
'AdditionalOptions': [
'/fallback',
],
},
}],
and change calling code - eg. scale.cc to include an error:
#if defined(__clang__) && defined(_MSC_VER)
#error fallback
#endif
The low levels will use clang but the high level will use visual c.
The mismatch will cause link errors if there are differences.
Original comment by fbarch...@chromium.org
on 18 Aug 2015 at 9:55
fixed for 32 bit in r1470
64 bit uses C for visual C and asm for clangcl, so no immediate plans to make
them the same.
Original comment by fbarch...@chromium.org
on 19 Aug 2015 at 6:55
Original issue reported on code.google.com by
fbarch...@chromium.org
on 22 Jul 2015 at 11:01