Hi Segher, Working through my backlog of Darwin patches … this one is needed on trunk and 6.x (although it’s marked as rtl-optimization, it actually prevents bootstrap on the branch with Java enabled). Therefore, if possible, I’d like to get this in before the 6.3 freeze.
---- The Darwin pic base loads (and reloads for non-local-gotos) are not validly copied (since the pic base label would be duplicated). Thus, this patch marks them accordingly. OK for trunk? OK for GCC-6 branch? thanks, Iain gcc/ 2016-12-09 Iain Sandoe <i...@codesourcery.com> PR rtl-optimization/71496 * config/rs6000/darwin.md (load_macho_picbase_si): Mark as non- copyable. (load_macho_picbase_di, reload_macho_picbase_si, reload_macho_picbase_di): Likewise. --- gcc/config/rs6000/darwin.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gcc/config/rs6000/darwin.md b/gcc/config/rs6000/darwin.md index 57ce30e..bae8b2b 100644 --- a/gcc/config/rs6000/darwin.md +++ b/gcc/config/rs6000/darwin.md @@ -265,6 +265,7 @@ You should have received a copy of the GNU General Public License return "bcl 20,31,%0\\n%0:"; } [(set_attr "type" "branch") + (set_attr "cannot_copy" "yes") (set_attr "length" "4")]) (define_insn "load_macho_picbase_di" @@ -281,6 +282,7 @@ You should have received a copy of the GNU General Public License return "bcl 20,31,%0\\n%0:"; } [(set_attr "type" "branch") + (set_attr "cannot_copy" "yes") (set_attr "length" "4")]) (define_expand "macho_correct_pic" @@ -416,6 +418,7 @@ You should have received a copy of the GNU General Public License return "bcl 20,31,%0\\n%0:"; } [(set_attr "type" "branch") + (set_attr "cannot_copy" "yes") (set_attr "length" "4")]) (define_insn "reload_macho_picbase_di" @@ -439,6 +442,7 @@ You should have received a copy of the GNU General Public License return "bcl 20,31,%0\\n%0:"; } [(set_attr "type" "branch") + (set_attr "cannot_copy" "yes") (set_attr "length" "4")]) ;; We need to restore the PIC register, at the site of nonlocal label. -- 2.8.1