[PATCH] ieee754/dbl-64: Reduce the scope of temporary storage variables
Joseph Myers
joseph@codesourcery.com
Mon Nov 11 22:53:00 GMT 2019
On Mon, 11 Nov 2019, Vineet Gupta wrote:
> On 11/11/19 2:33 PM, Joseph Myers wrote:
> > On Mon, 11 Nov 2019, Vineet Gupta wrote:
> >
> >> Functionally it should not result in code gen changes and if at all
> >> those would be better since the scope of those temporaries is greatly
> >> reduced now
> > This feels like the sort of thing where "should not result in code gen
> > changes" should be tested by running build-many-glibcs.py --strip with
> > unmodified glibc sources to build a full set of stripped glibc binaries,
> > saving those binaries and then running build-many-glibcs.py --strip again
> > and comparing the two sets of shared libraries (something I did a lot of
> > when reworking how libm function aliases were defined; static libraries
> > are expected to change because of timestamps, but shared library binaries
> > can be usefully compared like this). If the two sets of stripped binaries
> > are indeed identical, that is strong evidence that the patch is safe;
> > otherwise, review of the patch will require more detailed inspection of
> > the types of the arguments to these macros, and the uses of the temporary
> > variables, at every call site, to make sure that semantics aren't being
> > changed.
>
> Ok Understand. What arch(es) / build options would you want this tested for in
> aforementioned way to get a reasonable confidence ?
The suggestion is two full "build-many-glibcs.py --strip <dir> glibcs"
runs (one before and one after the change, and comparing the resulting
binaries), covering all architectures, if you have suitable fast hardware
for doing such testing (it's quite time-consuming; a single run takes
about 3 hours wall-clock time on a 16-core / 32-hardware-thread
Haswell-based Xeon, for example). (A single "compilers" run can be used
to build the compilers used for both those "glibcs" runs.)
> > (In any case, please specify when submitting a patch how it was tested.)
>
> I've currently tested this with build-many-glibcs.py for ARC port only with and
> w/o hard float support being worked on.
If for whatever reason there *are* differences in the stripped glibc
shared libraries, at least one full run of the glibc testsuite (including
execution tests) for some architecture will be needed as well to verify
that the generated code works correctly in at least one configuration.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list