Spintronics-based Architectures for non-von Neumann Computing