comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: 64-bit unsigned integer?
Date: Tue, 27 Feb 2018 08:40:13 -0800 (PST)
Date: 2018-02-27T08:40:13-08:00	[thread overview]
Message-ID: <f5099b4b-d4cb-4166-9017-5b20dd374aa2@googlegroups.com> (raw)
In-Reply-To: <001e93f1-b645-4312-8a29-caca3860b560@googlegroups.com>

If anyone really needed the processor-overflow-bit-based implementation for speed efficiency, then the presence of Dmitry's IF comparisons for the powers-of-2 corresponding to the unconstrained integer type could conceivably be checked easily as a new local optimization peephole (i.e., use the processor's check-the-overflow-bit test-instruction instead of using the processor's subtraction-based comparison instructions).

If open-source Ada compiler, you could add it yourself (or turn on for Ada that optimization that might exist for C already), and submit it for merge into the repository.  If closed-source Ada compiler, you could pay your vendor to add it.  Either way it is more of an optimizer issue than a language-definition issue.  Either open-source or closer-source way, if you want it badly enough (e.g., because you have hard performance-analysis data to show management), you can expend some money and/or time and make it happen yourself using Dmitry's approach plus overflow-bit-test optimization to make Dmitry's software if statements be a few differences in generated instructions, analogous to multiplying/dividing by powers of 2 being instead generated as shift left/right instructions.  Leveraging the libraries-are-preferred-henceforth view, new optimizer enhancements go hand-in-hand henceforth with each new oft-utilized high-performance-required snippet of source code in a library.  And thus the effort & your audience focus shifts from 1) language architects on the very front end to 2) compiler-backend developers.


  reply	other threads:[~2018-02-27 16:40 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-25 12:30 64-bit unsigned integer? MM
2018-02-25 12:41 ` Dmitry A. Kazakov
2018-02-25 12:54   ` MM
2018-02-25 13:23     ` Dmitry A. Kazakov
2018-02-25 13:59       ` MM
2018-02-25 14:20         ` Dmitry A. Kazakov
2018-02-25 15:34           ` MM
2018-02-25 16:35     ` Jeffrey R. Carter
2018-02-25 16:36 ` Anh Vo
2018-02-25 17:31   ` MM
2018-02-26 23:19     ` Randy Brukardt
2018-02-26 23:33       ` MM
2018-02-28 10:17       ` Paul Rubin
2018-02-28 10:39         ` J-P. Rosen
2018-02-28 10:59           ` Dmitry A. Kazakov
2018-02-28 23:20         ` Randy Brukardt
2018-03-01  5:47           ` Paul Rubin
2018-03-01  8:16             ` Niklas Holsti
2018-03-01  8:35               ` Simon Wright
2018-03-01  8:47               ` Dmitry A. Kazakov
2018-03-01 18:15                 ` Dan'l Miller
2018-03-01 19:10                   ` Dmitry A. Kazakov
2018-03-01 19:22                     ` Dan'l Miller
2018-03-01 19:59                       ` Dmitry A. Kazakov
2018-03-01 20:32                         ` Dan'l Miller
2018-03-01 21:15                           ` Dmitry A. Kazakov
2018-03-01 22:23                             ` Randy Brukardt
2018-03-01 23:50                             ` Robert Eachus
2018-03-01 20:06                     ` Niklas Holsti
2018-03-01 22:04               ` Randy Brukardt
2018-02-26  6:45 ` Robert Eachus
2018-02-27 16:40   ` Dan'l Miller [this message]
2018-02-27 17:18     ` J-P. Rosen
2018-02-27 18:17       ` Dan'l Miller
2018-02-28  3:03         ` Robert Eachus
2018-02-28  6:41         ` J-P. Rosen
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox