)]}'
{
  "commit": "c1ac63e9732a54ef8349fe0bdbb3fa47bd0847c2",
  "tree": "371dd9bf1bee7ae6849c7f0b555be79b2cf9e698",
  "parents": [
    "a5c79283f79b5f03296fc2037f32d935aaec806f"
  ],
  "author": {
    "name": "Michael Pratt",
    "email": "mpratt@google.com",
    "time": "Tue Mar 28 12:45:17 2023 -0400"
  },
  "committer": {
    "name": "Michael Pratt",
    "email": "mpratt@google.com",
    "time": "Mon Apr 10 21:06:54 2023 +0000"
  },
  "message": "cmd/compile: don\u0027t inline hot calls into big functions\n\nStandard inlining has a reduced maximum cost of callees (20 instead of\n80) when inlining into a \"big\" function, to limit how much bigger we\nwill make an already big function.\n\nWhen adding PGO hot call budget increases, we inadvertently bypassed\nthis \"big\" function restriction, allowing hot calls of up to\ninlineHotMaxBudget, even into big functions.\n\nAdd the restriction back, even for hot calls. If a function is already\nvery large, we probably shouldn\u0027t inline even more.\n\nA very important note here is that function \"big\"-ness is computed prior\nto any inlining. One potential problem with PGO is that many hot calls\ninline into an initially-small function and ultimately make it very\nlarge. This CL does nothing to address that case, which would require\nrecomputing size after inlining.\n\nThis CL has no impact on sweet PGO benchmarks. I specifically dug into\ntile38, which contained 0 hot big functions. Other benchmarks are\nprobably similar.\n\nChange-Id: I3b6304eaf7738a219359d4b8bb121d68babfea8b\nReviewed-on: https://go-review.googlesource.com/c/go/+/482157\nTryBot-Result: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\nReviewed-by: Matthew Dempsky \u003cmdempsky@google.com\u003e\nRun-TryBot: Michael Pratt \u003cmpratt@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3e4498eff5309be93213efd20bad7528df746ab0",
      "old_mode": 33188,
      "old_path": "src/cmd/compile/internal/inline/inl.go",
      "new_id": "9a2df95718f2a49ca5ba10c3f7683aff5c7e4b89",
      "new_mode": 33188,
      "new_path": "src/cmd/compile/internal/inline/inl.go"
    }
  ]
}
