Optimising Stencil Code on FPGAs by Trading Data Movement for Compute using Compiler Rewrite Rules | Synapse