3 ms·
(Shameless plug:) It would be great if someone would leverage the pretty successful technique (i.e. found a couple hundred bugs in GCC and Clang) we recently de
by mehrdada 12y ago
(Shameless plug:) It would be great if someone would leverage the pretty successful technique (i.e. found a couple hundred bugs in GCC and Clang) we recently devised to detect miscompilations, Compiler Validation via Equivalence Modulo Inputs[1], to test ARM compilers.
In short, the idea is: profile a program running on a specific input; mutate the unexecuted code with respect to that input; compile and execute the mutated program and expect the output to be identical given the input.
[1]: http://mehrdadafshari.com/emi/paper.pdf http://mehrdadafshari.com/emi/paper.pdf
- jacquesm 12y agoThat is extremely clever.
- joevandyk 12y agoJust curious, how long did that paper take to write (including research time)?
- mehrdada 12y agoOver a year, I'd say. We'd run the test infrastructure for ~11 months on a couple machines when we submitted the paper. That's not indicative of much though, as the actual timelines for writing papers can be driven by conference deadlines more than the works themselves (when talking about granularity of six months to a year).
- teoryn 12y agoHave you or will you be releasing code for Orion?
- mehrdada 12y agoWe have not, so far. It's a bit difficult to package up as it mostly consists of a bunch of (potentially environment dependent) shell scripts with a transformation program. Shouldn't be too hard to replicate, as the total LOC is pretty low. Do you have a specific use for it? If so, let me know about it, as I might be able to try lobbying for packaging and releasing the code or work something out.
- teoryn 12y agoNah, I'd just like to take a look at it, but you might be able to get someone else to use it on ARM compilers if you release it.
- QuantumChaos 12y agoVery nice. One suggestion, I found the abstract and introduction difficult to understand, and only got the real point by page 3. I would add something clearer in the abstract and/or introduction, such as: "Static analysis is used to construct alternative versions of the program, that give identical outputs for a given subset of inputs I. The alternative programs are compiled and executed, and we test whether they do actually give the same outputs as the original program, on the input data I. By restricting to a subset I of inputs, a greater variety of alternatives can be produced, than if the alternatives had to be identical to the original program for all inputs."
- zsu 12y agoLink to our talk slides: http://www.cs.ucdavis.edu/~su/publications/emi-talk.pdf http://www.cs.ucdavis.edu/~su/publications/emi-talk.pdf