Compiler Explorer
gcc.godbolt.org
gcc.godbolt.org
https://rust.godbolt.org/ https://go.godbolt.org/ https://d.godbolt.org/
https://swiftlang.ng.bluemix.net/?cm_mmc=developerWorks-_-dW...
They are investing into it.
https://developer.ibm.com/swift/
I am expecting a Swift EE any day. :)
https://github.com/alblue/SILInspector
You can switch between the various stages of the Swift compiler including assembly.
I did a talk for Swift London recently which was recoded: should be at https://m.youtube.com/channel/UC5ypB3f_gdQm2qJ4gmjYkJg at some point.
I extended Godbolt's Gcc Explorer adding other toolchains (Motorola 68000 and MIPS, built with crosstools-ng) beside the standard AMD64 one, and released as a Docker image.
I did this because... I had to read and write M68k code for a class, and having GCC generate code for me (with -O0 and the colourisation feature) was the easiest way to get some code to read, besides the very basic examples)
In case you have to work with MIPS or M68K, you can find my "version" here: https://hub.docker.com/r/esantoro/acso-explorer/
IIRC, the bundled gcc is version 4.9.something
I've used it for investigating how some inner loops get pipelined across AVR, ARM+Thumb, ARM32, ARM64, PowerPC, x86-32, and x86-64 processors.
LLVM used to have an online compiler page but IIRC they took it down due to security concerns.
Of course I have a couple of suggestions ;) :
What this needs is synchronized scrolling ala http://stackoverflow.com/questions/21410675/getting-the-orig...
And would be nice if it can show intermediate steps (the AST, the IR) in parallel or show different optimisation levels beside each other too.
13 : error: 'static_cast' undeclared (first use in this function)
input = static_cast<int*>(__builtin_assume_aligned(input, 64));
^In gdb you can get this with disassemble /m, or with objdump -S.
Helped me a lot in the past.
There are some assembly opcode reference manuals on the internet but they're of varying quality and typically cover only one instruction set per site.
It's an assembly class that's impossible since you aren't taught, so they can write their labs in C and decompile it to make it easy.
a) Those who know someone who took it. b) Those who have a chegg account.