I found David Chisnall's article an interesting read. I had not actually considered that the chip guys were actually modifying design to accommodate C compilers. I had always thought it up to the compiler writers to take advantage of newer hardware design. Apparently the C language specifications make doing so difficult. Not that I am a hardware guy or a language designer: I had assumed speculative execution was performance enhancement for good chip design. Apparently speculative execution is to allow C compilers still think they are targeting a PDP-11.

I haven't really looked closely at go, rust, or any of the other languages that want to replace C as a systems programming language, but if they also demand speculative execution from the processor (e.g. they are assuming PDP-11 semantics) people should look elsewhere. Maybe something divergent - Erlang?, Ocaml?, Haskell? - that can better match current workloads with current processor design.