x86: Rewrite ix86_find_max_used_stack_alignment

Revert changes in ix86_find_max_used_stack_alignment

7b39d7b3b84 Correct x86: Call ix86_access_stack_p only for larger alignment
c8a84242e4b Update x86: Call ix86_access_stack_p only for larger alignment
f511bf93f94 x86: Call ix86_access_stack_p only for larger alignment
a7cce1afee8 x86: Call ix86_access_stack_p only with symbolic constant load
b54533a2863 x86: Update stack alignment only if stack is used
b9ea3b2ef98 x86: Properly find the maximum stack slot alignment

Rewrite ix86_find_max_used_stack_alignment based on RTL points-to info
with find_base_term and static_reg_base_value.  If RTL points-to info
isn't available,

1. Use ix86_decompose_address to check for symbolic displacement.
2. Check MEM_EXPR for incoming parameter reference and non-local reference.

Update the maximum stack slot alignment from memory alignment only if its
base may point to stack or frame pointers.

The compile times of PR target/124165 and PR target/124684 test are
unchanged.

	PR target/109780
	PR target/109093
	PR target/123210
	PR target/124098
	PR target/124165
	PR target/124684
	PR target/124759
	PR target/124789
	* alias.cc (static_reg_base_value): Moved to rtl.h.
	(find_base_term): Remove static.
	* alias.h (find_base_term): New prototype.
	* function.cc (thread_prologue_and_epilogue_insns): Call
	init_alias_analysis and end_alias_analysis.
	* rtl.h (static_reg_base_value): Moved from alias.cc.
	* config/i386/i386.cc (stack_access_data): Removed.
	(ix86_find_all_reg_uses_1): Likewise.
	(ix86_find_all_reg_uses): Likewise.
	(ix86_access_stack_p): Likewise.
	(ix86_need_alignment_p_2): Likewise.
	(ix86_need_alignment_p_1): Likewise.
	(ix86_need_alignment_p): Likewise.
	(ix86_update_stack_alignment_2): New function.
	(ix86_update_stack_alignment_1): Likewise.
	(ix86_update_stack_alignment): Rewrite.
	(ix86_find_max_used_stack_alignment): If check_stack_slot is
	true, call ix86_update_stack_alignment on each INSN.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Co-Authored-By: Richard Biener <rguenther@suse.de>
5 files changed