DLVM: A modern compiler framework for neural network DSLs