)]}'
{
  "commit": "f38355dab31bb466e9fdc900089dcd4abba536d6",
  "tree": "15ef91a6acdd8396ffad4874dd5ef257a66031b3",
  "parents": [
    "f66f384729b2a2f70fd01902f49b0b7a95be9f26"
  ],
  "author": {
    "name": "Prakalp Srivastava",
    "email": "prakalps@google.com",
    "time": "Tue May 12 15:06:44 2020 -0700"
  },
  "committer": {
    "name": "TensorFlower Gardener",
    "email": "gardener@tensorflow.org",
    "time": "Tue May 12 15:15:24 2020 -0700"
  },
  "message": "Add TF_AllTypesMatch trait in TensorFlow dialect.\n\nTF_AllTypesMatch trait takes a list of operands/results/attributes and verifies that they have cast compatible types i.e., a single runtime type for all the values. It handles Resource subtypes as well and assumes all variant subtypes are cast compatible.\n\nAllTypesMatch trait on TF dialect ops can be replaced with this trait which handles unranked/dynamic shapes and TF subtypes.\n\nPiperOrigin-RevId: 311210249\nChange-Id: I0d0dec247ff256c0b23aa9b5750912eaefc064f5\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9a29fa4f8a909582c41b4d965a452e882023f4db",
      "old_mode": 33188,
      "old_path": "tensorflow/compiler/mlir/tensorflow/ir/tf_generated_ops.td",
      "new_id": "bddf064f5c601ea09f64f9d2a28f545bfda7b047",
      "new_mode": 33188,
      "new_path": "tensorflow/compiler/mlir/tensorflow/ir/tf_generated_ops.td"
    },
    {
      "type": "modify",
      "old_id": "cb17341cefd45892b55433c28edc322ab2d6c01f",
      "old_mode": 33188,
      "old_path": "tensorflow/compiler/mlir/tensorflow/ir/tf_op_base.td",
      "new_id": "cd20cc79c17c0a85519c9e2671df2454ef0bba12",
      "new_mode": 33188,
      "new_path": "tensorflow/compiler/mlir/tensorflow/ir/tf_op_base.td"
    },
    {
      "type": "modify",
      "old_id": "85baff5e0d7477fefb08ec620e3f9bd98b31707f",
      "old_mode": 33188,
      "old_path": "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.cc",
      "new_id": "82ddc80875ae69c54d7de591468aadcefe150f2b",
      "new_mode": 33188,
      "new_path": "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.cc"
    },
    {
      "type": "modify",
      "old_id": "6c3cd7fac926f6b3faaaea6592f9ea08085caa15",
      "old_mode": 33188,
      "old_path": "tensorflow/compiler/mlir/tensorflow/ir/tf_types.cc",
      "new_id": "d312e5e409bc57e598c0aeda4910acb62ce9c337",
      "new_mode": 33188,
      "new_path": "tensorflow/compiler/mlir/tensorflow/ir/tf_types.cc"
    },
    {
      "type": "modify",
      "old_id": "d1e6a74a0c5ab890c53dcf3c43e5f94bb3647c9c",
      "old_mode": 33188,
      "old_path": "tensorflow/compiler/mlir/tensorflow/ir/tf_types.h",
      "new_id": "4c99aae4706b95d118510372276e920ead03205d",
      "new_mode": 33188,
      "new_path": "tensorflow/compiler/mlir/tensorflow/ir/tf_types.h"
    },
    {
      "type": "modify",
      "old_id": "118ce2e86451e640df4e0b7aeac751fad20aebba",
      "old_mode": 33188,
      "old_path": "tensorflow/compiler/mlir/tensorflow/tests/tf-ops.mlir",
      "new_id": "ffa287e0e5377283dd74cd8ec33c6fe2fad70334",
      "new_mode": 33188,
      "new_path": "tensorflow/compiler/mlir/tensorflow/tests/tf-ops.mlir"
    }
  ]
}
