[dpdk-dev] mk: use icc default inline limit

Message ID 20170327143544.9498-1-ferruh.yigit@intel.com (mailing list archive)
State Accepted, archived
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Ferruh Yigit March 27, 2017, 2:35 p.m. UTC
  ICC build time
Before this patch (bnx2x PMD enabled [1])
real    8m16.622s

After this patch (bnx2x enabled)
real    0m35.140s

[1]
bnx2x cause the build take a lot, otherwise build times are more sane
numbers.

ICC has a default inline limit and when this limit is hit it generates
a warning, and in DPDK this breaks the build.

Previous solution was to remove the inline limit, which does more
aggressive inlining and build may take too much time.

This patch keeps the default inline limits, but prevents the warning ICC
generates.

Fixes: 8acbad88c4fa ("mk: fix build with icc-15")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 mk/toolchain/icc/rte.vars.mk | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
  

Comments

Thomas Monjalon March 30, 2017, 8:35 p.m. UTC | #1
2017-03-27 15:35, Ferruh Yigit:
> ICC build time
> Before this patch (bnx2x PMD enabled [1])
> real    8m16.622s
> 
> After this patch (bnx2x enabled)
> real    0m35.140s
> 
> [1]
> bnx2x cause the build take a lot, otherwise build times are more sane
> numbers.
> 
> ICC has a default inline limit and when this limit is hit it generates
> a warning, and in DPDK this breaks the build.
> 
> Previous solution was to remove the inline limit, which does more
> aggressive inlining and build may take too much time.
> 
> This patch keeps the default inline limits, but prevents the warning ICC
> generates.
> 
> Fixes: 8acbad88c4fa ("mk: fix build with icc-15")
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>

Applied, thanks
  

Patch

diff --git a/mk/toolchain/icc/rte.vars.mk b/mk/toolchain/icc/rte.vars.mk
index 86d9ef7..dd33645 100644
--- a/mk/toolchain/icc/rte.vars.mk
+++ b/mk/toolchain/icc/rte.vars.mk
@@ -69,9 +69,11 @@  TOOLCHAIN_ASFLAGS =
 #   error #13368: loop was not vectorized with "vector always assert"
 #   error #15527: loop was not vectorized: function call to fprintf cannot be vectorize
 #                   was declared "deprecated"
+#   Warning #11074, 11076: to prevent "inline-max-size" warnings.
 WERROR_FLAGS := -Wall -w2 -diag-disable 271 -diag-warning 1478
 WERROR_FLAGS += -diag-disable 13368 -diag-disable 15527
 WERROR_FLAGS += -diag-disable 188
+WERROR_FLAGS += -diag-disable 11074 -diag-disable 11076
 
 ifeq ($(RTE_DEVEL_BUILD),y)
 WERROR_FLAGS += -Werror-all
@@ -79,10 +81,6 @@  endif
 
 # process cpu flags
 include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.toolchain-compat.mk
-# disable max-inline params boundaries for ICC compiler for version 15 and greater
-ifeq ($(shell test $(ICC_MAJOR_VERSION) -ge 14 && echo 1), 1)
-	TOOLCHAIN_CFLAGS += -no-inline-max-size -no-inline-max-total-size
-endif
 
 export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF
 export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS