Message ID | 185cfb01d90e57$c22e5420$468afc60$@gmail.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] configure: Change _cflags_noopt for MSVC to -Od | expand |
Context | Check | Description |
---|---|---|
yinshiyou/configure_loongarch64 | warning | Failed to apply patch |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On 12.12.2022 19:30, lilotom@gmail.com wrote: > Currently -O1 is set to _cflags_noopt, but -O1 is actually for size > optimization instead of no-opt which causes size optimized binaries > been built with --disable-optimizations. It's like this very intentionally, since ffmpeg relies on dead-code-elimination in a lot of places, which MSVC does not perform when optimizations are turned off. So optimizations cannot be fully turned off on MSVC.
Thanks. Wondering why and where DCE is needed in FFmpeg build? On Mon, Dec 12, 2022 at 12:26 PM Timo Rothenpieler <timo@rothenpieler.org> wrote: > On 12.12.2022 19:30, lilotom@gmail.com wrote: > > Currently -O1 is set to _cflags_noopt, but -O1 is actually for size > > optimization instead of no-opt which causes size optimized binaries > > been built with --disable-optimizations. > > It's like this very intentionally, since ffmpeg relies on > dead-code-elimination in a lot of places, which MSVC does not perform > when optimizations are turned off. > So optimizations cannot be fully turned off on MSVC. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
On 12.12.2022 21:32, Thomson Tan wrote:
> Thanks. Wondering why and where DCE is needed in FFmpeg build?
Every single time "HAVE_SOMETHING" or "CONFIG_SOMETHING" is used in a
normal if() instead of a pre-processor #if.
That's used in a lot of places all over the codebase.
Am Mo., 12. Dez. 2022 um 19:30 Uhr schrieb <lilotom@gmail.com>: > > Currently -O1 is set to _cflags_noopt, but -O1 is actually for size > optimization instead of no-opt which causes size optimized binaries > been built with --disable-optimizations. > > Signed-off-by: Thomson Tan <lilotom@gmail.com> > --- > configure | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/configure b/configure > index f4eedfc207..388d518345 100755 > --- a/configure > +++ b/configure > @@ -4825,7 +4825,7 @@ probe_cc(){ > _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs' > _cflags_speed="-O2" > _cflags_size="-O1" > - _cflags_noopt="-O1" > + _cflags_noopt="-Od" I am curious: How did you test this patch? Thank you, Carl Eugen
I built the latest FFmpeg with WSL2+MSVC on Windows. Tried configure with --disable-optimizations, but still got an optimized build which makes it hard to set breakpoint on hot functions (likely inlined). On Mon, Dec 12, 2022 at 12:49 PM Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > Am Mo., 12. Dez. 2022 um 19:30 Uhr schrieb <lilotom@gmail.com>: > > > > Currently -O1 is set to _cflags_noopt, but -O1 is actually for size > > optimization instead of no-opt which causes size optimized binaries > > been built with --disable-optimizations. > > > > Signed-off-by: Thomson Tan <lilotom@gmail.com> > > --- > > configure | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/configure b/configure > > index f4eedfc207..388d518345 100755 > > --- a/configure > > +++ b/configure > > @@ -4825,7 +4825,7 @@ probe_cc(){ > > _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs' > > _cflags_speed="-O2" > > _cflags_size="-O1" > > - _cflags_noopt="-O1" > > + _cflags_noopt="-Od" > > I am curious: > How did you test this patch? > > Thank you, Carl Eugen > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
Am Mo., 12. Dez. 2022 um 22:02 Uhr schrieb Thomson Tan <lilotom@gmail.com>: > > I built the latest FFmpeg with WSL2+MSVC on Windows. Tried configure > with --disable-optimizations, but still got an optimized build which makes > it hard to set breakpoint on hot functions (likely inlined). Of course, this explains why you wrote the patch. But I still wonder how you tested it. Please find out what top-posting means and avoid it here, Carl Eugen
With this configuration (WSL2+MSVC) for this diff, I ran `make fate-rsync SAMPLES=fate-suite && make fate SAMPLES=fate-suite/` which passed locally. I also checked the binaries (ffmpeg.exe) and made sure the previous inlined functions are not inlined here. On Mon, Dec 12, 2022 at 1:13 PM Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > Am Mo., 12. Dez. 2022 um 22:02 Uhr schrieb Thomson Tan <lilotom@gmail.com > >: > > > > I built the latest FFmpeg with WSL2+MSVC on Windows. Tried configure > > with --disable-optimizations, but still got an optimized build which > makes > > it hard to set breakpoint on hot functions (likely inlined). > > Of course, this explains why you wrote the patch. > But I still wonder how you tested it. > > Please find out what top-posting means and avoid it here, Carl Eugen > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
diff --git a/configure b/configure index f4eedfc207..388d518345 100755 --- a/configure +++ b/configure @@ -4825,7 +4825,7 @@ probe_cc(){ _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs' _cflags_speed="-O2" _cflags_size="-O1" - _cflags_noopt="-O1" + _cflags_noopt="-Od" if $_cc -nologo- 2>&1 | grep -q Linker; then _ld_o='-out:$@' else
Currently -O1 is set to _cflags_noopt, but -O1 is actually for size optimization instead of no-opt which causes size optimized binaries been built with --disable-optimizations. Signed-off-by: Thomson Tan <lilotom@gmail.com> --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)