cmd/compile: improve undo of poset

prove uses the poset datastructure in a DFS walk, and always undoes
it back to its pristine status. Before this CL, poset's undo of
a new node creation didn't fully deallocate the node, which means
that at the end of prove there was still some allocated memory pending.

This was not a problem until now because the posets used by prove
were discarded after each function, but it would prevent recycling
them between functions (as a followup CL does).

Change-Id: I1c1c99c03fe19ad765395a43958cb256f686765a
Reviewed-on: https://go-review.googlesource.com/112976
Run-TryBot: Giovanni Bajo <rasky@develer.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
Giovanni Bajo 2018-05-12 22:13:44 +02:00 committed by David Chase
parent 7bac2a95f6
commit 67656ba71b
3 changed files with 20 additions and 10 deletions

View file

@ -626,7 +626,6 @@ func TestPosetConst(t *testing.T) {
func TestPosetNonEqual(t *testing.T) {
testPosetOps(t, false, []posetTestOp{
{Checkpoint, 0, 0},
{Equal_Fail, 10, 20},
{NonEqual_Fail, 10, 20},