News for hackers. Stuff that matters.
Re:Large Language Models for Compiler Optimization by TheLoafOfBread on Sunday September 17, 2023 @06:28PM (#37549930)
Also bugs from this approach are going to be funny - program compiled with compiler version X will work as expected and same program compiled with version X+1 will start crashing because AI under some circumstances decided that dereference of a specific pointer was unnecessary, so it won't drop it into the assembly.

Good luck finding such a bug, because you will be looking on correct code, but computer will be executing invalid output.

Re:Large Language Models for Compiler Optimization by a_wild_dandan on Sunday September 17, 2023 @06:44PM (#37550064)
Damn. These things imitate humans too well. Guess we’ll need a giant test suite to feel stable. Sounds like work. Let’s train a GAN for that and put our feet up. Turtles all the way down, my dudes.
Re:Large Language Models for Compiler Optimization by boomanaiden154 on Sunday September 17, 2023 @07:15PM (#37550305)
The focus of this work is finding the optimal ordering of optimization passes to perform, not doing neural compilation. This guarantees correct code, assuming the underlying transformation passes are correct.

Most work in ML for compilers focuses on replacing heuristics and phase ordering precisely because they don't impact correctness. There is some work being done on neural compilation [1], but I'm not sure that's going to be a viable approach anytime soon.

1. https://ieeexplore.ieee.org/document/9926313

Re:Large Language Models for Compiler Optimization by wyldfire on Sunday September 17, 2023 @08:34PM (#37550841)
> phase ordering precisely because they don't impact correctness.

lol let's say they're less likely to impact correctness than an arbitrary new optimization.

Re:Large Language Models for Compiler Optimization by ncruces on Monday September 18, 2023 @04:20AM (#37553625)
If you find a bug, it's in the optimization passes (that don't reorder and should, if you decide to do this).

At this point this is like (usefully) fuzzing your optimizer, which long term is going to be great for correctness.