From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 0D4BF138989 for ; Sat, 2 May 2015 05:05:11 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 893E5E0848; Sat, 2 May 2015 05:05:03 +0000 (UTC) Received: from plane.gmane.org (plane.gmane.org [80.91.229.3]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 56B86E0817 for ; Sat, 2 May 2015 05:05:02 +0000 (UTC) Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1YoPbn-00013D-DJ for gentoo-user@lists.gentoo.org; Sat, 02 May 2015 07:04:59 +0200 Received: from athedsl-347543.home.otenet.gr ([85.72.213.53]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 02 May 2015 07:04:59 +0200 Received: from realnc by athedsl-347543.home.otenet.gr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 02 May 2015 07:04:59 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: gentoo-user@lists.gentoo.org From: Nikos Chantziaras Subject: [gentoo-user] Re: CFLAGs for kernel compilation Date: Sat, 02 May 2015 08:04:53 +0300 Organization: Lucas Barks Message-ID: References: <5540C101.70906@ramses-pyramidenbau.de> <20150430123819.b72d8b39bd60a912b7c7fde5@gentoo.org> <20150501104402.27d943c901f638942262d3d1@gentoo.org> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-user@lists.gentoo.org Reply-to: gentoo-user@lists.gentoo.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: athedsl-347543.home.otenet.gr User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 In-Reply-To: <20150501104402.27d943c901f638942262d3d1@gentoo.org> X-Archives-Salt: 6eb49fc9-44de-4dc2-82b5-ed3184a63556 X-Archives-Hash: f39ee2bd1386c1efc128022e2952e951 On 01/05/15 10:44, Andrew Savchenko wrote: > On Fri, 1 May 2015 05:09:51 +0000 (UTC) Martin Vaeth wrote: >> Andrew Savchenko wrote: >>> >>> That's why kernel makes sure that no floating point instructions >>> sneaks in using CFLAGS, you may see a lot of -mno-${intrucion_set} >>> flags when running make -V. >> >> So it should be sufficient that the kernel does not use "float" >> or "double", shouldn't it? > > No. Optimizer paths may be very unobvious, i.e. I'll not be > surprised if under some conditions vectorizer may use float > instructions for int code. The kernel uses -O2 and several -march variants (e.g. -march=core2). Several other options are used to prevent GCC from generating unsuitable code. Specifying another -march variant does not affect the optimizer though. It only affects the code generator. If you don't modify the other CFLAGS and only change -march, you will not get FP instructions unless you use FP in the code. Also, I'd be very interested to see *any* optimization that would somehow transform integer code to FP code (note that SIMD is not FP and is perfectly fine in the kernel.) In fact, optimizers tend to transform FP into SIMD, at least on x86 (and other architectures that have fast SIMD instructions.) If I inspect the generated assembly from GCC or Clang, I cannot find FP anywhere, even for code using "float" and "double" operations. They get converted to SIMD on modern CPUs (unless you specify a compiler flag that tells it to use the FPU, for example if you need 80-bit extended precision, which is supported by the x86 FPU.)