On Sun, Jun 12, 2022 at 10:17 AM Soft Works <[email protected]> wrote: > > > > > -----Original Message----- > > From: ffmpeg-devel <[email protected]> On Behalf Of > > Andreas Rheinhardt > > Sent: Sunday, June 12, 2022 7:28 AM > > To: [email protected] > > Cc: Andreas Rheinhardt <[email protected]> > > Subject: [FFmpeg-devel] [PATCH] all: Replace if (ARCH_FOO) checks by > > #if ARCH_FOO > > > > This is more spec-compliant because it does not rely > > on dead-code elimination by the compiler. Especially > > MSVC has problems with this, as can be seen in > > https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/296373.html > > or > > https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/297022.html > > > > This commit does not eliminate every instance where we rely > > on the dead code elimination: It only tackles branching to > > the initialization of arch-specific dsp code, not e.g. all > > uses of CONFIG_ and HAVE_ checks. But maybe it is already > > enough to compile FFmpeg with MSVC with whole-programm-optimizations > > enabled (if one does not disable too many components). > > > > Signed-off-by: Andreas Rheinhardt <[email protected]> > > --- > > LGTM. > > It's not really a story as simple as "poor MSVC is unable > to perform dead-code-elimination". It is actually capable to do that, > but the ffmpeg code was not only requiring the compiler to eliminate > dead code, it actually required a compiler to ignore dead code blocks > even when those would contain invalid code that cannot be compiled > at all.
This is inaccurate. This code can compile just fine. It is linking that fails, because the functions are not generated, which would not be a problem if it is removed as part of DCE before the linking stage. - Hendrik _______________________________________________ ffmpeg-devel mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
