* [Bug other/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
@ 2011-09-03 18:21 ` danglin at gcc dot gnu.org
2011-09-03 18:21 ` danglin at gcc dot gnu.org
` (19 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: danglin at gcc dot gnu.org @ 2011-09-03 18:21 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #2 from John David Anglin <danglin at gcc dot gnu.org> 2011-09-03 18:21:24 UTC ---
Created attachment 25187
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25187
.s file
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug other/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
2011-09-03 18:21 ` [Bug other/50283] " danglin at gcc dot gnu.org
@ 2011-09-03 18:21 ` danglin at gcc dot gnu.org
2011-09-03 20:59 ` rguenth at gcc dot gnu.org
` (18 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: danglin at gcc dot gnu.org @ 2011-09-03 18:21 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #1 from John David Anglin <danglin at gcc dot gnu.org> 2011-09-03 18:20:58 UTC ---
(In reply to comment #0)
> Thought at first that this might be caused by stack allocation instruction
> being placed in call delay slot, but fail also occurs at -O0.
This is wrong. The test doesn't fail at -O0 (I ran the wrong executable).
At -O, the CFI labels appear incorrectly placed
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug other/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
2011-09-03 18:21 ` [Bug other/50283] " danglin at gcc dot gnu.org
2011-09-03 18:21 ` danglin at gcc dot gnu.org
@ 2011-09-03 20:59 ` rguenth at gcc dot gnu.org
2011-10-03 19:44 ` danglin at gcc dot gnu.org
` (17 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-09-03 20:59 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |4.7.0
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug other/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (2 preceding siblings ...)
2011-09-03 20:59 ` rguenth at gcc dot gnu.org
@ 2011-10-03 19:44 ` danglin at gcc dot gnu.org
2011-10-10 12:33 ` [Bug middle-end/50283] " rguenth at gcc dot gnu.org
` (16 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: danglin at gcc dot gnu.org @ 2011-10-03 19:44 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #3 from John David Anglin <danglin at gcc dot gnu.org> 2011-10-03 19:43:40 UTC ---
Created attachment 25405
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25405
.final dump
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (3 preceding siblings ...)
2011-10-03 19:44 ` danglin at gcc dot gnu.org
@ 2011-10-10 12:33 ` rguenth at gcc dot gnu.org
2011-10-10 14:36 ` danglin at gcc dot gnu.org
` (15 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-10-10 12:33 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |EH
Priority|P3 |P1
Component|other |middle-end
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (4 preceding siblings ...)
2011-10-10 12:33 ` [Bug middle-end/50283] " rguenth at gcc dot gnu.org
@ 2011-10-10 14:36 ` danglin at gcc dot gnu.org
2011-11-21 17:28 ` danglin at gcc dot gnu.org
` (14 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: danglin at gcc dot gnu.org @ 2011-10-10 14:36 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #4 from John David Anglin <danglin at gcc dot gnu.org> 2011-10-10 14:33:17 UTC ---
The bug was introduced in revision 177218:
2011-08-02 Richard Henderson <rth@redhat.com>
PR target/49864
* reg-notes.def (REG_ARGS_SIZE): New.
* calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
(expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
* cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
different stack levels.
* combine-stack-adj.c (adjust_frame_related_expr): Remove.
(maybe_move_args_size_note): New.
(combine_stack_adjustments_for_block): Use it.
* combine.c (distribute_notes): Place REG_ARGS_SIZE.
* dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
(dw_trace_info): Add beg_true_args_size, end_true_args_size,
beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
(cur_cfa): New.
(queued_args_size): Remove.
(add_cfi_args_size): Assert size is non-negative.
(stack_adjust_offset, dwarf2out_args_size): Remove.
(dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
(notice_args_size, notice_eh_throw): New.
(dwarf2out_frame_debug_def_cfa): Use cur_cfa.
(dwarf2out_frame_debug_adjust_cfa): Likewise.
(dwarf2out_frame_debug_cfa_offset): Likewise.
(dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
(dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
(change_cfi_row): Don't emit args_size.
(maybe_record_trace_start_abnormal): Split out from ...
(maybe_record_trace_start): Here. Set args_size_undefined.
(create_trace_edges): Update to match.
(scan_trace): Handle REG_ARGS_SIZE.
(connect_traces): Connect args_size between EH insns.
* emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
* explow.c (suppress_reg_args_size): New.
(adjust_stack_1): Split out from ...
(adjust_stack): ... here.
(anti_adjust_stack): Use it.
(allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
* expr.c (mem_autoinc_base): New.
(fixup_args_size_notes): New.
(emit_single_push_insn_1): Rename from emit_single_push_insn.
(emit_single_push_insn): New. Generate REG_ARGS_SIZE.
* recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
* reload1.c (reload_as_needed): Likewise.
* rtl.h (fixup_args_size_notes): Declare.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (5 preceding siblings ...)
2011-10-10 14:36 ` danglin at gcc dot gnu.org
@ 2011-11-21 17:28 ` danglin at gcc dot gnu.org
2011-11-27 18:59 ` danglin at gcc dot gnu.org
` (13 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: danglin at gcc dot gnu.org @ 2011-11-21 17:28 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #5 from John David Anglin <danglin at gcc dot gnu.org> 2011-11-21 17:04:20 UTC ---
Regarding label placement of frame related insns, we have the following
rtl for f2:
(insn 14 2 15 (sequence [
(call_insn 5 2 11 (parallel [
(call (mem:SI (symbol_ref/v:SI ("@_Z2f3v") [flags
0x203] <function_decl 7afc7b80 f3>) [0 f3 S4 A32])
(const_int 16 [0x10]))
(clobber (reg:SI 1 %r1))
(clobber (reg:SI 2 %r2))
(use (const_int 0 [0]))
]) /test/gnu/gcc/gcc/gcc/testsuite/g++.dg/eh/simd-1.C:30
199 {call_symref}
(expr_list:REG_NORETURN (const_int 0 [0])
(nil))
(nil))
(insn/f 11 5 15 (set (reg/f:SI 30 %r30)
(plus:SI (reg/f:SI 30 %r30)
(const_int 64 [0x40]))) 111 {addsi3}
(nil))
]) /test/gnu/gcc/gcc/gcc/testsuite/g++.dg/eh/simd-1.C:30 -1
(nil))
The assembler for f2 is:
.SPACE $TEXT$
.NSUBSPA $CODE$
.align 4
.EXPORT _Z2f2v,ENTRY,PRIV_LEV=3
L$FB0002:
_Z2f2v:
.PROC
.CALLINFO FRAME=64,CALLS,SAVE_RP
.ENTRY
stw %r2,-20(%r30)
L$CFI0001:
.CALL
bl _Z2f3v,%r2
ldo 64(%r30),%r30
L$CFI0002:
nop
.EXIT
.PROCEND
L$FE0002:
L$CFI0002 is now after the call sequence whereas it used to be
before the sequence.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (6 preceding siblings ...)
2011-11-21 17:28 ` danglin at gcc dot gnu.org
@ 2011-11-27 18:59 ` danglin at gcc dot gnu.org
2011-11-27 19:05 ` danglin at gcc dot gnu.org
` (12 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: danglin at gcc dot gnu.org @ 2011-11-27 18:59 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #6 from John David Anglin <danglin at gcc dot gnu.org> 2011-11-27 18:35:52 UTC ---
Fails have changed somewhat but are still present:
WARNING: program timed out.FAIL: g++.dg/eh/simd-1.C -std=gnu++98 execution test
WARNING: program timed out.FAIL: g++.dg/eh/simd-1.C -std=gnu++11 execution test
FAIL: g++.dg/eh/simd-2.C -std=gnu++98 execution testWARNING: program timed out.
FAIL: g++.dg/eh/simd-2.C -std=gnu++11 execution test
WARNING: program timed out.FAIL: g++.dg/opt/eh2.C -std=gnu++98 execution test
WARNING: program timed out.FAIL: g++.dg/opt/eh2.C -std=gnu++11 execution test
Tested first with -fno-delay-branch and it doesn't fail.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (7 preceding siblings ...)
2011-11-27 18:59 ` danglin at gcc dot gnu.org
@ 2011-11-27 19:05 ` danglin at gcc dot gnu.org
2011-11-27 19:08 ` danglin at gcc dot gnu.org
` (11 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: danglin at gcc dot gnu.org @ 2011-11-27 19:05 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
John David Anglin <danglin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #25187|0 |1
is obsolete| |
--- Comment #7 from John David Anglin <danglin at gcc dot gnu.org> 2011-11-27 18:46:17 UTC ---
Created attachment 25920
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25920
.s file
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (8 preceding siblings ...)
2011-11-27 19:05 ` danglin at gcc dot gnu.org
@ 2011-11-27 19:08 ` danglin at gcc dot gnu.org
2011-11-27 19:25 ` rth at gcc dot gnu.org
` (10 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: danglin at gcc dot gnu.org @ 2011-11-27 19:08 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #8 from John David Anglin <danglin at gcc dot gnu.org> 2011-11-27 18:54:10 UTC ---
This is hack, but test doesn't fail if I interchange ldo and
.cfi_def_cfa_offset
lines:
ldo 64(%r30),%r30
.cfi_def_cfa_offset -64
How should a stack adjust in the final instruction of a delayed branch
be described?
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (9 preceding siblings ...)
2011-11-27 19:08 ` danglin at gcc dot gnu.org
@ 2011-11-27 19:25 ` rth at gcc dot gnu.org
2011-11-27 20:51 ` dave.anglin at bell dot net
` (9 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: rth at gcc dot gnu.org @ 2011-11-27 19:25 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #9 from Richard Henderson <rth at gcc dot gnu.org> 2011-11-27 18:59:40 UTC ---
You don't. We're supposed to prevent frame-related insns
from appearing in branch delay slots.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (10 preceding siblings ...)
2011-11-27 19:25 ` rth at gcc dot gnu.org
@ 2011-11-27 20:51 ` dave.anglin at bell dot net
2011-12-01 2:09 ` danglin at gcc dot gnu.org
` (8 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: dave.anglin at bell dot net @ 2011-11-27 20:51 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #10 from dave.anglin at bell dot net 2011-11-27 19:07:46 UTC ---
On 27-Nov-11, at 1:59 PM, rth at gcc dot gnu.org wrote:
> You don't. We're supposed to prevent frame-related insns
> from appearing in branch delay slots.
Is this a reorg issue?
--
John David Anglin dave.anglin@bell.net
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (11 preceding siblings ...)
2011-11-27 20:51 ` dave.anglin at bell dot net
@ 2011-12-01 2:09 ` danglin at gcc dot gnu.org
2011-12-01 2:17 ` danglin at gcc dot gnu.org
` (7 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: danglin at gcc dot gnu.org @ 2011-12-01 2:09 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #11 from John David Anglin <danglin at gcc dot gnu.org> 2011-12-01 02:08:20 UTC ---
Author: danglin
Date: Thu Dec 1 02:08:10 2011
New Revision: 181868
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=181868
Log:
PR middle-end/50283
* config/pa/pa.md (in_branch_delay): Disallow frame related insns.
(in_nullified_branch_delay): Likewise.
(in_call_delay): Likewise.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/pa/pa.md
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (12 preceding siblings ...)
2011-12-01 2:09 ` danglin at gcc dot gnu.org
@ 2011-12-01 2:17 ` danglin at gcc dot gnu.org
2011-12-16 7:12 ` pinskia at gcc dot gnu.org
` (6 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: danglin at gcc dot gnu.org @ 2011-12-01 2:17 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
John David Anglin <danglin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
--- Comment #12 from John David Anglin <danglin at gcc dot gnu.org> 2011-12-01 02:17:03 UTC ---
Fixed.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (13 preceding siblings ...)
2011-12-01 2:17 ` danglin at gcc dot gnu.org
@ 2011-12-16 7:12 ` pinskia at gcc dot gnu.org
2011-12-17 7:29 ` dave.anglin at bell dot net
` (5 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu.org @ 2011-12-16 7:12 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #13 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-12-16 02:16:00 UTC ---
(In reply to comment #10)
> On 27-Nov-11, at 1:59 PM, rth at gcc dot gnu.org wrote:
>
> > You don't. We're supposed to prevent frame-related insns
> > from appearing in branch delay slots.
>
> Is this a reorg issue?
I am creating more generic patch for this for all targets that use branch delay
slots.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (14 preceding siblings ...)
2011-12-16 7:12 ` pinskia at gcc dot gnu.org
@ 2011-12-17 7:29 ` dave.anglin at bell dot net
2012-01-10 11:32 ` vries at gcc dot gnu.org
` (4 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: dave.anglin at bell dot net @ 2011-12-17 7:29 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #14 from dave.anglin at bell dot net 2011-12-17 04:12:48 UTC ---
On 15-Dec-11, at 9:16 PM, pinskia at gcc dot gnu.org wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
>
> --- Comment #13 from Andrew Pinski <pinskia at gcc dot gnu.org>
> 2011-12-16 02:16:00 UTC ---
> (In reply to comment #10)
>> On 27-Nov-11, at 1:59 PM, rth at gcc dot gnu.org wrote:
>>
>>> You don't. We're supposed to prevent frame-related insns
>>> from appearing in branch delay slots.
>>
>> Is this a reorg issue?
>
> I am creating more generic patch for this for all targets that use
> branch delay
> slots.
My question may have been a bit obtuse but I got the impression that
this should
be treated as a target specific problem. Would you please revert my
target patch
with your generic patch?
Thanks,
Dave
--
John David Anglin dave.anglin@bell.net
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (15 preceding siblings ...)
2011-12-17 7:29 ` dave.anglin at bell dot net
@ 2012-01-10 11:32 ` vries at gcc dot gnu.org
2012-01-10 21:40 ` rth at gcc dot gnu.org
` (3 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: vries at gcc dot gnu.org @ 2012-01-10 11:32 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
vries at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |vries at gcc dot gnu.org
--- Comment #15 from vries at gcc dot gnu.org 2012-01-10 11:31:55 UTC ---
(In reply to comment #9)
> You don't. We're supposed to prevent frame-related insns
> from appearing in branch delay slots.
Richard,
do you mean this in general, or just for calls?
Either way, we should be able to formulate an assert in scan_trace that checks
this condition. Do you think that would be useful?
Thanks,
- Tom
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (16 preceding siblings ...)
2012-01-10 11:32 ` vries at gcc dot gnu.org
@ 2012-01-10 21:40 ` rth at gcc dot gnu.org
2012-01-11 9:45 ` vries at gcc dot gnu.org
` (2 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: rth at gcc dot gnu.org @ 2012-01-10 21:40 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #16 from Richard Henderson <rth at gcc dot gnu.org> 2012-01-10 21:40:22 UTC ---
Calls are especially problematic, yes. You've just fixed a bug
for branches; hopefully that's the last of them.
Though if it were a matter of preferences, I would expect that
choosing a non-frame-related insn for the delay slot over a
frame-related insn of otherwise equal priority would produce
less heartburn in consumers even if it's possibly to handle it
within gcc.
You absolutely correct that we ought to have a check for this.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (17 preceding siblings ...)
2012-01-10 21:40 ` rth at gcc dot gnu.org
@ 2012-01-11 9:45 ` vries at gcc dot gnu.org
2012-01-28 22:22 ` vries at gcc dot gnu.org
2012-12-06 2:20 ` danglin at gcc dot gnu.org
20 siblings, 0 replies; 22+ messages in thread
From: vries at gcc dot gnu.org @ 2012-01-11 9:45 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #17 from vries at gcc dot gnu.org 2012-01-11 09:45:02 UTC ---
>> Either way, we should be able to formulate an assert in scan_trace that
>> checks this condition. Do you think that would be useful?
> You absolutely correct that we ought to have a check for this.
Is this check good, or is there another component (f.i.
target/configure-specific)? :
...
Index: gcc/dwarf2cfi.c
===================================================================
--- gcc/dwarf2cfi.c (revision 183070)
+++ gcc/dwarf2cfi.c (working copy)
@@ -2474,6 +2474,7 @@ scan_trace (dw_trace_info *trace)
for (i = 1; i < n; ++i)
{
elt = XVECEXP (pat, 0, i);
+ gcc_assert (!(CALL_P (control) && RTX_FRAME_RELATED_P (elt)));
scan_insn_after (elt);
}
...
A mips64el-linux-gnu build already fails this assert at libgcc2.c, on an insn:
...
(insn 92 73 29 (sequence [
(call_insn/j 27 73 74 (set (reg:DI 2 $2)
(call (mem:SI (reg/f:SI 25 $25 [205]) [0 __fixunssfdi S4
A32])
(unspec [
(const_int 0 [0])
(symbol_ref:SI ("__fixunssfdi") [flags 0x41]
<function_decl 0xf7dbe400 __fixunssfdi>)
] UNSPEC_CALL_ATTR))) libgcc2.c:1393 571
{sibcall_value_internal}
(expr_list:REG_DEAD (reg:SF 44 $f12)
(expr_list:REG_DEAD (reg/f:SI 25 $25 [205])
(nil)))
(expr_list:REG_DEP_TRUE (use (reg:SI 79 $fakec))
(expr_list:REG_NORETURN (use (reg:SF 44 $f12))
(nil))))
(insn/f 74 27 86 (set (reg/f:SI 29 $sp)
(plus:SI (reg/f:SI 29 $sp)
(const_int 16 [0x10]))) 10 {*addsi3}
(expr_list:REG_CFA_DEF_CFA (reg/f:SI 29 $sp)
(expr_list:REG_CFA_RESTORE (reg:DI 28 $28)
(expr_list:REG_CFA_RESTORE (reg:DI 31 $31)
(nil)))))
]) libgcc2.c:1393 -1
(nil))
...
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (18 preceding siblings ...)
2012-01-11 9:45 ` vries at gcc dot gnu.org
@ 2012-01-28 22:22 ` vries at gcc dot gnu.org
2012-12-06 2:20 ` danglin at gcc dot gnu.org
20 siblings, 0 replies; 22+ messages in thread
From: vries at gcc dot gnu.org @ 2012-01-28 22:22 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #18 from vries at gcc dot gnu.org 2012-01-28 21:00:14 UTC ---
Submitted generic patch:
http://gcc.gnu.org/ml/gcc-patches/2012-01/msg01540.html
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug middle-end/50283] [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test
2011-09-03 18:10 [Bug other/50283] New: [4.7 Regression] FAIL: g++.dg/eh/simd-1.C execution test danglin at gcc dot gnu.org
` (19 preceding siblings ...)
2012-01-28 22:22 ` vries at gcc dot gnu.org
@ 2012-12-06 2:20 ` danglin at gcc dot gnu.org
20 siblings, 0 replies; 22+ messages in thread
From: danglin at gcc dot gnu.org @ 2012-12-06 2:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50283
--- Comment #19 from John David Anglin <danglin at gcc dot gnu.org> 2012-12-06 02:19:55 UTC ---
Author: danglin
Date: Thu Dec 6 02:19:48 2012
New Revision: 194238
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194238
Log:
Backport for mainline:
2011-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/50283
* config/pa/pa.md (in_branch_delay): Disallow frame related insns.
(in_nullified_branch_delay): Likewise.
(in_call_delay): Likewise.
2012-11-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/55195
* config/pa/pa.md (type): Add sibcall and sh_func_adrs insn types.
(in_branch_delay): Don't allow sibcall or sh_func_adrs insns.
(in_nullified_branch_delay): Likewise.
(in_call_delay): Likewise.
Define delay for sibcall insns. Adjust Z3 and Z4 insn reservations for
new types. Add opaque cond to mark all calls, sibcalls, dyncalls and
the $$sh_func_adrs call as variable. Update type of sibcalls and
$$sh_func_adrs call.
* config/pa/pa.c (pa_adjust_insn_length): Revise to return updated
length instead of adjustment. Handle negative and undefined call
adjustments for insn_default_length. Remove adjustment for millicode
insn with unfilled delay slot.
(pa_output_millicode_call): Update for revised millicode length.
* config/pa/pa.h (ADJUST_INSN_LENGTH): Revise to set LENGTH.
2012-12-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* config/pa/pa.md: Use "const_int 0" instead of match_test to simplify
opaque cond in all call insns.
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/pa/pa.c
branches/gcc-4_6-branch/gcc/config/pa/pa.h
branches/gcc-4_6-branch/gcc/config/pa/pa.md
^ permalink raw reply [flat|nested] 22+ messages in thread