This PR fixes a subtle bug in LoopTransformation. Previously we suppose all the functions in an MLIR module have a function body, so we can apply customizations on that. However, some of the MLIR functions may not have a body defined in the module, but have external definitions in C/C++. In that case, we need to skip those functions to avoid possible errors.
This PR fixes a subtle bug in LoopTransformation. Previously we suppose all the functions in an MLIR module have a function body, so we can apply customizations on that. However, some of the MLIR functions may not have a body defined in the module, but have external definitions in C/C++. In that case, we need to skip those functions to avoid possible errors.