Re: what is defined, was for or against equality

gah4 <gah4@u.washington.edu>
Tue, 11 Jan 2022 14:18:56 -0800 (PST)

          From comp.compilers

Related articles
[6 earlier articles]
Re: what is defined, was for or against equality spibou@gmail.com (Spiros Bousbouras) (2022-01-09)
Re: what is defined, was for or against equality david.brown@hesbynett.no (David Brown) (2022-01-09)
Re: what is defined, was for or against equality tkoenig@netcologne.de (Thomas Koenig) (2022-01-10)
Re: what is defined, was for or against equality gah4@u.washington.edu (gah4) (2022-01-10)
Re: what is defined, was for or against equality david.brown@hesbynett.no (David Brown) (2022-01-11)
Re: what is defined, was for or against equality 480-992-1380@kylheku.com (Kaz Kylheku) (2022-01-11)
Re: what is defined, was for or against equality gah4@u.washington.edu (gah4) (2022-01-11)
Re: what is defined, was for or against equality tkoenig@netcologne.de (Thomas Koenig) (2022-01-12)
Re: what is defined, was for or against equality david.brown@hesbynett.no (David Brown) (2022-01-13)
Re: what is defined, was for or against equality tkoenig@netcologne.de (Thomas Koenig) (2022-01-13)
| List of all articles for this month |

From: gah4 <gah4@u.washington.edu>
Newsgroups: comp.compilers
Date: Tue, 11 Jan 2022 14:18:56 -0800 (PST)
Organization: Compilers Central
References: <17d70d74-1cf1-cc41-6b38-c0b307aeb35a@gkc.org.uk> 22-01-016 22-01-018 22-01-020 22-01-027 22-01-032 22-01-038 22-01-041 22-01-044 22-01-045
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="48005"; mail-complaints-to="abuse@iecc.com"
Keywords: standards, optimize
Posted-Date: 11 Jan 2022 20:08:03 EST
In-Reply-To: 22-01-045

On Tuesday, January 11, 2022 at 11:47:26 AM UTC-8, Kaz Kylheku wrote:


(big snip)


> This leaves a lot of room for Fortran and C to have entirely different
> defined/undefined behaviors.


> Even the front end for one single language can have a lot of switches
> affecting what is defined or not.


I suppose so. But more usual, the compiler works to the least
common denominator.


For one, C requires static variables, and especially external ones, to
initialize to zero, but Fortran doesn't. Fortran compilers that use C
compiler middle and back ends, tend to zero such variables.


I suspect that there are many more that I don't know about.
As long as the cost is small, and it satisfies both standards,
not much reason not to do it.


Fortran has stricter rules on aliasing than C. I don't actually know
about any effect on C programs, though, but it might be that
compilers do the same for C.


One that is not C or Fortran, but IEEE 754, is the effect of
relational operators with NaN. Comparisons with NaN,
except for "not equal", return false. That means that compilers
have to be careful optimizing such, and especially that
"greater than or equal" is not the logical complement of "less than".
(I haven't looked at how compilers handle this, or, even more,
how the hardware handles it.)


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.