diff options
| author | Vladimir N. Makarov <vmakarov@redhat.com> | 2026-02-09 09:04:05 -0500 |
|---|---|---|
| committer | Vladimir N. Makarov <vmakarov@redhat.com> | 2026-02-09 09:06:01 -0500 |
| commit | 1900dcf5521c9b2b734eb3b805eb23b066b988c1 (patch) | |
| tree | e92ef8aee0166d5156f88be761cbea9d50819379 /libjava/classpath/java | |
| parent | 2a1220a4a02033fe3c4a8cb6e27d1e0646bf2040 (diff) | |
| download | gcc-1900dcf5521c9b2b734eb3b805eb23b066b988c1.zip gcc-1900dcf5521c9b2b734eb3b805eb23b066b988c1.tar.gz gcc-1900dcf5521c9b2b734eb3b805eb23b066b988c1.tar.bz2 | |
[PR123796, LRA]: Propagate pointer flag from the equivalence target
Some targets can use pointer (frame related) flag to generate the
correct code and improve the code. Substitution of equivalence in an
insn and reloading it resulted in loosing pointer flag of the original
equivalence target in the reload register. The patch solves this
problem by using set of equivalences whose original targets have the
pointer flags and propagating this flag to equivalence copies and
reload registers.
gcc/ChangeLog:
PR rtl-optimization/123796
* lra-int.h (lra_pointer_equiv_set_add): Add prototype.
(lra_pointer_equiv_set_in, lra_finish_equiv): Ditto.
* lra.cc (lra_emit_move): Set up pointer flag of the destination
if necessary.
(lra): Call lra_finish_equiv.
* lra-constraints.cc: Include hash-set.h.
(pointer_equiv_set, lra_pointer_equiv_set_add): New.
(lra_pointer_equiv_set_in, lra_finish_equiv): New.
(get_equiv_with_elimination): Propagate pointer flag by adding to
pointer_equiv_set.
(process_addr_reg, curr_insn_transform): Ditto.
Diffstat (limited to 'libjava/classpath/java')
0 files changed, 0 insertions, 0 deletions
