Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #106283

Re: C Compilers QoI

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.lang.c
Subject Re: C Compilers QoI
Date 2017-03-16 21:24 +0100
Organization A noiseless patient Spider
Message-ID <oaes52$34d$1@dont-email.me> (permalink)
References (9 earlier) <oachdi$87i$1@dont-email.me> <nFAyA.59220$wC7.37730@fx14.iad> <ee666f30-bdca-4137-ade2-047c1b508e92@googlegroups.com> <ej0543Fhe9iU7@mid.individual.net> <36081992-3483-4719-8fa7-c49d256155c4@googlegroups.com>

Show all headers | View raw


On 16/03/17 20:59, supercat@casperkitty.com wrote:
> On Thursday, March 16, 2017 at 1:50:51 PM UTC-5, Ian Collins wrote:
>> On 03/17/17 07:47 AM, supercat wrote:
>>> That's only really relevant if the person who is using the compiler knows
>>> what kind of hardware will be used to run the generated code.  Otherwise
>>> code orderings which improve performance on one processor may make it worse
>>> on another.
>>
>> Which is why compilers have extensive architecture related options...
>
> ...which are useful **in the case where the user of the compiler knows what
> kind of hardware will be used to run the generated code.**
>

That sort of thing is useful to get the very fastest code from a 
compiler.  But you can get good code by taking into account common 
tricks - many or even most of the suggestions in the Intel books are 
valid across a range of Intel cpus, and also across most AMD cpus 
(partly because the same things such as false dependencies  apply in AMD 
cpus, and partly because AMD have read those books - and they know 
compiler writers have read the books.  Even /I/ have read bits from 
those books, and I don't do x86 assembly).

> If an executable is being built for the purpose of publication, the person
> who built it may have no way of knowing everyone who might want to use it or
> what kind of hardware they may have.  As such, it may not make sense to
> worry about the intricacies of particular processors' instruction scheduling
> except possibly to avoid performance disasters.
>

Yes, it makes a lot of sense to be concerned about things like 
scheduling (for time-sensitive code).  Typically, you can make certain 
assumptions about minimum hardware.  If your target is Win7 and above, 
that requires a newer processor than an XP user might have.  Then you 
can decide the range of processors for which your code must work, and 
the target for optimisation - which is not necessarily the same thing. 
By optimising for Core 2 while limiting instructions to those from a 
Pentium 3, your code will be as fast as it can be on modern chips while 
still running on the old ones.  If you decide that all users will have 
at least a Core 2 generation, you can take advantage of instructions 
from there.

And if you have really time-critical parts, you can generate multiple 
versions of the functions in question and have the compiler generate 
code that will select the fastest version once it figures out what 
processor you are running on.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 13:01 +0000
  Re: C Compilers QoI mark.bluemel@gmail.com - 2017-03-14 06:16 -0700
  Re: C Compilers QoI already5chosen@yahoo.com - 2017-03-14 06:42 -0700
  Re: C Compilers QoI "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2017-03-14 06:56 -0700
    Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 15:58 +0000
      Re: C Compilers QoI "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2017-03-14 09:22 -0700
      Re: C Compilers QoI scott@slp53.sl.home (Scott Lurndal) - 2017-03-14 16:54 +0000
        Re: C Compilers QoI supercat@casperkitty.com - 2017-03-14 10:24 -0700
          Re: C Compilers QoI scott@slp53.sl.home (Scott Lurndal) - 2017-03-14 17:58 +0000
            Re: C Compilers QoI supercat@casperkitty.com - 2017-03-14 14:12 -0700
              Re: C Compilers QoI Robert Wessel <robertwessel2@yahoo.com> - 2017-03-14 16:34 -0500
              Re: C Compilers QoI Robert Wessel <robertwessel2@yahoo.com> - 2017-03-14 17:36 -0500
                Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 23:06 +0000
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-14 16:20 -0700
              Re: C Compilers QoI antispam@math.uni.wroc.pl - 2017-03-15 02:32 +0000
                Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-15 12:49 +0000
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-15 11:56 -0700
                Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-15 23:09 +0000
                Re: C Compilers QoI scott@slp53.sl.home (Scott Lurndal) - 2017-03-16 18:17 +0000
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-16 11:47 -0700
                Re: C Compilers QoI Ian Collins <ian-news@hotmail.com> - 2017-03-17 07:50 +1300
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-16 12:59 -0700
                Re: C Compilers QoI David Brown <david.brown@hesbynett.no> - 2017-03-16 21:24 +0100
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-16 14:23 -0700
                Re: C Compilers QoI Ian Collins <ian-news@hotmail.com> - 2017-03-17 11:30 +1300
                Re: C Compilers QoI Ian Collins <ian-news@hotmail.com> - 2017-03-17 11:38 +1300
                Re: C Compilers QoI Gareth Owen <gwowen@gmail.com> - 2017-03-17 05:07 +0000
                Re: C Compilers QoI Ian Collins <ian-news@hotmail.com> - 2017-03-17 20:26 +1300
                Re: C Compilers QoI Gareth Owen <gwowen@gmail.com> - 2017-03-17 07:59 +0000
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-16 16:14 -0700
                Re: C Compilers QoI Robert Wessel <robertwessel2@yahoo.com> - 2017-03-16 22:54 -0500
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-17 09:01 -0700
                Re: C Compilers QoI Ian Collins <ian-news@hotmail.com> - 2017-03-26 14:16 +1300
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-26 14:19 -0700
                Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-26 22:43 +0100
                Re: C Compilers QoI GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-27 01:28 +0200
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-26 22:07 -0700
                Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-27 11:28 +0100
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-27 07:38 -0700
                Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-27 16:23 +0100
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-27 08:55 -0700
                Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-27 17:01 +0100
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-27 10:03 -0700
                Re: C Compilers QoI GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-27 17:58 +0200
                Re: C Compilers QoI already5chosen@yahoo.com - 2017-03-27 03:54 -0700
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-27 08:46 -0700
                Re: C Compilers QoI scott@slp53.sl.home (Scott Lurndal) - 2017-03-27 17:47 +0000
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-27 11:48 -0700
                Re: C Compilers QoI Robert Wessel <robertwessel2@yahoo.com> - 2017-03-27 15:37 -0500
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-27 14:46 -0700
                Re: C Compilers QoI Robert Wessel <robertwessel2@yahoo.com> - 2017-03-27 20:28 -0500
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-28 01:18 -0700
                Re: C Compilers QoI Robert Wessel <robertwessel2@yahoo.com> - 2017-03-28 18:24 -0500
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-29 07:40 -0700
                Re: C Compilers QoI David Brown <david.brown@hesbynett.no> - 2017-03-29 17:05 +0200
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-29 11:07 -0700
                Re: C Compilers QoI antispam@math.uni.wroc.pl - 2017-03-31 04:04 +0000
                Re: C Compilers QoI bartc <bc@freeuk.com> - 2017-03-31 10:53 +0100
                Re: C Compilers QoI Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-03-31 07:35 -0700
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-31 08:07 -0700
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-31 07:54 -0700
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-31 07:43 -0700
                Re: C Compilers QoI Ian Collins <ian-news@hotmail.com> - 2017-03-17 11:21 +1300
                Re: C Compilers QoI Ian Collins <ian-news@hotmail.com> - 2017-03-17 11:24 +1300
                Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-16 22:15 +0000
                Re: C Compilers QoI scott@slp53.sl.home (Scott Lurndal) - 2017-03-17 12:31 +0000
                Re: C Compilers QoI already5chosen@yahoo.com - 2017-03-16 15:24 -0700
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-16 16:03 -0700
                Re: C Compilers QoI scott@slp53.sl.home (Scott Lurndal) - 2017-03-17 12:39 +0000
                Re: C Compilers QoI already5chosen@yahoo.com - 2017-03-17 08:27 -0700
                Re: C Compilers QoI antispam@math.uni.wroc.pl - 2017-03-16 01:35 +0000
                Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-16 02:18 +0000
                Re: C Compilers QoI antispam@math.uni.wroc.pl - 2017-03-18 00:45 +0000
                Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-18 13:12 +0000
                Re: C Compilers QoI antispam@math.uni.wroc.pl - 2017-03-18 20:31 +0000
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-18 17:31 -0700
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-16 09:22 -0700
          Re: C Compilers QoI Nick Bowler <nbowler@draconx.ca> - 2017-03-24 16:13 +0000
            Re: C Compilers QoI supercat@casperkitty.com - 2017-03-24 12:32 -0700
              Re: C Compilers QoI Robert Wessel <robertwessel2@yahoo.com> - 2017-03-24 22:13 -0500
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-25 13:05 -0700
                Re: C Compilers QoI Robert Wessel <robertwessel2@yahoo.com> - 2017-03-27 15:44 -0500
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-27 14:51 -0700
                Re: C Compilers QoI Robert Wessel <robertwessel2@yahoo.com> - 2017-03-27 20:31 -0500
        Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 17:26 +0000
          Re: C Compilers QoI Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-03-15 12:02 -0500
  Re: C Compilers QoI David Brown <david.brown@hesbynett.no> - 2017-03-14 15:00 +0100
    Re: C Compilers QoI already5chosen@yahoo.com - 2017-03-14 07:36 -0700
      Re: C Compilers QoI David Brown <david.brown@hesbynett.no> - 2017-03-14 15:57 +0100
      Re: C Compilers QoI Andrey Tarasevich <andreytarasevich@hotmail.com> - 2017-03-14 08:11 -0700
        Re: C Compilers QoI BGB <cr88192@hotmail.com> - 2017-03-29 23:51 -0500
    Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 15:28 +0000
      Re: C Compilers QoI David Brown <david.brown@hesbynett.no> - 2017-03-14 21:41 +0100
  Re: C Compilers QoI Keith Thompson <kst-u@mib.org> - 2017-03-14 09:26 -0700
    Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 18:23 +0000
      Re: C Compilers QoI Keith Thompson <kst-u@mib.org> - 2017-03-14 12:05 -0700
  Re: C Compilers QoI already5chosen@yahoo.com - 2017-03-14 09:35 -0700
    Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 17:08 +0000
      Re: C Compilers QoI already5chosen@yahoo.com - 2017-03-14 10:24 -0700
        Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 17:34 +0000
        Re: C Compilers QoI already5chosen@yahoo.com - 2017-03-14 11:55 -0700
          Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 19:03 +0000
            Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 19:06 +0000
            Re: C Compilers QoI already5chosen@yahoo.com - 2017-03-14 12:10 -0700
              Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 21:14 +0000
                Re: C Compilers QoI already5chosen@yahoo.com - 2017-03-14 14:42 -0700
                Re: C Compilers QoI supercat@casperkitty.com - 2017-03-14 14:53 -0700
                Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 23:20 +0000
                Re: C Compilers QoI antispam@math.uni.wroc.pl - 2017-03-15 02:43 +0000
  Re: C Compilers QoI jacobnavia <jacob@jacob.remcomp.fr> - 2017-03-14 19:39 +0100
    Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-14 19:10 +0000
  Re: C Compilers QoI antispam@math.uni.wroc.pl - 2017-03-14 19:29 +0000
  Re: C Compilers QoI Noob <root@127.0.0.1> - 2017-03-15 09:27 +0100
  Re: C Compilers QoI ed_davis2@yahoo.com - 2017-03-16 15:10 -0700
    Re: C Compilers QoI BartC <bc@freeuk.com> - 2017-03-16 23:19 +0000

csiph-web