compiler: delete lowered constant strings
authorIan Lance Taylor <iant@golang.org>
Tue, 4 Aug 2020 01:23:39 +0000 (18:23 -0700)
committerIan Lance Taylor <iant@golang.org>
Tue, 4 Aug 2020 17:21:37 +0000 (10:21 -0700)
commitacf83db025cfd4a67724838e9dbd19813f4f5960
tree12cde63bf9a622dfefb2888799f6c411a960f8ae
parent1790d13dc8ffb3b454f2ca5e4a6d6d482f7fa985
compiler: delete lowered constant strings

If we lower a constant string operation in a Binary_expression,
delete the strings.  This is safe because constant strings are always
newly allocated.

This is a hack to use much less memory when compiling the new
time/tzdata package, which has a file that contains the sum of over
13,000 constant strings.  We don't do this for numeric expressions
because that could cause us to delete an Iota_expression.

We should have a cleaner approach to memory usage some day.

Fixes PR go/96450
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/expressions.cc