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.
next prev parent 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