Successfully identified regression in *gcc* in CI configuration 
tcwg_bmk_llvm_tk1/llvm-release-arm-spec2k6-O2.  So far, this commit has 
regressed CI configurations:
 - tcwg_bmk_llvm_tk1/llvm-release-arm-spec2k6-O2

Culprit:
<cut>
commit 4fc1d2629ab373945a30031c1b49bdfa4e9f5f12
Author: Iain Sandoe <i...@sandoe.co.uk>
Date:   Thu Sep 26 18:50:55 2019 +0000

    [Darwin, PPC, Mode Iterators 2/n] Eliminate picbase expanders.
    
    We can use the mode iterators directly with an @pattern to avoid the
    need for an expander that was only there to pass the mode through.
    
    gcc/ChangeLog:
    
    2019-09-26  Iain Sandoe  <i...@sandoe.co.uk>
    
            * config/rs6000/darwin.md: Replace the expanders for
            load_macho_picbase and reload_macho_picbase with use of '@'
            in their respective define_insns.
            (nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase.
            * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass
            Pmode to gen_load_macho_picbase.
            * config/rs6000/rs6000.md: Likewise.
    
    From-SVN: r276159
</cut>

Results regressed to (for first_bad == 4fc1d2629ab373945a30031c1b49bdfa4e9f5f12)
# reset_artifacts:
-10
# build_abe binutils:
-9
# build_abe stage1 -- --set gcc_override_configure=--with-mode=arm --set 
gcc_override_configure=--disable-libsanitizer:
-8
# build_abe linux:
-7
# build_abe glibc:
-6
# build_abe stage2 -- --set gcc_override_configure=--with-mode=arm --set 
gcc_override_configure=--disable-libsanitizer:
-5
# build_llvm true:
-3
# true:
0
# benchmark -O2_marm -- 
artifacts/build-4fc1d2629ab373945a30031c1b49bdfa4e9f5f12/results_id:
1
# 453.povray,[.] _ZN3povL23All_Plane_IntersectionsEPNS_13Object regressed by 113

from (for last_good == 0bfc204142439b8167bf3447d7d12b65d1da82f8)
# reset_artifacts:
-10
# build_abe binutils:
-9
# build_abe stage1 -- --set gcc_override_configure=--with-mode=arm --set 
gcc_override_configure=--disable-libsanitizer:
-8
# build_abe linux:
-7
# build_abe glibc:
-6
# build_abe stage2 -- --set gcc_override_configure=--with-mode=arm --set 
gcc_override_configure=--disable-libsanitizer:
-5
# build_llvm true:
-3
# true:
0
# benchmark -O2_marm -- 
artifacts/build-0bfc204142439b8167bf3447d7d12b65d1da82f8/results_id:
1

Artifacts of last_good build: 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release-arm-spec2k6-O2/13/artifact/artifacts/build-0bfc204142439b8167bf3447d7d12b65d1da82f8/
Results ID of last_good: 
tk1_32/tcwg_bmk_llvm_tk1/bisect-llvm-release-arm-spec2k6-O2/2460
Artifacts of first_bad build: 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release-arm-spec2k6-O2/13/artifact/artifacts/build-4fc1d2629ab373945a30031c1b49bdfa4e9f5f12/
Results ID of first_bad: 
tk1_32/tcwg_bmk_llvm_tk1/bisect-llvm-release-arm-spec2k6-O2/2450
Build top page/logs: 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release-arm-spec2k6-O2/13/

Configuration details:


Reproduce builds:
<cut>
mkdir investigate-gcc-4fc1d2629ab373945a30031c1b49bdfa4e9f5f12
cd investigate-gcc-4fc1d2629ab373945a30031c1b49bdfa4e9f5f12

git clone https://git.linaro.org/toolchain/jenkins-scripts

mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release-arm-spec2k6-O2/13/artifact/artifacts/manifests/build-baseline.sh
 --fail
curl -o artifacts/manifests/build-parameters.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release-arm-spec2k6-O2/13/artifact/artifacts/manifests/build-parameters.sh
 --fail
curl -o artifacts/test.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release-arm-spec2k6-O2/13/artifact/artifacts/test.sh
 --fail
chmod +x artifacts/test.sh

# Reproduce the baseline build (build all pre-requisites)
./jenkins-scripts/tcwg_bmk-build.sh @@ artifacts/manifests/build-baseline.sh

# Save baseline build state (which is then restored in artifacts/test.sh)
mkdir -p ./bisect
rsync -a --del --delete-excluded --exclude /bisect/ --exclude /artifacts/ 
--exclude /gcc/ ./ ./bisect/baseline/

cd gcc

# Reproduce first_bad build
git checkout --detach 4fc1d2629ab373945a30031c1b49bdfa4e9f5f12
../artifacts/test.sh

# Reproduce last_good build
git checkout --detach 0bfc204142439b8167bf3447d7d12b65d1da82f8
../artifacts/test.sh

cd ..
</cut>

History of pending regressions and results: 
https://git.linaro.org/toolchain/ci/base-artifacts.git/log/?h=linaro-local/ci/tcwg_bmk_llvm_tk1/llvm-release-arm-spec2k6-O2

Artifacts: 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release-arm-spec2k6-O2/13/artifact/artifacts/
Build log: 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release-arm-spec2k6-O2/13/consoleText

Full commit (up to 1000 lines):
<cut>
commit 4fc1d2629ab373945a30031c1b49bdfa4e9f5f12
Author: Iain Sandoe <i...@sandoe.co.uk>
Date:   Thu Sep 26 18:50:55 2019 +0000

    [Darwin, PPC, Mode Iterators 2/n] Eliminate picbase expanders.
    
    We can use the mode iterators directly with an @pattern to avoid the
    need for an expander that was only there to pass the mode through.
    
    gcc/ChangeLog:
    
    2019-09-26  Iain Sandoe  <i...@sandoe.co.uk>
    
            * config/rs6000/darwin.md: Replace the expanders for
            load_macho_picbase and reload_macho_picbase with use of '@'
            in their respective define_insns.
            (nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase.
            * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass
            Pmode to gen_load_macho_picbase.
            * config/rs6000/rs6000.md: Likewise.
    
    From-SVN: r276159
---
 gcc/ChangeLog                    | 10 ++++++++++
 gcc/config/rs6000/darwin.md      | 34 +++-------------------------------
 gcc/config/rs6000/rs6000-logue.c |  2 +-
 gcc/config/rs6000/rs6000.md      |  2 +-
 4 files changed, 15 insertions(+), 33 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1358d4b3542..9bbae7af2e2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-26  Iain Sandoe  <i...@sandoe.co.uk>
+
+       * config/rs6000/darwin.md: Replace the expanders for
+       load_macho_picbase and reload_macho_picbase with use of '@'
+       and <mode> in their respective define_insns.
+       (nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase.
+       * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass
+       Pmode to gen_load_macho_picbase.
+       * config/rs6000/rs6000.md: Likewise.
+
 2019-09-25  Richard Biener  <rguent...@suse.de>
 
        PR tree-optimization/91896
diff --git a/gcc/config/rs6000/darwin.md b/gcc/config/rs6000/darwin.md
index 4a284211afb..a5c5a3af39e 100644
--- a/gcc/config/rs6000/darwin.md
+++ b/gcc/config/rs6000/darwin.md
@@ -216,21 +216,7 @@ You should have received a copy of the GNU General Public 
License
        (match_dup 2))]
   "")
 
-(define_expand "load_macho_picbase"
-  [(set (reg LR_REGNO)
-        (unspec [(match_operand 0 "")]
-                   UNSPEC_LD_MPIC))]
-  "(DEFAULT_ABI == ABI_DARWIN) && flag_pic"
-{
-  if (TARGET_32BIT)
-    emit_insn (gen_load_macho_picbase_si (operands[0]));
-  else
-    emit_insn (gen_load_macho_picbase_di (operands[0]));
-
-  DONE;
-})
-
-(define_insn "load_macho_picbase_<mode>"
+(define_insn "@load_macho_picbase_<mode>"
   [(set (reg:P LR_REGNO)
        (unspec:P [(match_operand:P 0 "immediate_operand" "s")
                    (pc)] UNSPEC_LD_MPIC))]
@@ -284,21 +270,7 @@ You should have received a copy of the GNU General Public 
License
   "addis %0,%1,ha16(%2-%3)\n\taddi %0,%0,lo16(%2-%3)"
   [(set_attr "length" "8")])
 
-(define_expand "reload_macho_picbase"
-  [(set (reg LR_REGNO)
-        (unspec [(match_operand 0 "")]
-                   UNSPEC_RELD_MPIC))]
-  "(DEFAULT_ABI == ABI_DARWIN) && flag_pic"
-{
-  if (TARGET_32BIT)
-    emit_insn (gen_reload_macho_picbase_si (operands[0]));
-  else
-    emit_insn (gen_reload_macho_picbase_di (operands[0]));
-
-  DONE;
-})
-
-(define_insn "reload_macho_picbase_<mode>"
+(define_insn "@reload_macho_picbase_<mode>"
   [(set (reg:P LR_REGNO)
         (unspec:P [(match_operand:P 0 "immediate_operand" "s")
                    (pc)] UNSPEC_RELD_MPIC))]
@@ -342,7 +314,7 @@ You should have received a copy of the GNU General Public 
License
       ASM_GENERATE_INTERNAL_LABEL(tmplab, "Lnlgr", ++n);
       tmplrtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (tmplab));
 
-      emit_insn (gen_reload_macho_picbase (tmplrtx));
+      emit_insn (gen_reload_macho_picbase (Pmode, tmplrtx));
       emit_move_insn (picreg, gen_rtx_REG (Pmode, LR_REGNO));
       emit_insn (gen_macho_correct_pic (picreg, picreg, picrtx, tmplrtx));
     }
diff --git a/gcc/config/rs6000/rs6000-logue.c b/gcc/config/rs6000/rs6000-logue.c
index 633a253e439..e98893a440c 100644
--- a/gcc/config/rs6000/rs6000-logue.c
+++ b/gcc/config/rs6000/rs6000-logue.c
@@ -3809,7 +3809,7 @@ rs6000_emit_prologue (void)
       if (!info->lr_save_p)
        emit_move_insn (gen_rtx_REG (Pmode, 0), lr);
 
-      emit_insn (gen_load_macho_picbase (src));
+      emit_insn (gen_load_macho_picbase (Pmode, src));
 
       emit_move_insn (gen_rtx_REG (Pmode,
                                   RS6000_PIC_OFFSET_TABLE_REGNUM),
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 4dbf85bbc95..c5443bab9e8 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -10053,7 +10053,7 @@
                                  CODE_LABEL_NUMBER (operands[0]));
       tmplabrtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (tmplab));
 
-      emit_insn (gen_load_macho_picbase (tmplabrtx));
+      emit_insn (gen_load_macho_picbase (Pmode, tmplabrtx));
       emit_move_insn (picreg, gen_rtx_REG (Pmode, LR_REGNO));
       emit_insn (gen_macho_correct_pic (picreg, picreg, picrtx, tmplabrtx));
     }
</cut>
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to