)]}'
{
  "commit": "29fb8f8eef24ea3c80d3c2545a07e798e7f8e199",
  "tree": "6a218e7c38b30731b462a7c56ef5d2263ccf2c22",
  "parents": [
    "3fd42ae042e0a97de8af43061b739f3b492629a1"
  ],
  "author": {
    "name": "Antonio Maiorano",
    "email": "amaiorano@google.com",
    "time": "Mon Oct 17 16:11:02 2022 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Oct 17 16:11:02 2022 +0000"
  },
  "message": "tint: optimize compile time for const_eval_*_test files\n\nThe reason for slow compile times is because the very large variants of\nbuilder::Value\u003cT\u003es combined with the many std::visits over these\nvariants result in many combinatorial instantiations of the visit\ncallbacks.\n\nTo address this, I added a polymorphic base class ValueBase to Value\u003cT\u003e,\nand replaced most of the std::visit-based compile time code with runtime\nvirtual calls. For the two heaviest users of std::visit over the large\nvariants, compiles times dropped more than half (clang-10, debug):\n\nconst_eval_binary_op_test.cc: 19.079s to 7.736s\nconst_eval_unary_op_test.cc: 10.021s to 4.789s\n\nBug: tint:1711\nChange-Id: Iba05e6ae1004ef0814250e2a8ea50aa2b26b85f2\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/105782\nReviewed-by: Ben Clayton \u003cbclayton@google.com\u003e\nKokoro: Kokoro \u003cnoreply+kokoro@google.com\u003e\nCommit-Queue: Antonio Maiorano \u003camaiorano@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "18b28da2a2ce793b116c046984a23e9651ab6166",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/const_eval_binary_op_test.cc",
      "new_id": "5f43499bf553897a436bc9002a9ef4ac0d4be13b",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/const_eval_binary_op_test.cc"
    },
    {
      "type": "modify",
      "old_id": "3936fba24225faafbfc04e0dc0faeb7257a0854d",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/const_eval_builtin_test.cc",
      "new_id": "86223ba3d8d4f517e1d7e94ccfbfeba167399057",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/const_eval_builtin_test.cc"
    },
    {
      "type": "modify",
      "old_id": "35657eeaa5bfc0cfdd769492668f9b5babcee9b5",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/const_eval_conversion_test.cc",
      "new_id": "7e6a6fc1a1deaf9c87581aaed243e803e876f5e9",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/const_eval_conversion_test.cc"
    },
    {
      "type": "modify",
      "old_id": "38405401f2a5332c9a19c1f5848cf21af3512484",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/const_eval_test.h",
      "new_id": "2761daff0caadd572cf40cc449da95da74038382",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/const_eval_test.h"
    },
    {
      "type": "modify",
      "old_id": "80b8caa6fa006d4a9a2495c40be8b6d780bd48c5",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/const_eval_unary_op_test.cc",
      "new_id": "fced490907c0ac87a9ce1b8041282ccc765163aa",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/const_eval_unary_op_test.cc"
    },
    {
      "type": "modify",
      "old_id": "923f3ff461c76b52b95c74b9bed36257d97e06e8",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/resolver_test_helper.h",
      "new_id": "57fe14a50bb2a99815c34c836c3a31fe41ea8aba",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/resolver_test_helper.h"
    }
  ]
}
