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


Groups > comp.lang.c > #130153

Re: "C Is Not a Low-level Language"

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.lang.c
Subject Re: "C Is Not a Low-level Language"
Date 2018-05-04 14:37 +0200
Organization A noiseless patient Spider
Message-ID <pchk5d$d5t$1@dont-email.me> (permalink)
References <pcda5a$5nk$1@dont-email.me> <bhtGC.33054$7b4.3563@fx12.am4> <pch4hk$9ip$1@dont-email.me> <4ed7c06d-9608-4b04-a601-9d1bfae1c7b0@googlegroups.com>

Show all headers | View raw


On 04/05/18 13:51, already5chosen@yahoo.com wrote:
> On Friday, May 4, 2018 at 11:10:50 AM UTC+3, David Brown wrote:
>>
>> Some of his points about cpus being designed to be fast for C are true -
>> but most aspects here also make the cpus fast for other compiled
>> languages.  (And the "register rename engine" which he rightly calls a
>> cost in power and die area is mainly a requirement of binary backwards
>> compatibility in the x86 world - high register count RISC processors
>> don't have them, and they are not required in any way for C.)
>>
> 
> Why do you feel oblidged to comment on things that you have no
> slightest idea about?
> 
> MIPS R1000 and derivatives have no "register rename engine"?
> HP PA-8000 and derivatives have no "register rename engine"?
> DEC Alpha 21264 and 21364 have no "register rename engine"?
> IBM Power from 3 to 9, excluding 6 have no "register rename engine"?
> Fujitsu SPARC64 from V to XII have  no "register rename engine"?
> Apple A cores starting from Typhoon have  no "register rename engine"?
> ARM Cortex A57/A72 series and A73/A75 series have no "register rename engine"?
> 
> The answer is "No, all of above have it".
> And unless you don't know (which sounds unlikely) all above
> mentioned
> architectures feature at least 32 programmer-visible general-purpose
> registers.
> 

I stand corrected here - the architectures whose details I am most
familiar with are either older or simpler (the embedded ARM and PPC
cores I have used most do not have register renaming).

Let me just note that register renaming is not necessary for C.  And the
benefits (and costs) of it are unrelated to the language.  It is a
matter of taking a sequential instruction stream and trying to achieve
instruction level parallelism and out-of-order execution (as distinct
from getting parallelism from having multiple virtual cores or threads).
 It is particularly important when you are trying to get higher speeds
while keeping binary compatibility with existing code that is written
without considering scheduling or parallel execution of instructions.

Secondly, register renaming is most necessary, and most costly, when
handling an architecture with few registers, where much of the data
passes through a bottleneck register or accumulator, or where you have a
substantial proportion of operations of the form "A = A op B".  On
processors with lots of registers you can already run "A = B op C" and
"D = E op F" in parallel without register renaming - and compilers
understand that and pick registers appropriately.  (But yes, once you
are trying to do more out-of-order or superscaler execution then even 32
registers gets limited.)

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


Thread

"C Is Not a Low-level Language" Lynn McGuire <lynnmcguire5@gmail.com> - 2018-05-02 16:21 -0500
  "C Is Not a Low-level Language" Chad <cdalten@gmail.com> - 2018-05-02 16:35 -0700
  Re: "C Is Not a Low-level Language" bartc <bc@freeuk.com> - 2018-05-03 02:07 +0100
    Re: "C Is Not a Low-level Language" 1alvinalbrecht1@gmail.com - 2018-05-02 21:48 -0700
      Re: "C Is Not a Low-level Language" Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2018-05-03 02:14 -0700
        Re: "C Is Not a Low-level Language" David Brown <david.brown@hesbynett.no> - 2018-05-04 10:45 +0200
          Re: "C Is Not a Low-level Language" Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-04 02:15 -0700
      Re: "C Is Not a Low-level Language" David Brown <david.brown@hesbynett.no> - 2018-05-04 10:14 +0200
        Re: "C Is Not a Low-level Language" supercat@casperkitty.com - 2018-05-04 08:12 -0700
          Re: "C Is Not a Low-level Language" David Brown <david.brown@hesbynett.no> - 2018-05-06 21:18 +0200
            Re: "C Is Not a Low-level Language" supercat@casperkitty.com - 2018-05-06 15:44 -0700
              Re: "C Is Not a Low-level Language" Richard Damon <Richard@Damon-Family.org> - 2018-05-06 19:45 -0400
                Re: "C Is Not a Low-level Language" supercat@casperkitty.com - 2018-05-07 09:47 -0700
                Re: "C Is Not a Low-level Language" Steve Carroll <frelwizzen@gmail.com> - 2018-05-07 13:15 -0700
                Re: "C Is Not a Low-level Language" Richard Damon <Richard@Damon-Family.org> - 2018-05-07 22:03 -0400
                Re: "C Is Not a Low-level Language" supercat@casperkitty.com - 2018-05-08 06:46 -0700
                Re: "C Is Not a Low-level Language" Richard Damon <Richard@Damon-Family.org> - 2018-05-08 20:59 -0400
                Re: "C Is Not a Low-level Language" supercat@casperkitty.com - 2018-05-09 10:03 -0700
                Re: "C Is Not a Low-level Language" Steve Carroll <frelwizzen@gmail.com> - 2018-05-09 10:57 -0700
                Re: "C Is Not a Low-level Language" supercat@casperkitty.com - 2018-05-08 07:58 -0700
                Re: "C Is Not a Low-level Language" Tim Rentsch <txr@alumni.caltech.edu> - 2018-05-18 20:18 -0700
                Re: "C Is Not a Low-level Language" supercat@casperkitty.com - 2018-05-19 15:49 -0700
              Re: "C Is Not a Low-level Language" Steve Carroll <frelwizzen@gmail.com> - 2018-05-07 05:58 -0700
    Re: "C Is Not a Low-level Language" bartc <bc@freeuk.com> - 2018-05-03 10:58 +0100
      Some course material (was Re: "C Is Not a Low-level Language") Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-05-03 14:41 +0000
        Re: Some course material (was Re: "C Is Not a Low-level Language") bartc <bc@freeuk.com> - 2018-05-03 16:02 +0100
        Re: Some course material (was Re: "C Is Not a Low-level Language") Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-03 10:25 -0700
      Re: "C Is Not a Low-level Language" Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2018-05-03 09:17 -0700
        Re: "C Is Not a Low-level Language" bartc <bc@freeuk.com> - 2018-05-03 17:39 +0100
          Re: "C Is Not a Low-level Language" Wouter Verhelst <w@uter.be> - 2018-05-04 11:40 +0200
            Re: "C Is Not a Low-level Language" bartc <bc@freeuk.com> - 2018-05-04 10:59 +0100
              Re: "C Is Not a Low-level Language" Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2018-05-04 03:18 -0700
                Re: "C Is Not a Low-level Language" scott@slp53.sl.home (Scott Lurndal) - 2018-05-04 14:59 +0000
                Re: "C Is Not a Low-level Language" supercat@casperkitty.com - 2018-05-04 08:57 -0700
                Re: "C Is Not a Low-level Language" David Brown <david.brown@hesbynett.no> - 2018-05-06 23:24 +0200
                Re: "C Is Not a Low-level Language" Robert Wessel <robertwessel2@yahoo.com> - 2018-05-07 12:27 -0500
                Re: "C Is Not a Low-level Language" Robert Wessel <robertwessel2@yahoo.com> - 2018-05-04 11:15 -0500
                Re: "C Is Not a Low-level Language" Wouter Verhelst <w@uter.be> - 2018-05-04 18:13 +0200
                Re: "C Is Not a Low-level Language" Robert Wessel <robertwessel2@yahoo.com> - 2018-05-04 11:45 -0500
                Re: "C Is Not a Low-level Language" scott@slp53.sl.home (Scott Lurndal) - 2018-05-04 17:31 +0000
                Re: "C Is Not a Low-level Language" already5chosen@yahoo.com - 2018-05-05 11:10 -0700
                Re: "C Is Not a Low-level Language" Wouter Verhelst <w@uter.be> - 2018-05-05 11:48 +0200
                Re: "C Is Not a Low-level Language" Steve Carroll <frelwizzen@gmail.com> - 2018-05-07 17:57 -0700
                Re: "C Is Not a Low-level Language" Steve Carroll <frelwizzen@gmail.com> - 2018-05-08 00:11 -0700
                Re: "C Is Not a Low-level Language" David Brown <david.brown@hesbynett.no> - 2018-05-06 23:28 +0200
                Re: "C Is Not a Low-level Language" already5chosen@yahoo.com - 2018-05-06 15:48 -0700
                Re: "C Is Not a Low-level Language" Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-05-08 20:01 +0000
                Re: "C Is Not a Low-level Language" already5chosen@yahoo.com - 2018-05-08 13:20 -0700
                Re: "C Is Not a Low-level Language" scott@slp53.sl.home (Scott Lurndal) - 2018-05-08 20:34 +0000
                Re: "C Is Not a Low-level Language" Steve Carroll <frelwizzen@gmail.com> - 2018-05-09 06:15 -0700
                Re: "C Is Not a Low-level Language" Wouter Verhelst <w@uter.be> - 2018-05-08 02:12 +0200
              Re: "C Is Not a Low-level Language" Dan Purgert <dan@djph.net> - 2018-05-04 10:42 +0000
              Re: "C Is Not a Low-level Language" David Brown <david.brown@hesbynett.no> - 2018-05-04 13:44 +0200
              Re: "C Is Not a Low-level Language" Wouter Verhelst <w@uter.be> - 2018-05-04 18:11 +0200
                Re: "C Is Not a Low-level Language" bartc <bc@freeuk.com> - 2018-05-04 17:47 +0100
                Re: "C Is Not a Low-level Language" Keith Thompson <kst-u@mib.org> - 2018-05-04 10:57 -0700
                Re: "C Is Not a Low-level Language" Wouter Verhelst <w@uter.be> - 2018-05-05 14:57 +0200
      Re: "C Is Not a Low-level Language" Ian Collins <ian-news@hotmail.com> - 2018-05-04 15:05 +1200
        Re: "C Is Not a Low-level Language" bartc <bc@freeuk.com> - 2018-05-04 10:01 +0100
          Re: "C Is Not a Low-level Language" David Brown <david.brown@hesbynett.no> - 2018-05-04 13:51 +0200
            Re: "C Is Not a Low-level Language" bartc <bc@freeuk.com> - 2018-05-04 13:14 +0100
              Re: "C Is Not a Low-level Language" David Brown <david.brown@hesbynett.no> - 2018-05-04 15:19 +0200
                Re: "C Is Not a Low-level Language" bartc <bc@freeuk.com> - 2018-05-04 14:38 +0100
                Re: "C Is Not a Low-level Language" Dan Purgert <dan@djph.net> - 2018-05-04 13:56 +0000
                Re: "C Is Not a Low-level Language" David Brown <david.brown@hesbynett.no> - 2018-05-04 16:24 +0200
                Re: "C Is Not a Low-level Language" already5chosen@yahoo.com - 2018-05-04 07:36 -0700
            Re: "C Is Not a Low-level Language" already5chosen@yahoo.com - 2018-05-04 06:01 -0700
          Re: "C Is Not a Low-level Language" scott@slp53.sl.home (Scott Lurndal) - 2018-05-04 14:57 +0000
          Re: "C Is Not a Low-level Language" Ian Collins <ian-news@hotmail.com> - 2018-05-05 06:49 +1200
            Re: "C Is Not a Low-level Language" already5chosen@yahoo.com - 2018-05-05 10:55 -0700
    Re: "C Is Not a Low-level Language" David Brown <david.brown@hesbynett.no> - 2018-05-04 10:10 +0200
      Re: "C Is Not a Low-level Language" already5chosen@yahoo.com - 2018-05-04 04:51 -0700
        Re: "C Is Not a Low-level Language" David Brown <david.brown@hesbynett.no> - 2018-05-04 14:37 +0200

csiph-web