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


Groups > comp.lang.c > #76214

Re: Objective C

From Ben Bacarisse <ben.usenet@bsb.me.uk>
Newsgroups comp.lang.c
Subject Re: Objective C
Date 2015-11-17 01:21 +0000
Organization A noiseless patient Spider
Message-ID <877flhpgjh.fsf@bsb.me.uk> (permalink)
References (9 earlier) <fff2ac89-757c-4d72-8307-9f48cd8327a6@googlegroups.com> <876111r86a.fsf@bsb.me.uk> <4e6ba271-859c-4d89-8603-2ea9fff9a1fc@googlegroups.com> <87k2phpoim.fsf@bsb.me.uk> <e43ebc47-dcd8-4424-94e5-837d3d40753d@googlegroups.com>

Show all headers | View raw


supercat@casperkitty.com writes:

> On Monday, November 16, 2015 at 4:29:03 PM UTC-6, Ben Bacarisse wrote:
>> supercat writes:
>> I don't see the problem, but "used" is rather vague.  To access the data
>> you need to know its effective type.  Are you saying that one bit of
>> code has to work "bind" -- entirely unaware of the effective type of the
>> data?  If so, I think your example is rather contrived.
>
> Targetting a 32-bit machine with linear address space, how would you write a
> function to fill a uint16_t[] with the value 12345 if speed was
> important?

I'd try:

  void fill(int16_t *data, size_t n, int16_t val)
  {
       if (n) {
            *data = val;
            size_t copy_sz = 1, remaining = n - 1;
            while (remaining >= copy_sz) {
                 memcpy(data + copy_sz, data, copy_sz * sizeof *data);
                 remaining -= copy_sz;
                 copy_sz *= 2;
            }
            memcpy(data + n - remaining, data, remaining * sizeof *data);
       }
  }

in the hope that memcpy is fast.

> My inclination would be to write a function which checks whether the
> received pointer is an odd multiple of 2, and if so store one value and
> decrement the count.  Then cast the pointer to some type to which one can
> write 32 bits, store count/2 32-bit values, and then if the count was odd,
> store one uint16_t at the end.  On many platforms, that would be about
> twice as fast as using uint16_t for everything, and on some it may be a lot
> faster than that.
>
> Some compilers might find the optimization if code was written using
> uint16_t* for everything, but a lot wouldn't.  If a compiler doesn't find
> that optimization and performance is important, how should the code be
> written?

There's no aliasing issue here.  What optimisation do you think a
"hyper-modern" compiler will do when you access the data in the obvious
way?  Is your concern just the "shall" in the standard, or have you
found a case where this actually matters in the absence of all aliasing?
Despite the "shall" most people take the footnote to be significant
("The intent of this list is to specify those circumstances in which an
object may or may not be aliased.").

I can't tell if your concern is with the words (I'm sure the text could
be improved in this area) or with the type-based aliasing optimisation
that modern compiler do.  You paint it as a practical problem (what
compilers do to your previously well-understood code) but do any of them
play up in this case?

<huge snip>

Can you confirm that agree with me about your other example at least?
Can I assume that when you cut an answer altogether it's because you
have no objection to it?

-- 
Ben.

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


Thread

Objective C Alla _ <modelling.data@gmail.com> - 2015-11-10 09:10 -0800
  Re: Objective C "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2015-11-10 09:16 -0800
  Re: Objective C Richard Heathfield <rjh@cpax.org.uk> - 2015-11-10 17:17 +0000
  Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-10 09:32 -0800
    Re: Objective C Mark Storkamp <mstorkamp@yahoo.com> - 2015-11-10 11:38 -0600
  Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-10 12:36 -0500
    Re: Objective C Alla _ <modelling.data@gmail.com> - 2015-11-10 11:15 -0800
      Re: Objective C Richard Heathfield <rjh@cpax.org.uk> - 2015-11-10 21:51 +0000
        Re: Objective C Alla _ <modelling.data@gmail.com> - 2015-11-10 23:13 -0800
      Re: Objective C supercat@casperkitty.com - 2015-11-13 16:01 -0800
        Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-14 01:07 +0000
          Re: Objective C supercat@casperkitty.com - 2015-11-14 06:26 -0800
            Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-14 22:22 +0000
              Re: Objective C supercat@casperkitty.com - 2015-11-14 15:46 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-15 01:47 +0000
                Re: Objective C BartC <bc@freeuk.com> - 2015-11-15 10:43 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-15 13:19 -0800
            Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-14 15:43 -0800
            Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-15 23:50 +0100
              Re: Objective C gazelle@shell.xmission.com (Kenny McCormack) - 2015-11-16 00:05 +0000
              Re: Objective C supercat@casperkitty.com - 2015-11-15 19:10 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-16 09:11 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-16 11:57 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-16 20:38 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-16 13:20 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-16 22:28 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-16 15:33 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-16 15:56 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-17 01:43 +0000
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-17 01:21 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-16 18:11 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-16 20:12 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-19 00:59 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-18 22:46 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-19 14:25 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-19 07:58 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-19 22:13 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-19 15:29 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-27 08:44 -0800
                Re: Objective C glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-17 01:26 +0000
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-16 21:48 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-16 20:27 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-17 13:58 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-17 12:28 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-18 13:00 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-18 12:31 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-18 16:43 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-18 15:57 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-19 19:09 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-19 19:05 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-20 15:00 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-20 15:30 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-22 17:11 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-22 15:53 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-23 13:51 -0600
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-24 12:00 +0000
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-17 10:26 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-17 06:20 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-17 16:41 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-17 12:08 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-17 16:27 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-17 14:55 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-18 13:59 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-18 13:06 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-24 14:24 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-24 15:11 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-26 17:02 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-27 07:26 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-18 21:56 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-22 02:17 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-22 07:16 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-26 17:11 -0600
                Re: Objective C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-11-22 19:09 +0000
                Re: Objective C Robert Wessel <robertwessel2@yahoo.com> - 2015-11-17 23:28 -0600
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-18 15:33 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-18 23:06 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-19 09:12 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-19 09:25 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-19 21:06 +0100
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-20 13:49 -0800
                Re: Objective C Robert Wessel <robertwessel2@yahoo.com> - 2015-11-21 05:01 -0600
                Re: Objective C Robert Wessel <robertwessel2@yahoo.com> - 2015-11-21 05:09 -0600
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-21 03:31 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-21 17:43 -0600
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-21 16:00 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-22 01:12 -0600
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-27 16:42 +0000
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-27 12:38 -0500
                Re: Objective C supercat@casperkitty.com - 2015-11-27 11:09 -0800
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-21 19:06 -0500
                Re: Objective C supercat@casperkitty.com - 2015-11-21 17:00 -0800
                Re: Objective C glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-22 14:44 +0000
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-22 01:55 -0600
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-22 00:03 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-22 10:18 +0000
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-23 03:21 -0800
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-22 10:53 -0500
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-22 20:28 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-22 18:52 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-23 11:58 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-23 15:24 -0800
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-23 09:46 -0500
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-23 08:13 -0800
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-23 12:04 -0500
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-23 11:52 -0600
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-23 16:05 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-24 09:09 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-12-08 08:48 -0800
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-12-08 10:40 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-12-09 12:34 -0800
                Re: Objective C supercat@casperkitty.com - 2015-12-08 10:50 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-12-09 12:42 -0800
                Re: Objective C supercat@casperkitty.com - 2015-12-09 13:38 -0800
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-12-10 19:54 +0000
                Re: Objective C David Thompson <dave.thompson2@verizon.net> - 2015-12-06 08:02 -0500
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-22 14:36 -0800
                Re: Objective C Robert Wessel <robertwessel2@yahoo.com> - 2015-11-23 00:41 -0600
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-23 07:39 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-22 14:23 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-17 10:24 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-18 15:40 +0100
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-20 16:02 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-21 15:53 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-21 08:58 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-22 22:14 +0100
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-23 03:39 -0800
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-23 13:24 +0000
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-26 09:39 -0800
                Re: Objective C Robert Wessel <robertwessel2@yahoo.com> - 2015-11-26 13:16 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-26 12:25 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-27 14:34 -0800
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-26 12:39 -0800
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-27 16:43 +0000
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-27 09:29 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-27 14:18 -0800
                Re: Objective C glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-23 22:35 +0000
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-23 17:40 -0500
                Re: Objective C glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-24 05:35 +0000
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-25 12:15 -0800
                Re: Objective C glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-25 22:49 +0000
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-27 16:44 +0000
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-27 14:03 -0800
                Re: Objective C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-11-29 09:29 +0000
                Re: Objective C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-11-22 19:01 +0000
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-23 07:31 -0800
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-23 07:43 -0800
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-23 08:17 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-23 17:34 +0100
                Re: Objective C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-11-23 22:02 +0000
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-24 10:12 +0100
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-27 08:39 -0800
          Re: Objective C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-11-14 18:24 +0000
        Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-14 12:23 -0800
          Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-14 12:36 -0800
            Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-14 13:13 -0800
              Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-14 14:04 -0800
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-14 14:15 -0800
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-14 14:29 -0800
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-14 15:39 -0800
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-14 16:37 -0800
                Re: Objective C Ian Collins <ian-news@hotmail.com> - 2015-11-15 13:46 +1300
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-15 02:06 +0000
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-15 03:25 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-15 12:56 +0000
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-15 07:53 -0600
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-15 07:19 -0600
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-15 13:29 +0000
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-15 10:56 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-15 14:35 -0800
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-15 16:52 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-15 19:49 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-16 11:02 +0000
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-16 10:36 -0800
                Re: Objective C David Thompson <dave.thompson2@verizon.net> - 2015-12-06 08:03 -0500
                Re: Objective C Melzzzzz <mel@zzzzz.com> - 2015-11-16 02:01 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-15 19:34 -0800
                Re: Objective C Chad <cdalten@gmail.com> - 2015-11-15 19:54 -0800
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-17 22:36 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-17 15:27 -0800
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-17 21:15 -0800
          Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-14 22:08 +0000
      Re: Objective C fir <profesor.fir@gmail.com> - 2015-11-27 14:36 -0800
  Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-10 19:03 +0100
    Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-10 10:50 -0800

csiph-web