Thanks for pointing me at HLSLTools, not seen that before and it is pretty cool.
Please don't underestimate the task of going from DX9 to DX11.
One of the massive problems I had to deal with is #includes. The DX9 shader compiler is very good at dead code optomisation, so if you have a whole bunch of uniforms and samplers in an included file, no problem. I found the metal shader compiler does dead code optomisation very late , which caused me all sorts of problems.
Also the online metal compiler is sandboxed, it has no access to the file system, so you cannot have #includes in metal shaders that are compiled online. You can if you pre-compile them, just not in game.