This is an experimental patch which adds a -mexec-model= command-line flag. The default value is "command" which is no change from the current behavior. The other option is "reactor" which enables an experimental Reactor ABI.
By default, clang/LLVM don't do much differently for Reactors -- it just picks a different crt1.o and entry point name -- so I won't go into detail here. I'll open a PR for wasi-libc to add the libc side of this, and I'll describe the ABI in detail there, and I expect most of the discussion will happen there.
Maybe call this Crt1 so it doesn't looks so much like crtZero?