Summary: | Wrong call_used_regs used in aggregate_value_p | ||
---|---|---|---|
Product: | gcc | Reporter: | H.J. Lu <hjl.tools> |
Component: | target | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | hubicka |
Priority: | P3 | ||
Version: | 6.0 | ||
Target Milestone: | 5.3 | ||
Host: | Target: | x86 | |
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | ||
Bug Depends on: | |||
Bug Blocks: | 67552 |
Description
H.J. Lu
2015-10-05 13:04:07 UTC
Should targetm.expand_to_rtl_hook be called from cgraph_node::expand instead? Author: hjl Date: Wed Oct 7 10:30:12 2015 New Revision: 228565 URL: https://gcc.gnu.org/viewcvs?rev=228565&root=gcc&view=rev Log: Merge ix86_maybe_switch_abi with ix86_set_current_function ix86_maybe_switch_abi is called to late during RTL expansion and we use the stale information from compilation of the previous function. aggregate_value_p uses call_used_regs. aggregate_value_p is used by IPA and return value optimization, which are called before ix86_maybe_switch_abi is called. This patch merges ix86_maybe_switch_abi with ix86_set_current_function. PR target/67850 * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ... (ix86_set_current_function): This. (TARGET_EXPAND_TO_RTL_HOOK): Removed. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c Author: hjl Date: Mon Oct 12 12:26:09 2015 New Revision: 228711 URL: https://gcc.gnu.org/viewcvs?rev=228711&root=gcc&view=rev Log: Merge ix86_maybe_switch_abi with ix86_set_current_function ix86_maybe_switch_abi is called to late during RTL expansion and we use the stale information from compilation of the previous function. aggregate_value_p uses call_used_regs. aggregate_value_p is used by IPA and return value optimization, which are called before ix86_maybe_switch_abi is called. This patch merges ix86_maybe_switch_abi with ix86_set_current_function. Backport from mainline: PR target/67850 * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ... (ix86_set_current_function): This. (TARGET_EXPAND_TO_RTL_HOOK): Removed. Modified: branches/gcc-5-branch/gcc/ChangeLog branches/gcc-5-branch/gcc/config/i386/i386.c Fixed for 5.3 and 6. No plan to backpor it to 4.9. |