From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeffrey A Law To: Paul Koning Cc: crux@Pool.Informatik.RWTH-Aachen.DE, egcs@cygnus.com Subject: Re: Some Haifa scheduler bugs Date: Wed, 03 Sep 1997 13:19:00 -0000 Message-id: <2843.873317910@hurl.cygnus.com> References: <9709031838.AA27038@kona.> X-SW-Source: 1997-09/msg00115.html In message < 9709031838.AA27038@kona. >you write: > If that switch indeed depends on not faulting references to zero, it > probably isn't worth having. Maybe, maybe not. That's one of the things I think needs to be evaluated for haifa. > Or if it's kept it needs a warning that in many OS's it will fail. Yes. Or more along the lines of "this option should only be used on systems which allow a dereference of a null pointer" -- explain when it will fail instead of saying "it'll fail on many OS's". > The reason is that faulting on references > to zero is universally considered a Good Thing and many OS's go out of > their way to provide that feature. Actually, we've come full circle over the years on this issue. First it was good, because "all the (unix) world was a pdp/vax" and you were allowed to do this on those systems. Then later as people decided depending on such behavior was a bad programming practice OS folks started forcing null pointer dereferences to cause faults and people fixed their code to avoid dereferencing null pointers. Now we have code which explicitly avoids dereferencing null pointers, but some OSs (hpux, aix, solaris?) have options to allow null pointer dereferences to allow the scheduler to perform more speculative code motions. I'm undecided either way; if there's a significant win on these systems, then I'm tempted to leave the option. If there's no significant benefit, then I'm tempted to remove the option (both to simplify the compiler/scheduler and to avoid people unknowingly using the option, then sending bugs 'cuz their system didn't support null pointer dereferences). Jeff