This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PR 23046. Folding predicates involving TYPE_MAX_VALUE/TYPE_MIN_VALUE(Ada RFC)


Giovanni Bajo wrote:
Robert Dewar <dewar@adacore.com> wrote:

Well, the point is that Gigi uses the fields TYPE_MIN/MAX_VALUE in a way
which is (now) incorrect, and this causes wrong optimizations. Of course,
this might be seen as an evolution (the exact semantics weren't as clear
before), but it does not change things.

i may not know enougn here. but i thought that these were fields associated with the type.

if so that's a wrong model for ada, where there are two situations:

a) constrycts which are allowed to assume in range

b) constructs which are not allowed to make this assumption

how do wedistinguish these cases. right now, the front end assumes
that the backend will essentially assume a) everywhere, and it
widens the type in cases b) using unchecked conversions. assuming
that uc's should be a barrier to range propagation.

You can either disable the optimization or fix Gigi. I'd also note that you already have SRA disabled, which is an optimization which would be *very* useful to Ada, because of other Gigi bugs.

really not clear to me what the fix is here




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]