This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: PR 23046. Folding predicates involving TYPE_MAX_VALUE/TYPE_MIN_VALUE(Ada RFC)
- From: Robert Dewar <dewar at adacore dot com>
- To: Laurent GUERBY <laurent at guerby dot net>
- Cc: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>, fw at deneb dot enyo dot de, gcc at gcc dot gnu dot org
- Date: Fri, 12 Aug 2005 13:53:40 -0400
- Subject: Re: PR 23046. Folding predicates involving TYPE_MAX_VALUE/TYPE_MIN_VALUE(Ada RFC)
- References: <10508121553.AA14309@vlsi1.ultra.nyu.edu> <1123868928.8058.437.camel@pc.site>
Laurent GUERBY wrote:
My understanding is that VRP (the compiler) is free to remove all other
language mandated range checks based on type min/max information but has
to keep the ones generated for 'Valid.
and any implicit validity checks, and for gnat, validity checks from
-gnatVa
An implementation model could be for the front-end to generate for each
family of scalar type T a function Base_Type_Internal_Valid (X, Min,
Max : in Base_Type_Of_T) return Boolean, generate a call to it at all
'Valid uses and then tell the compiler to never do any inlining at all
on such generated function.
sounds ver inefficient, remember that many left hand side array
references require implicit validity checks.
Since I think there are not that many scalar base types around, I guess
such functions could even be included in the Ada RTS and not generated
on the fly.
Of course performance wouldn't be as good as possible, but if
there's no other way...
Laurent