Hi Matt,

On Mon, Nov 16, 2015 at 1:30 AM, Matt Wilmas <php_li...@realplain.com>
wrote:

> Hi Dmitry, Anatol, Pierre (etc.), and all,
>
> I'm back now, I think, after a much longer (unintentional) break than I
> expected.  Be coming very soon with what I was doing in the summer (param
> parsing stuff) -- *now* it works with MSVC too, barring any fragility, as I
> accidentally discovered last month...
>
> I've been "discovering" a lot with the wacky Visual Studio compiler! :-)
> This message is about the 2 I found today.
>
> The first simple thing was probably just overlooked, but noticed it while
> looking up __declspec.  zend_never_inline has always been empty (I guess)
> for MSVC, but there's actually a __declspec(noinline) that can be used (and
> works as expected).  A simple and obvious change to bring it in line with
> the other compilers?
>

Please, provide a patch for zend_portability.h


> The second "issue" is with the zend_always_inline functions, I noticed
> this summer.  Did anyone else know that MSVC leaves a *copy* of those
> functions in the output files (DLLs)?  What's the point of that?  When
> they've been inlined, and not referenced otherwise, there should be no
> reason to emit code for a standalone function!
>
> I remembered after seeing that behavior that a bit of my own
> __forceinline'd code did NOT have extra function code, but forgot to
> investigate until today.  What's different about my function definition?
> No "static" specifier!  So that's the key. :-)
>
> But... non-static would create duplicate symbols, I thought.  But no, it
> works!  With just __forceinline, there's no errors. :^)
>
> Can something be done about this?  It would cut the binary size down a
> bit. A zend_static macro to be used with zend_always_inline...?
>

zend_always inline should be always used with static keyword.

Thanks. Dmitry.


>
> Note: I didn't compile PHP, just quick standalone tests to check that
> "noinline" works, no useless functions, and no link error.  Both VS 2008 &
> 2015 (same results).
>
> Thoughts?
>
>
> Thanks,
> Matt
>

Reply via email to