)]}'
{
  "commit": "e754b70fe5470b975d31887fa5647f1c92d6522d",
  "tree": "cc60b2dcf267e65646210d6f4d186d1f9629479a",
  "parents": [
    "172dc0ed63274f24653f830754a6d49e37bfc3fe"
  ],
  "author": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Tue Apr 07 23:16:38 2026 +0800"
  },
  "committer": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Mon Jul 06 16:11:45 2026 +0800"
  },
  "message": "x86: Rewrite ix86_find_max_used_stack_alignment\n\nRevert changes in ix86_find_max_used_stack_alignment\n\n7b39d7b3b84 Correct x86: Call ix86_access_stack_p only for larger alignment\nc8a84242e4b Update x86: Call ix86_access_stack_p only for larger alignment\nf511bf93f94 x86: Call ix86_access_stack_p only for larger alignment\na7cce1afee8 x86: Call ix86_access_stack_p only with symbolic constant load\nb54533a2863 x86: Update stack alignment only if stack is used\nb9ea3b2ef98 x86: Properly find the maximum stack slot alignment\n\nRewrite ix86_find_max_used_stack_alignment based on RTL points-to info\nwith find_base_term and static_reg_base_value.  If RTL points-to info\nisn\u0027t available,\n\n1. Use ix86_decompose_address to check for symbolic displacement.\n2. Check MEM_EXPR for incoming parameter reference and non-local reference.\n\nUpdate the maximum stack slot alignment from memory alignment only if its\nbase may point to stack or frame pointers.\n\nThe compile times of PR target/124165 and PR target/124684 test are\nunchanged.\n\n\tPR target/109780\n\tPR target/109093\n\tPR target/123210\n\tPR target/124098\n\tPR target/124165\n\tPR target/124684\n\tPR target/124759\n\tPR target/124789\n\t* alias.cc (static_reg_base_value): Moved to rtl.h.\n\t(find_base_term): Remove static.\n\t* alias.h (find_base_term): New prototype.\n\t* function.cc (thread_prologue_and_epilogue_insns): Call\n\tinit_alias_analysis and end_alias_analysis.\n\t* rtl.h (static_reg_base_value): Moved from alias.cc.\n\t* config/i386/i386.cc (stack_access_data): Removed.\n\t(ix86_find_all_reg_uses_1): Likewise.\n\t(ix86_find_all_reg_uses): Likewise.\n\t(ix86_access_stack_p): Likewise.\n\t(ix86_need_alignment_p_2): Likewise.\n\t(ix86_need_alignment_p_1): Likewise.\n\t(ix86_need_alignment_p): Likewise.\n\t(ix86_update_stack_alignment_2): New function.\n\t(ix86_update_stack_alignment_1): Likewise.\n\t(ix86_update_stack_alignment): Rewrite.\n\t(ix86_find_max_used_stack_alignment): If check_stack_slot is\n\ttrue, call ix86_update_stack_alignment on each INSN.\n\nSigned-off-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\nCo-Authored-By: Richard Biener \u003crguenther@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "92c9d8bc3608a58117ec2e801f1e07f5a71e0c2f",
      "old_mode": 33188,
      "old_path": "gcc/alias.cc",
      "new_id": "22e52454920a05fbee3386573adc11749c6c2d2b",
      "new_mode": 33188,
      "new_path": "gcc/alias.cc"
    },
    {
      "type": "modify",
      "old_id": "4bd49bb0fa461c3d6d263e75e46efaefdd29bd3e",
      "old_mode": 33188,
      "old_path": "gcc/alias.h",
      "new_id": "1e43111f58070a5b5068cb2a77bf703ef9ccbc49",
      "new_mode": 33188,
      "new_path": "gcc/alias.h"
    },
    {
      "type": "modify",
      "old_id": "c7ac2cc811b40710f4171527fcb13e34fad566c9",
      "old_mode": 33188,
      "old_path": "gcc/config/i386/i386.cc",
      "new_id": "01cab02f0d37c66d1446737a38d29f1a3224644c",
      "new_mode": 33188,
      "new_path": "gcc/config/i386/i386.cc"
    },
    {
      "type": "modify",
      "old_id": "5ade058d724c306565789e3f3526cb8d4faf7824",
      "old_mode": 33188,
      "old_path": "gcc/function.cc",
      "new_id": "2f3c6355e5ee8bf48ae795cbd95e3ff2d04dc744",
      "new_mode": 33188,
      "new_path": "gcc/function.cc"
    },
    {
      "type": "modify",
      "old_id": "747d917ecf2ed9677fbe7b163cf2b20e9258f201",
      "old_mode": 33188,
      "old_path": "gcc/rtl.h",
      "new_id": "01b4c6fd957a9813303500ec4778c00cf9bdea30",
      "new_mode": 33188,
      "new_path": "gcc/rtl.h"
    }
  ]
}
