Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
SRA: Force gimple operand in an additional corner case (PR 112822)
Hi, PR 112822 revealed a corner case in load_assign_lhs_subreplacements where it creates invalid gimple: an assignment where on the LHS there is a complex variable which however is not a gimple register because it has partial defs and on the right hand side there is a VIEW_CONVERT_EXPR. This patch invokes force_gimple_operand_gsi on such statements (like it already does when both sides of a generated assignment have partial definitions. I've made sure the patch passes bootstrap and testsuite on x86_64-linux, the bug reporter was kind enough to also check the same on an powerpc64le-linux (see bugzilla comment #8). The testcase has reasonable size but it is specific to ppc64le and its altivec vectors. My plan is to ask the bug reporter to massage it into a target specific testcase in bugzilla. Alternatively I can try to craft a testcase from scratch but that will take time. Despite the above, is the patch OK for master? Thanks, Martin gcc/ChangeLog: 2023-12-12 Martin Jambor <mjambor@suse.cz> PR tree-optimization/112822 * tree-sra.cc (load_assign_lhs_subreplacements): Invoke force_gimple_operand_gsi also when LHS has partial stores and RHS is a VIEW_CONVERT_EXPR.
- Loading branch information