|
|
|
|
|
by DannyBee
4076 days ago
|
|
Your argument is essentially: The barriers you insert, even if they block optimization, will never block optimization in a way that changes behavior. This is demonstrably false, since you are, among other things, taking the address of a variable, which means escape analysis won't do things to it, etc. You can argue "The behavior it changes doesn't matter". As i've shown,
1. it does in a threaded environment (like, you know, go)
2. It depends on whether your code is buggy or not. IT's certainly true that it never, on it's own, causes bugs.
But as i've shown, it can make bugs appear to come or go. If you don't think that will ever happen, i don't know what to tell you, other than "It has happened in literally every compiler that has ever had barriers like this". Without any evidence why Go should be different here, i don't see why go will be different here. |
|