Disable Recognition and Expansion of Intrinsic Functions

This content is specific to C++; it does not apply to DPC++.

When recognized, intrinsic functions can get expanded inline or their faster implementation in a library may be assumed and linked in. By default, Inline expansion of intrinsic functions is enabled.

In some cases, disabling this behavior may noticeably improve the size of the produced object or binary.

Options to specify:

Linux*: -fno-builtin
Windows*: /Oi-

Advantages of this method:

Both the size of the object files and the size of library codes brought into an executable can be reduced.

Disadvantages of this method:

  • This method can prevent various performance optimizations from happening. Slower standard library implementation will be used.

  • The size of the final executable can be increased in cases when code pulled in statically from a library for an otherwise inlined intrinsic is large.

Notes: