cmd/compile: teach CSE that new objects are bespoke
runtime.newobject never returns the same thing twice,
so the resulting value will never be a common subexpression.
This helps when compiling large static data structures
that include pointers, such as maps and slices.
No clear performance impact on other code. (See below.)
For the code in issue #15112:
Before:
real 1m14.238s
user 1m18.985s
sys 0m0.787s
After:
real 0m47.172s
user 0m52.248s
sys 0m0.767s
For the code in issue #15235, size 10k:
Before:
real 0m44.916s
user 0m46.577s
sys 0m0.304s
After:
real 0m7.703s
user 0m9.041s
sys 0m0.316s
Still more work to be done, particularly for #15112.