* [Bug ada/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
@ 2012-07-15 15:20 ` danglin at gcc dot gnu.org
2012-07-18 10:15 ` [Bug target/53974] " ebotcazou at gcc dot gnu.org
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: danglin at gcc dot gnu.org @ 2012-07-15 15:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
John David Anglin <danglin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Nearly all tests fail with |[4.8 Regression] Nearly all
|ADA.CALENDAR.TIME_ERROR : |tests fail with
|a-calend.adb:603 |ADA.CALENDAR.TIME_ERROR :
| |a-calend.adb:603
--- Comment #1 from John David Anglin <danglin at gcc dot gnu.org> 2012-07-15 15:20:30 UTC ---
Revision 189245 was ok.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
2012-07-15 15:20 ` [Bug ada/53974] [4.8 Regression] Nearly " danglin at gcc dot gnu.org
@ 2012-07-18 10:15 ` ebotcazou at gcc dot gnu.org
2012-07-19 0:34 ` dave.anglin at bell dot net
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-07-18 10:15 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2012-07-18
CC| |ebotcazou at gcc dot
| |gnu.org
Component|ada |target
Ever Confirmed|0 |1
--- Comment #2 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-07-18 10:15:23 UTC ---
I have seen the same error on SPARC. The fix is
* config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
so you might want to try something similar on line 4923 of pa.md.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
2012-07-15 15:20 ` [Bug ada/53974] [4.8 Regression] Nearly " danglin at gcc dot gnu.org
2012-07-18 10:15 ` [Bug target/53974] " ebotcazou at gcc dot gnu.org
@ 2012-07-19 0:34 ` dave.anglin at bell dot net
2012-07-20 12:16 ` dave.anglin at bell dot net
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: dave.anglin at bell dot net @ 2012-07-19 0:34 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
--- Comment #3 from dave.anglin at bell dot net 2012-07-19 00:33:48 UTC ---
On 18-Jul-12, at 6:15 AM, ebotcazou at gcc dot gnu.org wrote:
> I have seen the same error on SPARC. The fix is
>
> * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
>
> so you might want to try something similar on line 4923 of pa.md.
Eric, thanks very much! Even if this doesn't fix the bug, this is
obviously
a bug.
Dave
--
John David Anglin dave.anglin@bell.net
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
` (2 preceding siblings ...)
2012-07-19 0:34 ` dave.anglin at bell dot net
@ 2012-07-20 12:16 ` dave.anglin at bell dot net
2012-07-20 12:26 ` ebotcazou at gcc dot gnu.org
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: dave.anglin at bell dot net @ 2012-07-20 12:16 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
--- Comment #4 from dave.anglin at bell dot net 2012-07-20 12:16:37 UTC ---
On 18-Jul-12, at 6:15 AM, ebotcazou at gcc dot gnu.org wrote:
> I have seen the same error on SPARC. The fix is
>
> * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
>
> so you might want to try something similar on line 4923 of pa.md.
I don't think there is an earlyclobber problem in the insn at 4923.
I reviewed pa.md for missing earlyclobbers and found a few. Some
are likely not problems because of alternative ordering. In any case,
fixing them didn't change the situation.
I presume the problem was introduced with this change:
2012-05-15 Hristian Kirtchev <kirtchev@adacore.com>
* a-calend.adb (Day_Of_Week): The routine once again treats
The Month value extracted by __gnat_split is wrong and it fails this
comparison:
0x000105bc <+68>: ldo -1(r21),r22
0x000105c0 <+72>: cmpib,<< b,r22,0x10618 <ada__calendar__split+160>
(gdb) p $r22
$15 = 12
Have to run,
Dave
--
John David Anglin dave.anglin@bell.net
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
` (3 preceding siblings ...)
2012-07-20 12:16 ` dave.anglin at bell dot net
@ 2012-07-20 12:26 ` ebotcazou at gcc dot gnu.org
2012-07-20 13:29 ` dave.anglin at bell dot net
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-07-20 12:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
--- Comment #5 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-07-20 12:26:33 UTC ---
> I don't think there is an earlyclobber problem in the insn at 4923.
SPARC has essentially the same pattern (it's a splitter though) and there was a
missing early clobber because there is no guarantee that DImode registers all
start on an even register in 32-bit mode: it's false for DImode arguments.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
` (4 preceding siblings ...)
2012-07-20 12:26 ` ebotcazou at gcc dot gnu.org
@ 2012-07-20 13:29 ` dave.anglin at bell dot net
2012-07-20 15:02 ` ebotcazou at gcc dot gnu.org
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: dave.anglin at bell dot net @ 2012-07-20 13:29 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
--- Comment #6 from dave.anglin at bell dot net 2012-07-20 13:28:47 UTC ---
On 7/20/2012 8:26 AM, ebotcazou at gcc dot gnu.org wrote:
> SPARC has essentially the same pattern (it's a splitter though) and there was a
> missing early clobber because there is no guarantee that DImode registers all
> start on an even register in 32-bit mode: it's false for DImode arguments.
I believe that the definition of HARD_REGNO_MODE_OK on PA prevents
partially overlapping
DImode registers. See comment comment for HARD_REGNO_MODE_OK . So,
clobbering %R0
can't affect %1.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
` (5 preceding siblings ...)
2012-07-20 13:29 ` dave.anglin at bell dot net
@ 2012-07-20 15:02 ` ebotcazou at gcc dot gnu.org
2012-07-20 17:20 ` dave.anglin at bell dot net
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-07-20 15:02 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
--- Comment #7 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-07-20 15:01:49 UTC ---
> I believe that the definition of HARD_REGNO_MODE_OK on PA prevents
> partially overlapping
> DImode registers. See comment comment for HARD_REGNO_MODE_OK . So,
> clobbering %R0 can't affect %1.
Sure, just like on SPARC, but DImode arguments can nevertheless be unaligned.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
` (6 preceding siblings ...)
2012-07-20 15:02 ` ebotcazou at gcc dot gnu.org
@ 2012-07-20 17:20 ` dave.anglin at bell dot net
2012-07-20 17:42 ` ebotcazou at gcc dot gnu.org
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: dave.anglin at bell dot net @ 2012-07-20 17:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
--- Comment #8 from dave.anglin at bell dot net 2012-07-20 17:20:29 UTC ---
On 7/20/2012 11:01 AM, ebotcazou at gcc dot gnu.org wrote:
> Sure, just like on SPARC, but DImode arguments can nevertheless be unaligned.
I've never seen this. In addition to HARD_REGNO_MODE_OK, the definition of
CANNOT_CHANGE_MODE_CLASS prevents mode changes to larger modes
when it is greater than UNITS_PER_WORD.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
` (7 preceding siblings ...)
2012-07-20 17:20 ` dave.anglin at bell dot net
@ 2012-07-20 17:42 ` ebotcazou at gcc dot gnu.org
2012-07-20 18:48 ` dave.anglin at bell dot net
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-07-20 17:42 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
--- Comment #9 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-07-20 17:42:19 UTC ---
> I've never seen this. In addition to HARD_REGNO_MODE_OK, the definition of
> CANNOT_CHANGE_MODE_CLASS prevents mode changes to larger modes
> when it is greater than UNITS_PER_WORD.
On SPARC, this is specified by the 32-bit ABI: if you have
void foo(int32_t a, int64_t b)
b will be loaded into DImode %o1, which is SImode %o1 & SImode %o2.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
` (8 preceding siblings ...)
2012-07-20 17:42 ` ebotcazou at gcc dot gnu.org
@ 2012-07-20 18:48 ` dave.anglin at bell dot net
2012-07-27 18:17 ` danglin at gcc dot gnu.org
2012-07-27 18:19 ` danglin at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: dave.anglin at bell dot net @ 2012-07-20 18:48 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
--- Comment #10 from dave.anglin at bell dot net 2012-07-20 18:48:25 UTC ---
On 7/20/2012 1:42 PM, ebotcazou at gcc dot gnu.org wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
>
> --- Comment #9 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-07-20 17:42:19 UTC ---
>> I've never seen this. In addition to HARD_REGNO_MODE_OK, the definition of
>> CANNOT_CHANGE_MODE_CLASS prevents mode changes to larger modes
>> when it is greater than UNITS_PER_WORD.
> On SPARC, this is specified by the 32-bit ABI: if you have
>
> void foo(int32_t a, int64_t b)
>
> b will be loaded into DImode %o1, which is SImode %o1 & SImode %o2.
>
On PA, b will be loaded into the second DImode call argument register which
is the r23/r24 register pair. HARD_REGNO_MODE_OK is defined in a manner
that is consistent with the calling conventions.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
` (9 preceding siblings ...)
2012-07-20 18:48 ` dave.anglin at bell dot net
@ 2012-07-27 18:17 ` danglin at gcc dot gnu.org
2012-07-27 18:19 ` danglin at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: danglin at gcc dot gnu.org @ 2012-07-27 18:17 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
--- Comment #11 from John David Anglin <danglin at gcc dot gnu.org> 2012-07-27 18:16:46 UTC ---
Adding early clobbers to the various 32-bit DImode patterns in pa.md
didn't make any difference.
The bug appears to have been introduced in revision 188786. The
following four fails were introduced in this revision:
RUN c96005a
,.,. C96005A ACATS 2.5 12-07-26 09:57:57---- C96005A CHECK THAT THE ADDITION
AND SUBTRACTION FUNCTIONS FOR
VALUES OF TYPE TIME WORK CORRECTLY. * C96005A DIFFERENCE OF
TIMES IS INCORRECT - (A)1.
* C96005A DIFFERENCE OF TIMES IS INCORRECT - (A)2.
raised ADA.CALENDAR.TIME_ERROR : a-calend.adb:301
FAIL: c96005a
RUN c96005f
,.,. C96005F ACATS 2.5 12-07-26 09:58:05---- C96005F CHECKING PACKAGE CALENDAR
+ AND - FUNCTIONS.
* C96005F FAILURE IN ADDING 1 DAY TO 'CURR_DAY1'. * C96005F FAILURE IN
ADDING 1 DAY TO 'CURR_DAY2'.
* C96005F FAILURE IN ADDING 1 DAY TO 'CURR_DAY3'.
* C96005F FAILURE IN SUBTRACTING 1 DAY FROM 'CURR_DAY1'.
* C96005F FAILURE IN SUBTRACTING 1 DAY FROM 'CURR_DAY2'.
* C96005F FAILURE IN SUBTRACTING 1 DAY FROM 'CURR_DAY3'.
**** C96005F FAILED ****************************.
FAIL: c96005f
RUN c96008a
,.,. C96008A ACATS 2.5 12-07-26 09:58:13
---- C96008A CHECK MISCELLANEOUS FUNCTIONS IN THE PACKAGE CALENDAR. - C96008A
TIME_OF AND SPLIT ARE NOT INVERSES WHEN SECONDS IS A NON-MODEL
NUMBER - (A). * C96008A SPLIT(TIME_OF) CHANGED VALUE OF YR - (A).
* C96008A SPLIT(TIME_OF) CHANGED VALUE OF MO - (A). * C96008A
SPLIT(TIME_OF) CHANGED VALUE OF DY - (A).
* C96008A SPLIT(TIME_OF) CHANGED VALUE OF SEC - (A). * C96008A TIME_OF()
DID NOT ZERO SECONDS - (C).
* C96008A YEAR() DID NOT RETURN CORRECT VALUE - (D). * C96008A MONTH() DID
NOT RETURN CORRECT VALUE - (D).
* C96008A DAY() DID NOT RETURN CORRECT VALUE - (D).
* C96008A SECONDS() DID NOT RETURN CORRECT VALUE - (D).
**** C96008A FAILED ****************************.
FAIL: c96008a
RUN c96008b
,.,. C96008B ACATS 2.5 12-07-26 09:58:16
---- C96008B CHECK THAT TIME_OF() ADVANCES DAY. * C96008B TIME_OF DID NOT
CONVERT 86_400 SECONDS TO A DAY.
* C96008B DAY OF NOW2 INCORRECT. * C96008B TIME_OF DID NOT ADVANCE DAY.
**** C96008B FAILED ****************************.
FAIL: c96008b
After revision 189441, almost all acats tests fail with the
ADA.CALENDAR.TIME_ERROR.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/53974] [4.8 Regression] Nearly all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603
2012-07-15 15:14 [Bug ada/53974] New: Nearlyt all tests fail with ADA.CALENDAR.TIME_ERROR : a-calend.adb:603 danglin at gcc dot gnu.org
` (10 preceding siblings ...)
2012-07-27 18:17 ` danglin at gcc dot gnu.org
@ 2012-07-27 18:19 ` danglin at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: danglin at gcc dot gnu.org @ 2012-07-27 18:19 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53974
John David Anglin <danglin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |DUPLICATE
--- Comment #12 from John David Anglin <danglin at gcc dot gnu.org> 2012-07-27 18:19:26 UTC ---
Duplicate of 53823.
*** This bug has been marked as a duplicate of bug 53823 ***
^ permalink raw reply [flat|nested] 13+ messages in thread