Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 397058 Details for
Bug 539950
sys-devel/gcc-4.8.3 fails to compile on alpha because of the failed bootstrap comparison
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
fix bootstrap comparison on alpha gcc-4.8.4
0001-Backport-from-mainline.patch (text/plain), 9.62 KB, created by
Anthony Basile
on 2015-02-20 13:17:35 UTC
(
hide
)
Description:
fix bootstrap comparison on alpha gcc-4.8.4
Filename:
MIME Type:
Creator:
Anthony Basile
Created:
2015-02-20 13:17:35 UTC
Size:
9.62 KB
patch
obsolete
>From fbbaa06361e4835304307f496d2302747f0fb2bd Mon Sep 17 00:00:00 2001 >From: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> >Date: Fri, 20 Feb 2015 07:07:00 +0000 >Subject: [PATCH] Backport from mainline 2013-09-08 Richard Sandiford > <rdsandiford@googlemail.com> > > * ira.c (update_equiv_regs): Only call set_paradoxical_subreg > for non-debug insns. > * lra.c (new_insn_reg): Take the containing insn as a parameter. > Only modify lra_reg_info[].biggest_mode if it's non-debug insn. > (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update > accordingly. > >testsuite/ChangeLog: > > Backport from mainline > 2013-09-08 Richard Sandiford <rdsandiford@googlemail.com> > > * g++.dg/debug/ra1.C: New test. > > > >git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_8-branch@220834 138bc75d-0d04-0410-961f-82ee72b054a4 >--- > gcc/ChangeLog | 26 ++++++++++---- > gcc/ira.c | 7 ++-- > gcc/lra.c | 18 +++++----- > gcc/testsuite/ChangeLog | 9 ++++- > gcc/testsuite/g++.dg/debug/ra1.C | 77 ++++++++++++++++++++++++++++++++++++++++ > 5 files changed, 116 insertions(+), 21 deletions(-) > create mode 100644 gcc/testsuite/g++.dg/debug/ra1.C > >diff --git a/gcc/ChangeLog b/gcc/ChangeLog >index 13ef8bc..21031e2 100644 >--- a/gcc/ChangeLog >+++ b/gcc/ChangeLog >@@ -1,3 +1,15 @@ >+2015-02-20 Uros Bizjak <ubizjak@gmail.com> >+ >+ Backport from mainline >+ 2013-09-08 Richard Sandiford <rdsandiford@googlemail.com> >+ >+ * ira.c (update_equiv_regs): Only call set_paradoxical_subreg >+ for non-debug insns. >+ * lra.c (new_insn_reg): Take the containing insn as a parameter. >+ Only modify lra_reg_info[].biggest_mode if it's non-debug insn. >+ (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update >+ accordingly. >+ > 2015-02-17 Ilya Tocar <ilya.tocar@intel.com> > > Backported from mainline >@@ -35,7 +47,7 @@ > Backport from mainline > 2015-01-31 Uros Bizjak <ubizjak@gmail.com> > >- PR target/64882 >+ PR target/64882 > * config/i386/predicates.md (address_no_seg_operand): Reject > non-CONST_INT_P operands in invalid mode. > >@@ -218,7 +230,7 @@ > 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> > > Backport from mainline >- 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> >+ 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> > > * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New > built-in definition. >@@ -253,7 +265,7 @@ > (vec_mul): Likewise. > > Backport from mainline >- 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com> >+ 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com> > > * config/rs6000/altivec.h (vec_xl): New #define. > (vec_xst): Likewise. >@@ -276,7 +288,7 @@ > (vsx_xxspltd_<mode>): New insn. > > Backport from mainline >- 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> >+ 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> > > * config/rs6000/altivec.h (vec_cpsgn): New #define. > (vec_mergee): Likewise. >@@ -294,7 +306,7 @@ > vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz. > > Backport from mainline >- 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> >+ 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> > > * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI. > (altivec_vsldoi_<mode>): Likewise. >@@ -378,7 +390,7 @@ > for immediate. > > 2014-11-19 Felix Yang <felix.yang@huawei.com> >- Shanyao Chen <chenshanyao@huawei.com> >+ Shanyao Chen <chenshanyao@huawei.com> > > PR target/59593 > * config/arm/arm.md (define_attr "arch"): Add v6t2. >@@ -1286,7 +1298,7 @@ > Backport from mainline > > 2014-06-20 Julian Brown <julian@codesourcery.com> >- Chung-Lin Tang <cltang@codesourcery.com> >+ Chung-Lin Tang <cltang@codesourcery.com> > > * config/arm/arm.c (arm_output_mi_thunk): Fix offset for > TARGET_THUMB1_ONLY. Add comments. >diff --git a/gcc/ira.c b/gcc/ira.c >index 87e72f0..385441a 100644 >--- a/gcc/ira.c >+++ b/gcc/ira.c >@@ -2944,11 +2944,8 @@ update_equiv_regs (void) > prevent access beyond allocated memory for paradoxical memory subreg. */ > FOR_EACH_BB (bb) > FOR_BB_INSNS (bb, insn) >- { >- if (! INSN_P (insn)) >- continue; >- for_each_rtx (&insn, set_paradoxical_subreg, (void *)pdx_subregs); >- } >+ if (NONDEBUG_INSN_P (insn)) >+ for_each_rtx (&insn, set_paradoxical_subreg, (void *) pdx_subregs); > > /* Scan the insns and find which registers have equivalences. Do this > in a separate scan of the insns because (due to -fcse-follow-jumps) >diff --git a/gcc/lra.c b/gcc/lra.c >index 17962ea..797e388 100644 >--- a/gcc/lra.c >+++ b/gcc/lra.c >@@ -446,13 +446,13 @@ init_insn_regs (void) > = create_alloc_pool ("insn regs", sizeof (struct lra_insn_reg), 100); > } > >-/* Create LRA insn related info about referenced REGNO with TYPE >- (in/out/inout), biggest reference mode MODE, flag that it is >+/* Create LRA insn related info about a reference to REGNO in INSN with >+ TYPE (in/out/inout), biggest reference mode MODE, flag that it is > reference through subreg (SUBREG_P), flag that is early clobbered > in the insn (EARLY_CLOBBER), and reference to the next insn reg > info (NEXT). */ > static struct lra_insn_reg * >-new_insn_reg (int regno, enum op_type type, enum machine_mode mode, >+new_insn_reg (rtx insn, int regno, enum op_type type, enum machine_mode mode, > bool subreg_p, bool early_clobber, struct lra_insn_reg *next) > { > struct lra_insn_reg *ir; >@@ -460,7 +460,8 @@ new_insn_reg (int regno, enum op_type type, enum machine_mode mode, > ir = (struct lra_insn_reg *) pool_alloc (insn_reg_pool); > ir->type = type; > ir->biggest_mode = mode; >- if (GET_MODE_SIZE (mode) > GET_MODE_SIZE (lra_reg_info[regno].biggest_mode)) >+ if (GET_MODE_SIZE (mode) > GET_MODE_SIZE (lra_reg_info[regno].biggest_mode) >+ && NONDEBUG_INSN_P (insn)) > lra_reg_info[regno].biggest_mode = mode; > ir->subreg_p = subreg_p; > ir->early_clobber = early_clobber; >@@ -942,7 +943,7 @@ collect_non_operand_hard_regs (rtx *x, lra_insn_recog_data_t data, > && ! (FIRST_STACK_REG <= regno > && regno <= LAST_STACK_REG)); > #endif >- list = new_insn_reg (regno, type, mode, subreg_p, >+ list = new_insn_reg (data->insn, regno, type, mode, subreg_p, > early_clobber, list); > } > } >@@ -1540,7 +1541,7 @@ add_regs_to_insn_regno_info (lra_insn_recog_data_t data, rtx x, int uid, > expand_reg_info (); > if (bitmap_set_bit (&lra_reg_info[regno].insn_bitmap, uid)) > { >- data->regs = new_insn_reg (regno, type, mode, subreg_p, >+ data->regs = new_insn_reg (data->insn, regno, type, mode, subreg_p, > early_clobber, data->regs); > return; > } >@@ -1552,8 +1553,9 @@ add_regs_to_insn_regno_info (lra_insn_recog_data_t data, rtx x, int uid, > if (curr->subreg_p != subreg_p || curr->biggest_mode != mode) > /* The info can not be integrated into the found > structure. */ >- data->regs = new_insn_reg (regno, type, mode, subreg_p, >- early_clobber, data->regs); >+ data->regs = new_insn_reg (data->insn, regno, type, mode, >+ subreg_p, early_clobber, >+ data->regs); > else > { > if (curr->type != type) >diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog >index 0d78836..4b9ca6c 100644 >--- a/gcc/testsuite/ChangeLog >+++ b/gcc/testsuite/ChangeLog >@@ -1,3 +1,10 @@ >+2015-02-20 Uros Bizjak <ubizjak@gmail.com> >+ >+ Backport from mainline >+ 2013-09-08 Richard Sandiford <rdsandiford@googlemail.com> >+ >+ * g++.dg/debug/ra1.C: New test. >+ > 2015-02-17 Sandra Loosemore <sandra@codesourcery.com> > > Backported from mainline >@@ -43,7 +50,7 @@ > Backport from mainline > 2015-01-31 Uros Bizjak <ubizjak@gmail.com> > >- PR target/64882 >+ PR target/64882 > * gcc.dg/torture/pr64882.c: New test. > > 2015-02-01 Jakub Jelinek <jakub@redhat.com> >diff --git a/gcc/testsuite/g++.dg/debug/ra1.C b/gcc/testsuite/g++.dg/debug/ra1.C >new file mode 100644 >index 0000000..b6f7bfc >--- /dev/null >+++ b/gcc/testsuite/g++.dg/debug/ra1.C >@@ -0,0 +1,77 @@ >+/* { dg-options "-fcompare-debug" } */ >+ >+enum signop { SIGNED, UNSIGNED }; >+enum tree_code { FOO, BAR }; >+enum tree_code_class { tcc_type, tcc_other }; >+extern enum tree_code_class tree_code_type[]; >+ >+struct tree_base { >+ enum tree_code code : 16; >+ unsigned unsigned_flag : 1; >+}; >+ >+struct tree_def { >+ tree_base base; >+ struct { >+ int precision; >+ } type_common; >+}; >+ >+typedef tree_def *tree; >+ >+struct storage_ref >+{ >+ storage_ref (const long *, unsigned int, unsigned int); >+ >+ const long *val; >+ unsigned int len; >+ unsigned int precision; >+}; >+ >+inline storage_ref::storage_ref (const long *val_in, >+ unsigned int len_in, >+ unsigned int precision_in) >+ : val (val_in), len (len_in), precision (precision_in) >+{ >+} >+ >+struct hwi_with_prec >+{ >+ long val; >+ unsigned int precision; >+ signop sgn; >+}; >+ >+inline storage_ref >+decompose (long *scratch, unsigned int precision, >+ const hwi_with_prec &x) >+{ >+ scratch[0] = x.val; >+ if (x.sgn == SIGNED || x.val >= 0 || precision <= sizeof (long) * 8) >+ return storage_ref (scratch, 1, precision); >+ scratch[1] = 0; >+ return storage_ref (scratch, 2, precision); >+} >+ >+extern void tree_class_check_failed (int) __attribute__ ((__noreturn__)); >+ >+inline tree >+tree_class_check (tree t, const enum tree_code_class cls, int x) >+{ >+ if (tree_code_type[t->base.code] != cls) >+ tree_class_check_failed (x); >+ return t; >+} >+ >+tree wide_int_to_tree (tree, const storage_ref &); >+ >+tree >+build_int_cstu (tree type, unsigned long val) >+{ >+ hwi_with_prec x; >+ x.val = val; >+ x.precision = tree_class_check (type, tcc_type, 1)->type_common.precision; >+ x.sgn = (signop) tree_class_check (type, tcc_type, 2)->base.unsigned_flag; >+ long scratch[2]; >+ return wide_int_to_tree (type, decompose (scratch, x.precision, x)); >+} >-- >2.0.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 539950
:
396332
| 397058