https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92843

--- Comment #8 from jules at gcc dot gnu.org ---
(In reply to Thomas Schwinge from comment #7)
> We first need to establish a stable baseline, with test cases, and then (or,
> as part of that) merge the several independent pieces of the big "OpenACC
> reference count overhaul".

OK -- I think I misunderstood your strategy here, which is to avoid committing
that patch in one go. IMO (:-)) it's a clear improvement overall, particularly
with the consistency checking. Test coverage could probably be better -- but,
I'm sure many of the new tests introduced by the manual deep-copy patch would
not operate correctly without the refcounting fixes underneath (and the two
patches were all merged together to start with, of course).

> > The existing code was rewritten for a
> > reason -- that being, I hit various problems with it (albeit long since
> > forgotten) that interfered with the manual deep-copy implementation.
> 
> So you'll have to dig out your notes, and/or we'll have to figure out any
> rationale again, now.  Patches that change such fundamental things in
> libgomp we cannot just commit on the basis that once they made sense to
> somebody.  They have to come with rationale, and test cases.

That's holding the new code to a rather higher standard than some of the
existing code! But, that's OK, I suppose. I will see if there are any notes I
made at the time that might be helpful.

> > We have
> > refcount self-checking code for the overhauled code.
> 
> ... which surely can be adapted.

If you do that adaptation now, you might get a better idea of the state of the
current refcounting implementation! Not sure if that'll be helpful.

> And, per my understanding, this is only checking libgomp internal
> consistency, but not the semantics exposed to users via OpenACC
> directives/API calls etc., which in part you're changing of your patch
> (without test cases).  This, again, I've spent the best part of the past
> weeks understanding, writing test cases for, filing GCC PRs, resolving them
> one by one, independently, incrementally, comprehensibly.

No, not just internal consistency. At least with the deep copy bits, there was
user-visible breakage with the existing code (again, IIRC).

> > We can address corner-case bug fixes as follow-ons once the main overhaul
> > patch is committed.
> 
> Further bug fixes, yes, but we have to make some reasonable effort to not
> introduce new bugs with the big "OpenACC reference count overhaul" changes.

That's what the testsuite is for, I guess -- the burden of proof for getting
patches approved is lack of regressions in existing tests, generally. Yes there
could be more, but this is a real fundamental thing that most of the existing
OpenACC tests will touch in some way, so it's not *that* bad.

Reply via email to