HIRLAM with -ftree-loop-distribution.

2007-12-16 Thread Toon Moene

Sebastian,






   Here are, in addition, the numbers for compiling and 
running HIRLAM with -ftree-loop-distribution (after applying your patch, 
obviously).


There something weird going on with the count of the loops not 
vectorized - every successfully vectorized loop gets an additional 
message:


note: not vectorized: vectorization may not beprofitable.

which rather defeats the purpose of the not vectorized messages.

In short, almost 1900 more loops are vectorized, but that's of course 
certainly due to the fact that loop distribution *makes* more loops.


In run time it has little (but positive) effect.

Kind regards,

--
Toon Moene - e-mail: [EMAIL PROTECTED] - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.indiv.nluug.nl/~toon/
GNU Fortran's path to Fortran 2003: http://gcc.gnu.org/wiki/Fortran2003
Baseline, no source changes:

Mon Dec 10 17:45:19 UTC 2007 (revision 130746)

Compilation flags:

CCFLAGS := -g -O3 $(MACHINECPP) -ffast-math -fno-associative-math -march=native 
-mtune=native -ftree-vectorizer-verbose=2
FCFLAGS := -g -O3 -fbacktrace -ffpe-trap=invalid,zero,overflow -ffast-math 
-fno-associative-math -march=native -mtune=native -ftree-vectorizer-verbose=2

Loops vectorized:
5675
Loops not vectorized:
13705

Timings:
20061201_00/HL_Cycle_2006120100.html: FORECAST TOOK12.7488 SECONDS
20061201_00/HL_Cycle_2006120100.html: FORECAST TOOK  2445.9609 SECONDS
20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK   259.3362 SECONDS
20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK12.4408 SECONDS
20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK   305.9351 SECONDS
20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK   262.1124 SECONDS
20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK12.7448 SECONDS
20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK  2323.3733 SECONDS
20061201_12r/HL_Cycle_2006120112r.html: FORECAST TOOK   412.7058 SECONDS
20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK   264.5685 SECONDS
20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK12.6648 SECONDS
20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK   306.7352 SECONDS
20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK   261.5164 SECONDS
20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK12.7688 SECONDS
20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK  2325.3774 SECONDS
20061202_00r/HL_Cycle_2006120200r.html: FORECAST TOOK   413.8739 SECONDS

Baseline, no source changes, with -ftree-loop-linear:

Mon Dec 10 17:45:19 UTC 2007 (revision 130746)

Compilation flags:

CCFLAGS := -g -O3 $(MACHINECPP) -ftree-loop-linear -ffast-math 
-fno-associative-math -march=native -mtune=native -ftree-vectorizer-verbose=2
FCFLAGS := -g -O3 -ftree-loop-linear -fbacktrace 
-ffpe-trap=invalid,zero,overflow -ffast-math -fno-associative-math 
-march=native -mtune=native -ftree-vectorizer-verbose=2

This compilation got one ICE:

rttov_aitosu.f90: In function 'rttov_aitosu':
rttov_aitosu.f90:4: error: definition in block 262 does not dominate use in 
block 134
for SSA_NAME: pretmp.240_59 in statement:
prephitmp.220_58 = PHI pretmp.240_59(134), D.1480_1373(138)
PHI argument
pretmp.240_59
for PHI node
prephitmp.220_58 = PHI pretmp.240_59(134), D.1480_1373(138)
rttov_aitosu.f90:4: internal compiler error: verify_ssa failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Worked around by compiling this file without -ftree-loop-linear

Loops vectorized:
5671
Loops not vectorized:
13655

Timings:
20061201_00/HL_Cycle_2006120100.html: FORECAST TOOK12.5648 SECONDS
20061201_00/HL_Cycle_2006120100.html: FORECAST TOOK  2444.1208 SECONDS
20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK   259.3402 SECONDS
20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK12.4728 SECONDS
20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK   307.8672 SECONDS
20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK   260.0323 SECONDS
20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK12.8608 SECONDS
20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK  2310.2485 SECONDS
20061201_12r/HL_Cycle_2006120112r.html: FORECAST TOOK   411.3977 SECONDS
20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK   261.1283 SECONDS
20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK12.7248 SECONDS
20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK   308.1313 SECONDS
20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK   262.7564 SECONDS
20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK12.6528 SECONDS
20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK  2336.5620 SECONDS
20061202_00r/HL_Cycle_2006120200r.html: FORECAST TOOK   410.6577 SECONDS

Baseline, with -ftree-loop-distribution changes:

Mon Dec 10 17:45:19 UTC 2007 (revision 130746M)

Compilation flags:

CCFLAGS := -g -O3 $(MACHINECPP) -ftree-loop-distribution -ffast-math 
-fno-associative-math -march=native -mtune=native 

Re: HIRLAM with -ftree-loop-distribution.

2007-12-16 Thread Uros Bizjak

Hello!

There something weird going on with the count of the loops not 
vectorized - every successfully vectorized loop gets an additional 
message:


note: not vectorized: vectorization may not beprofitable.


This is due to switching on vector cost model by default for x86.

BTW: Attached patch fixed the message by adding the space between be 
and profitable.. Patch was commited to SVN after bootstrappnig on x86_64.


2007-12-16  Uros Bizjak  [EMAIL PROTECTED]

   * tree-vect-transform.c (conservative_cost_threshold): Add missing
   space to not vectorized message.

Uros.

Index: tree-vect-transform.c
===
--- tree-vect-transform.c   (revision 130987)
+++ tree-vect-transform.c   (working copy)
@@ -6552,7 +6552,7 @@
th = (unsigned) min_profitable_iters;

  if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS)) 
-fprintf (vect_dump, not vectorized: vectorization may not be

+fprintf (vect_dump, not vectorized: vectorization may not be 
profitable.);
 
  if (th  vect_print_dump_info (REPORT_DETAILS))




Re: Designs for better debug info in GCC

2007-12-16 Thread Alexandre Oliva
On Dec 16, 2007, Daniel Berlin [EMAIL PROTECTED] wrote:

 There is no portion of the DWARF3 spec which requires you output
 information that is correct or useful. The same way the C standard
 does not require you to write correct programs, only valid ones, the
 DWARF3 spec does not require you to output correct information, only
 information that is encoded properly.

But if a C compiler translated programs to garbage, that would be
wrong.  By the same reasoning, if a Dwarf producer created garbage,
that would be wrong.

It's true that most of Dwarf 3 attributes are optional.  But when it
says if you output this attribute, its operand must be such and
such, if you output the attribute with operands that don't match the
specification, that's a bug.

 It is certainly a goal of DWARF3 to allow producers to provide correct
 info

Exactly.  And where's the permission to provide incorrect info, rather
than merely leaving it out?

 I've heard this intrusiveness argument be pointed out so many times,
 by so many people that claim to not have been able to keep up with the
 thread, and who claim to have not looked at the patches at all, that
 I'm more and more convinced it's just fear of the unknown than any
 actual rational evaluation of the impact of the changes.

 Well, no.
 You yourself have shown it to be intrusiveness in the extreme, in the
 very next paragraphs!

 
 At some point you have to face reality and see that such information
 isn't kept around by magic, it takes some effort, and this effort is
 needed at every location where there are changes that might affect
 debug information.  And that's pretty much everywhere. 

 So, everywhere needs to change. That's pretty intrusiveness, no?

No.  Looks like selective attention, because you're reasoning out the
part in which I discussed using the strength of the optimizers against
the problem, by letting them do what they are already used to on the
debug information too.

If we add a new RTL code or a new TREE code, is that intrusive because
now every optimization pass will deal with the new node types in very
much the same way they've dealt with other similar node types forever?
Of course not.

And if we have to add a few exceptions here and there to deal with the
specifics of this new node type, does that become too intrusive then?
I don't think so.

Then what's the fuss about the new node types?  Do you want to count
the number of places in which INSN_P remains there, lexically
unchanged, and compare with the number of places in which I've added a
!DEBUG_INSN_P after it?

 Having to stop and think at every point in an optimization about the
 debug info,

Well, sorry, writing compilers is hard.  You have to think about
several things at the same time.  Shall we just go shopping instead?

I'm trying to make it as simple as possible.  The fact that nearly
100% of the code is unchanged seems to indicate to me that it's not
such a bad an approach, but if you want something that just magically
works, you're up for much disappointment.

 (having to stop and think about debug info at every single point of
 every single optimization).

Information doesn't come out of thin air, and thin air doesn't
maintain information accurate just because we wish it does.  We have
to work to create and update the information throughout compilation,
at every transformation, and my reasoning is precisely that optimizers
already do this all the time, so why not use them for what we need?

 You don't need to be this intrusiveness to stop outputting the
 incorrect info we do.

What do you have to back your statement up?

Let me help you: sure we don't.  We can just refrain from outputting
any debug information whatsoever.  Then, it will be compliant with the
standard.  But it won't be useful.

 I've never seen this documented as such, and we've never worked toward
 these stated goals.

 Who is we?
 I certainly have worked exactly towards these goals.
 As have almost all the authors of the current debugging info
 framework.

Oh, wow, I guess I just wasn't welcome into the club, because I didn't
get the guidelines book.  How unfortunate, now I have to give up my
plan of doing better and abide by the unpublished and undocumented
goals of some small cabal.  Or do I?

 If you look in the mailing list archives, you will even discover Diego
 is not the first one have exactly the viewpoint about what should and
 should not be debuggable, and that the community has consistenly
 worked towards exactly the viewpoint diego describes.

I've seen several different viewpoints from the community.

 Anyway, I give up on reading this thread.  It has turned into a mess.
 You really need to step back

Oh, do I?  Why is that?

 and see that you have not achieved any sort of consensus of what
 levels of optimization should be how debuggable,

Why would I expect to get any consensus on that?  I haven't even
tried, and I won't.  This is not what the issue is about.  The issue
is about not emitting incorrect 

Re: Rant about ChangeLog entries and commit messages

2007-12-16 Thread Alexandre Oliva
On Dec 16, 2007, NightStrike [EMAIL PROTECTED] wrote:

 On 12/15/07, Alexandre Oliva [EMAIL PROTECTED] wrote:
 ... a good example of compliance with the GPL:
 
 5. Conveying Modified Source Versions.
 
 a) The work must carry prominent notices stating that you modified
 it, and giving a relevant date.

 Maybe Changelogs should be reserved for important changes.  For
 instance, something like Fixed a typo is a complete waste.  I doubt
 anyone looks ta a Changelog to see if someone fixed a typo recently or
 at any point in the past.

I've done that, while backporting patches.  Oftentimes there are small
fixes on top of larger patches, and you want to credit those who made
the small fixes, and you want to be sure you caught them next time you
look at the patch.  ChangeLogs for these are useful for this purpose.

 Perhaps there could be some criteria so that not every single iota
 gets a log entry.

How would leaving changes out comply with 5a above?

-- 
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member http://www.fsfla.org/
Red Hat Compiler Engineer   [EMAIL PROTECTED], gcc.gnu.org}
Free Software Evangelist  [EMAIL PROTECTED], gnu.org}


Re: HIRLAM with -ftree-loop-distribution.

2007-12-16 Thread Toon Moene

Uros Bizjak wrote:


note: not vectorized: vectorization may not beprofitable.


This is due to switching on vector cost model by default for x86.


Ah, but my hidden critique of the message was: 
-ftree-vectorizer-verbose=2 should *only* tell us:


1. Which loops are vectorized.
2. Which are not - and why (in a single sentence).

For more detailed logging, one should use -ftree-vectorizer-verbose=n 
with n2, IMNSHO.


Kind regards,

--
Toon Moene - e-mail: [EMAIL PROTECTED] - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.indiv.nluug.nl/~toon/
GNU Fortran's path to Fortran 2003: http://gcc.gnu.org/wiki/Fortran2003


libgfortran, libgomp not compiled with BOOT_CFLAGS.

2007-12-16 Thread Toon Moene

L.S.,

Recently, I've begun to bootstrap with make BOOT_CFLAGS=flags, 
basically to get the run time libraries (libgfortran, libgomp) compiled 
with -mcpu=native -mtune=native (the speed of the compiler doesn't 
interest me that much).


However, I see that almost everything is compiled with -mcpu=native 
-mtune=native, *except* the run time libraries ...


Is that because they're target libraries - if so, how would one get them 
compiled optimally if not building a cross-compiler ?


Thanks in advance for any insight.

--
Toon Moene - e-mail: [EMAIL PROTECTED] - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.indiv.nluug.nl/~toon/
GNU Fortran's path to Fortran 2003: http://gcc.gnu.org/wiki/Fortran2003


Re: HIRLAM with -ftree-loop-distribution.

2007-12-16 Thread Dorit Nuzman
 Uros Bizjak wrote:

  note: not vectorized: vectorization may not beprofitable.
 
  This is due to switching on vector cost model by default for x86.

 Ah, but my hidden critique of the message was:
 -ftree-vectorizer-verbose=2 should *only* tell us:

 1. Which loops are vectorized.
 2. Which are not - and why (in a single sentence).

 For more detailed logging, one should use -ftree-vectorizer-verbose=n
 with n2, IMNSHO.


yes, you are right. this printing should be either removed (as it's anyhow
already being printed also under REPORT_DETAILS), or we may want to add a
new verbosity level (lower than REPORT_DETAILS) for cost-model info
(REPORT_COST).

dorit

 Kind regards,

 --
 Toon Moene - e-mail: [EMAIL PROTECTED] - phone: +31 346 214290
 Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
 At home: http://moene.indiv.nluug.nl/~toon/
 GNU Fortran's path to Fortran 2003: http://gcc.gnu.org/wiki/Fortran2003



Re: HIRLAM and -ftree-loop-linear

2007-12-16 Thread Toon Moene

Sebastian Pop wrote:

 I wrote:


rttov_aitosu.f90: In function 'rttov_aitosu':
rttov_aitosu.f90:4: error: definition in block 262 does not dominate use in 
block 134

Worked around by compiling this file without -ftree-loop-linear



Could you verify that the attached patch fixes also this problem?


Unfortunately, it doesn't; I get exactly the same error message as before.

Kind regards,

--
Toon Moene - e-mail: [EMAIL PROTECTED] - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.indiv.nluug.nl/~toon/
GNU Fortran's path to Fortran 2003: http://gcc.gnu.org/wiki/Fortran2003


RE: Help with another constraint

2007-12-16 Thread Hans-Peter Nilsson
On Wed, 12 Dec 2007, Dave Korn wrote:

 On 12 December 2007 12:14, Revital1 Eres wrote:

  It seems that the pair m and I is missing (which indicate the memory =
  constant instruction).

   So doesn't the question then become Why isn't reload reloading the constant
 into a register?

Yes.  And the answer AFAIK is because it doesn't see a way to
move a constant into a register; it understands r, not p and
q.

So bviyer, add an r alternative.  See also the * and #
qualifiers.  No need for bogus 0 -to- memory alternatives.

brgds, H-P


Re: HIRLAM and -ftree-loop-linear

2007-12-16 Thread Dorit Nuzman
 Sebastian,

 Here are (attached) results for testing HIRLAM with and without
 -ftree-loop-linear.

 As you can see, the results are neutral:  4 loops fewer vectorized, but
 about 50 fewer recognized.


any chance you kept the dumps and can report which loops were not
vectorized/recognized with -ftree-loop-linear (so we could see if these
represent missed vectorization opportunities?)

thanks,
dorit

 Now I like to redo that test with -ftree-loop-distribution.  Can you
 send me a patch against the trunk (otherwise it won't be a fair
comparison).

 Kind regards,

 --
 Toon Moene - e-mail: [EMAIL PROTECTED] - phone: +31 346 214290
 Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
 At home: http://moene.indiv.nluug.nl/~toon/
 GNU Fortran's path to Fortran 2003: http://gcc.gnu.org/wiki/Fortran2003
 Baseline, no source changes:

 Mon Dec 10 17:45:19 UTC 2007 (revision 130746)

 Compilation flags:

 CCFLAGS := -g -O3 $(MACHINECPP) -ffast-math -fno-associative-math -
 march=native -mtune=native -ftree-vectorizer-verbose=2
 FCFLAGS := -g -O3 -fbacktrace -ffpe-trap=invalid,zero,overflow -
 ffast-math -fno-associative-math -march=native -mtune=native -ftree-
 vectorizer-verbose=2

 Loops vectorized:
 5675
 Loops not vectorized:
 13705

 Timings:
 20061201_00/HL_Cycle_2006120100.html: FORECAST TOOK12.7488 SECONDS
 20061201_00/HL_Cycle_2006120100.html: FORECAST TOOK  2445.9609 SECONDS
 20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK   259.3362 SECONDS
 20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK12.4408 SECONDS
 20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK   305.9351 SECONDS
 20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK   262.1124 SECONDS
 20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK12.7448 SECONDS
 20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK  2323.3733 SECONDS
 20061201_12r/HL_Cycle_2006120112r.html: FORECAST TOOK   412.7058 SECONDS
 20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK   264.5685 SECONDS
 20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK12.6648 SECONDS
 20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK   306.7352 SECONDS
 20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK   261.5164 SECONDS
 20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK12.7688 SECONDS
 20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK  2325.3774 SECONDS
 20061202_00r/HL_Cycle_2006120200r.html: FORECAST TOOK   413.8739 SECONDS

 Baseline, no source changes, with -ftree-loop-linear:

 Mon Dec 10 17:45:19 UTC 2007 (revision 130746)

 Compilation flags:

 CCFLAGS := -g -O3 $(MACHINECPP) -ftree-loop-linear -ffast-math -fno-
 associative-math -march=native -mtune=native -ftree-vectorizer-verbose=2
 FCFLAGS := -g -O3 -ftree-loop-linear -fbacktrace -ffpe-trap=invalid,
 zero,overflow -ffast-math -fno-associative-math -march=native -
 mtune=native -ftree-vectorizer-verbose=2

 This compilation got one ICE:

 rttov_aitosu.f90: In function 'rttov_aitosu':
 rttov_aitosu.f90:4: error: definition in block 262 does not dominate
 use in block 134
 for SSA_NAME: pretmp.240_59 in statement:
 prephitmp.220_58 = PHI pretmp.240_59(134), D.1480_1373(138)
 PHI argument
 pretmp.240_59
 for PHI node
 prephitmp.220_58 = PHI pretmp.240_59(134), D.1480_1373(138)
 rttov_aitosu.f90:4: internal compiler error: verify_ssa failed
 Please submit a full bug report,
 with preprocessed source if appropriate.
 See http://gcc.gnu.org/bugs.html for instructions.

 Worked around by compiling this file without -ftree-loop-linear

 Loops vectorized:
 5671
 Loops not vectorized:
 13655

 Timings:
 20061201_00/HL_Cycle_2006120100.html: FORECAST TOOK12.5648 SECONDS
 20061201_00/HL_Cycle_2006120100.html: FORECAST TOOK  2444.1208 SECONDS
 20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK   259.3402 SECONDS
 20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK12.4728 SECONDS
 20061201_06/HL_Cycle_2006120106.html: FORECAST TOOK   307.8672 SECONDS
 20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK   260.0323 SECONDS
 20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK12.8608 SECONDS
 20061201_12/HL_Cycle_2006120112.html: FORECAST TOOK  2310.2485 SECONDS
 20061201_12r/HL_Cycle_2006120112r.html: FORECAST TOOK   411.3977 SECONDS
 20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK   261.1283 SECONDS
 20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK12.7248 SECONDS
 20061201_18/HL_Cycle_2006120118.html: FORECAST TOOK   308.1313 SECONDS
 20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK   262.7564 SECONDS
 20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK12.6528 SECONDS
 20061202_00/HL_Cycle_2006120200.html: FORECAST TOOK  2336.5620 SECONDS
 20061202_00r/HL_Cycle_2006120200r.html: FORECAST TOOK   410.6577 SECONDS



Re: HIRLAM with -ftree-loop-distribution.

2007-12-16 Thread Dorit Nuzman
Here's a tentative patch to do that:
- removes the confusing printing not vectorized: vectorization may not be
profitable from REPORT_UNVECTORIZED_LOOPS
- instead print vectorization may not be profitable under a new verbosity
level REPORT_COST
- change (hopefully all) other cost-model printings to be printed under
REPORT_COST

I'll test it later this week. I assume this kind of thing is an ok stage 3
material (it's a regression fix cause this confusion in the dump reports
was introduced with the cost model patches during 4.3)

dorit

--- tree-vect-transform.c   2007-12-16 14:09:20.0 +0200
+++ tree-vect-transform.cost_verbose.c  2007-12-16 16:07:09.0 +0200
@@ -134,7 +134,7 @@
   /* Cost model disabled.  */
   if (!flag_vect_cost_model)
 {
-  if (vect_print_dump_info (REPORT_DETAILS))
+  if (vect_print_dump_info (REPORT_COST))
 fprintf (vect_dump, cost model disabled.);:
   return 0;
 }
@@ -153,7 +153,7 @@
   /*  FIXME: Make cost depend on complexity of individual check.  */
   vec_outside_cost +=
 VEC_length (tree, LOOP_VINFO_MAY_MISALIGN_STMTS (loop_vinfo));
-  if (vect_print_dump_info (REPORT_DETAILS))
+  if (vect_print_dump_info (REPORT_COST))
 fprintf (vect_dump, cost model: Adding cost of checks for loop 
  versioning to treat misalignment.\n);
 }
@@ -163,7 +163,7 @@
   /*  FIXME: Make cost depend on complexity of individual check.  */
   vec_outside_cost +=
 VEC_length (ddr_p, LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo));.
-  if (vect_print_dump_info (REPORT_DETAILS))
+  if (vect_print_dump_info (REPORT_COST))
 fprintf (vect_dump, cost model: Adding cost of checks for loop 
  versioning aliasing.\n);
 }
@@ -224,14 +224,14 @@
   if (byte_misalign  0)
 {
   peel_iters_prologue = vf/2;
-  if (vect_print_dump_info (REPORT_DETAILS))
+  if (vect_print_dump_info (REPORT_COST))
 fprintf (vect_dump, cost model: 
  prologue peel iters set to vf/2.);

   /* If peeling for alignment is unknown, loop bound of main loop
becomes
  unknown.  */
   peel_iters_epilogue = vf/2;
-  if (vect_print_dump_info (REPORT_DETAILS))
+  if (vect_print_dump_info (REPORT_COST))
 fprintf (vect_dump, cost model: 
  epilogue peel iters set to vf/2 because 
  peeling for alignment is unknown .);
@@ -261,7 +261,7 @@
   if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo))
 {
   peel_iters_epilogue = vf/2;
-  if (vect_print_dump_info (REPORT_DETAILS))
+  if (vect_print_dump_info (REPORT_COST))
 fprintf (vect_dump, cost model: 
  epilogue peel iters set to vf/2 because 
  loop iterations are unknown .);
@@ -391,7 +391,7 @@
   /* vector version will never be profitable.  */
   else
 {
-  if (vect_print_dump_info (REPORT_DETAILS))
+  if (vect_print_dump_info (REPORT_COST))
 fprintf (vect_dump, cost model: vector iteration cost = %d 
  is divisible by scalar iteration cost = %d by a factor 
  greater than or equal to the vectorization factor =
%d .,
@@ -399,7 +399,7 @@
   return -1;
 }

-  if (vect_print_dump_info (REPORT_DETAILS))
+  if (vect_print_dump_info (REPORT_COST))
 {
   fprintf (vect_dump, Cost model analysis: \n);
   fprintf (vect_dump,   Vector inside of loop cost: %d\n,
@@ -425,7 +425,7 @@
then skip the vectorized loop.  */
   min_profitable_iters--;

-  if (vect_print_dump_info (REPORT_DETAILS))
+  if (vect_print_dump_info (REPORT_COST))
 fprintf (vect_dump,   Profitability threshold = %d\n,
 min_profitable_iters);

@@ -465,7 +465,7 @@
   vectype = get_vectype_for_scalar_type (TREE_TYPE (reduction_op));
   if (!vectype)
 {
-  if (vect_print_dump_info (REPORT_DETAILS))
+  if (vect_print_dump_info (REPORT_COST))
 {
   fprintf (vect_dump, unsupported data-type );
   print_generic_expr (vect_dump, TREE_TYPE (reduction_op),
TDF_SLIM);
@@ -520,7 +520,7 @@

   STMT_VINFO_OUTSIDE_OF_LOOP_COST (stmt_info) = outer_cost;

-  if (vect_print_dump_info (REPORT_DETAILS)))
+  if (vect_print_dump_info (REPORT_COST))
 fprintf (vect_dump, vect_model_reduction_cost: inside_cost = %d, 
  outside_cost = %d ., STMT_VINFO_INSIDE_OF_LOOP_COST
(stmt_info),
  STMT_VINFO_OUTSIDE_OF_LOOP_COST (stmt_info));
@@ -541,7 +541,7 @@
   /* prologue cost for vec_init and vec_step.  */
   STMT_VINFO_OUTSIDE_OF_LOOP_COST (stmt_info) = 2 *
TARG_SCALAR_TO_VEC_COST;

-  if (vect_print_dump_info (REPORT_DETAILS)))
+  if (vect_print_dump_info (REPORT_COST))
 fprintf (vect_dump, vect_model_induction_cost: inside_cost = %d, 
  outside_cost = %d ., STMT_VINFO_INSIDE_OF_LOOP_COST
(stmt_info),
  STMT_VINFO_OUTSIDE_OF_LOOP_COST (stmt_info));
@@ -570,7 +570,7 @@

Re: porting gcc to tic54x

2007-12-16 Thread Hans-Peter Nilsson
On Wed, 12 Dec 2007, a2220333 wrote:

 hi,
 I have been porting tic54x to gcc. I use gcc-4.2.2 version. I write some 
 simplest c54x.h and c54x.c and a empty md, and I

I think the answer is right there   
  ^^

 compile it to generate the tic54x-gcc compiler.

 But when I execute the compiler I generate I got a segmentation fault error. 
 Is there anything must be define in c54x.c or
 c54x.h that could make the simplest compiler with no correct output and no 
 errors? Because I want to add functions from this
 basic port.

If that wasn't the bug, I suggest you start up gdb and step
through cc1, but I'd be surprised if you get anywhere without
the prerequisite move, add, and control flow insns in the .md.

brgds, H-P


Re: HIRLAM and -ftree-loop-linear

2007-12-16 Thread Toon Moene

Dorit Nuzman wrote:


any chance you kept the dumps and can report which loops were not
vectorized/recognized with -ftree-loop-linear (so we could see if these
represent missed vectorization opportunities?)


I haven't, but it wouldn't be too much effort do this.

I'll try stage 1 tonight - i.e., to establish a base (with the latest 
trunk check-out, not using -ftree-loop-linear), and then subsequently 
using that flag.


Kind regards,

--
Toon Moene - e-mail: [EMAIL PROTECTED] - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.indiv.nluug.nl/~toon/
GNU Fortran's path to Fortran 2003: http://gcc.gnu.org/wiki/Fortran2003


RE: Help with another constraint

2007-12-16 Thread Hans-Peter Nilsson
On Sun, 16 Dec 2007, Hans-Peter Nilsson wrote:
 On Wed, 12 Dec 2007, Dave Korn wrote:

  On 12 December 2007 12:14, Revital1 Eres wrote:
 
   It seems that the pair m and I is missing (which indicate the memory =
   constant instruction).
 
So doesn't the question then become Why isn't reload reloading the 
  constant
  into a register?

 Yes.  And the answer AFAIK is because it doesn't see a way to
 move a constant into a register; it understands r, not p and
 q.

I think I have to correct myself; register allocation and reload
*should* understand p and q as register constraints, given e.g.
a correct REG_CLASS_FROM_LETTER definition and correct regclass
macros.  The latter were not disclosed and are usually a source
of hard-to-find errors.

Besides, if you can't directly move between p and q (as your
constraints indicate) then as Rask says, you also need to tell
GCC through the secondary-reload mechanisms.

I can't help but thinking the best suggetion is for bviyer to
let gdb answer the question by stepping through cc1 instead of
relying on indirect debugging.  That's what people do. ;)

brgds, H-P


Re: HIRLAM with -ftree-loop-distribution.

2007-12-16 Thread Sebastian Pop
On Dec 16, 2007 4:24 AM, Toon Moene [EMAIL PROTECTED] wrote:
 Here are, in addition, the numbers for compiling and
 running HIRLAM with -ftree-loop-distribution (after applying your patch,
 obviously).

 In short, almost 1900 more loops are vectorized, but that's of course
 certainly due to the fact that loop distribution *makes* more loops.

 In run time it has little (but positive) effect.


Wow! Thanks for the numbers.  I guess from your message that there
were no ICEs or other problems with the loop distribution patch.

Mark, is the loop distribution patch okay for trunk?

Thanks,
Sebastian
-- 
AMD - GNU Tools


Problem with SSA inlining and default defs

2007-12-16 Thread Eric Botcazou
Hi,

How SSA inlining and default defs for uninitialized variables are supposed to 
interact?  Suppose you have the following situation

BB0 ...
 |   \
(ab) |BB1 s_2 = f(s_1(D))
 |   /
BB2 s_3 = PHI s_1(D), s2

in a function that gets inlined into a loop.  The liveness of s_1(D) in BB0 
will propagate to BB2 along the backwards edge and you get overlapping live 
ranges for s_1(D) and s_3.  If s_1(D) is SSA_NAME_OCCURS_IN_ABNORMAL_PHI, the 
compilation will abort during SSA coalescing because they must be coalesced.

This is on the mainline, Ada testcase attached, run 'gnatchop' on it and 
compile at -O -gnatp.

Thanks in advance.

-- 
Eric Botcazou
package Q is

procedure Read(S : out Integer);
procedure Restore(S : in out Integer);

end Q;
package P is

type Int_Ptr is access all Integer;
procedure Exec(P : Int_Ptr);

end P;
with Q; use Q;

package body P is

procedure Lock is
S : Integer;
begin
Read(S);
Restore(S);
exception
when others = Restore(S);
end;

procedure Exec(P : Int_Ptr) is
begin
while P /= NULL loop
Lock;
end loop;
end;

end P;


Re: Problem with SSA inlining and default defs

2007-12-16 Thread Jakub Jelinek
On Sun, Dec 16, 2007 at 06:54:29PM +0100, Eric Botcazou wrote:
 How SSA inlining and default defs for uninitialized variables are supposed to 
 interact?  Suppose you have the following situation
 
 BB0 ...
  |   \
 (ab) |BB1 s_2 = f(s_1(D))
  |   /
 BB2 s_3 = PHI s_1(D), s2
 
 in a function that gets inlined into a loop.  The liveness of s_1(D) in BB0 
 will propagate to BB2 along the backwards edge and you get overlapping live 
 ranges for s_1(D) and s_3.  If s_1(D) is SSA_NAME_OCCURS_IN_ABNORMAL_PHI, the 
 compilation will abort during SSA coalescing because they must be coalesced.

This sounds like PR31081.

Jakub


Re: Problem with SSA inlining and default defs

2007-12-16 Thread Eric Botcazou
 This sounds like PR31081.

Indeed, the C++ testcase is the exact translation of my Ada testcase. :-)

The problem seems to arise relatively often in Ada, I think the PR should be 
made critical.

-- 
Eric Botcazou


Re: libgfortran, libgomp not compiled with BOOT_CFLAGS.

2007-12-16 Thread Serge Belyshev
Toon Moene [EMAIL PROTECTED] writes:

 L.S.,

 Recently, I've begun to bootstrap with make BOOT_CFLAGS=flags,
 basically to get the run time libraries (libgfortran, libgomp)
 compiled with -mcpu=native -mtune=native (the speed of the compiler
 doesn't interest me that much).

 However, I see that almost everything is compiled with -mcpu=native
 -mtune=native, *except* the run time libraries ...

 Is that because they're target libraries - if so, how would one get
 them compiled optimally if not building a cross-compiler ?
Yeah, try adding appropriate FCFLAGS into environment.

Also CXXFLAGS, GCJFLAGS affect some of resulting binaries or libraries
when bootstrapping, and CFLAGS (don't remember about this one for sure).


Re: Rant about ChangeLog entries and commit messages

2007-12-16 Thread NightStrike
On 12/16/07, Alexandre Oliva [EMAIL PROTECTED] wrote:
 On Dec 16, 2007, NightStrike [EMAIL PROTECTED] wrote:

  On 12/15/07, Alexandre Oliva [EMAIL PROTECTED] wrote:
  ... a good example of compliance with the GPL:
 
  5. Conveying Modified Source Versions.
 
  a) The work must carry prominent notices stating that you modified
  it, and giving a relevant date.

  Maybe Changelogs should be reserved for important changes.  For
  instance, something like Fixed a typo is a complete waste.  I doubt
  anyone looks ta a Changelog to see if someone fixed a typo recently or
  at any point in the past.

 I've done that, while backporting patches.  Oftentimes there are small
 fixes on top of larger patches, and you want to credit those who made
 the small fixes, and you want to be sure you caught them next time you
 look at the patch.  ChangeLogs for these are useful for this purpose.

  Perhaps there could be some criteria so that not every single iota
  gets a log entry.

 How would leaving changes out comply with 5a above?

It wouldn't without some creative interpretations.


Re: HIRLAM with -ftree-loop-distribution.

2007-12-16 Thread Toon Moene

Sebastian Pop wrote:



Wow! Thanks for the numbers.  I guess from your message that there
were no ICEs or other problems with the loop distribution patch.


Exactly.

--
Toon Moene - e-mail: [EMAIL PROTECTED] - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.indiv.nluug.nl/~toon/
GNU Fortran's path to Fortran 2003: http://gcc.gnu.org/wiki/Fortran2003


Re: Problem with SSA inlining and default defs

2007-12-16 Thread Jakub Jelinek
On Sun, Dec 16, 2007 at 07:11:49PM +0100, Eric Botcazou wrote:
  This sounds like PR31081.
 
 Indeed, the C++ testcase is the exact translation of my Ada testcase. :-)
 
 The problem seems to arise relatively often in Ada, I think the PR should be 
 made critical.

Yeah, to me this looks like the most worrisome P1 4.3 regression.

Jakub


Re: Problem with posix threads

2007-12-16 Thread Lucas Prado Melo
 Please forgive me if this is off-topic:
 I've written a simple test program with posix threads and a 'glibc'
attempt was detected.

 The code:


 -main.c---

 #include stdio.h
 #include stdlib.h
 #include pthread.h
 #include sys/socket.h
 #include sys/types.h
 #include errno.h
 #include unistd.h
 #include stack.c

 /*
  * THREAD EXPERIMENT
  *
  * There are various threads:
  * I, II and main
  * thread I repeatly pushes to 'stck' a value (NTIMES times)
  * thread II then pop repeatly and show the value (NTIMES-1 times)
  * main thread then pushes the last values and quit
  */
 #define NTIMES 1000
 #define die(msg) do { perror(msg); exit(1); } while(0)

 void * doPush(void * data);
 void * doPop(void * data);

 struct pack{
 Stack stck;
 pthread_mutex_t mutex;
 };

 int main(int argc, char *argv[]){
 void *trashbin;
 pthread_t peer[2];
 struct pack pck;
 //initialize pck mutex
 if( pthread_mutex_init(( pck.mutex), NULL) != 0 )
 die(pthread_mutex_init);

 //and make it multi-threaded
 if( pthread_create(peer[0], NULL, doPush, (void*)pck) != 0 )
 die(pthread_create);
 if( pthread_create(peer[1], NULL, doPop, (void*)pck) != 0 )
 die(pthread_create);
 //wait all threads do their stuff
 pthread_join(peer[0],trashbin);
 pthread_join(peer[1],trashbin);

 pthread_mutex_lock( (pck.mutex) );
 printf(Last one: %c\n, pop( (pck.stck) ));
 pthread_mutex_unlock( (pck.mutex) );

 //destroy pck mutex
 if( pthread_mutex_destroy( ( pck.mutex) ) != 0 )
 die(pthread_mutex_destroy);
 return 0;
 }
 void * doPush(void * data){
 struct pack * pck = (struct pack *)data;
 int x;
 for(x=0;xNTIMES;x++){
 int chr;
 chr = x%('z'-'a'+1);
 chr += 'a';
 //try to push the data... using mutex!
 pthread_mutex_lock( (pck-mutex) );
 push( (pck-stck), (void*)chr );
 pthread_mutex_unlock( (pck-mutex) );
 }
 pthread_exit( NULL );
 }
 void * doPop(void * data){
 struct pack * pck = (struct pack *)data;
 int x;
 for(x=0;x(NTIMES-1);x++){
 pthread_mutex_lock( (pck-mutex) );
 printf(%c , pop( (pck-stck) ) );
 pthread_mutex_unlock( (pck-mutex) );
 }
 printf(\n);
 pthread_exit( NULL );
 }


 --

 -stack.c---
 #ifndef STACK_C
 #define STACK_C 1
 #include stdlib.h


 struct stack {
 void * el;
 struct stack *next;
 };

 typedef struct stack * Stack;

 void stackInit(Stack * stck){
 *stck = NULL;
 return;
 }
 //pushes an element to the stack
 void push(Stack * stck, void * el){
 struct stack * ne;
 ne = malloc(sizeof(struct stack));
 ne-el = el;
 ne-next = *stck;
 *stck = ne;
 return;
 }

 //pops an element from stack
 //return NULL if there's no element in the stack
 void * pop(Stack * stck){
 struct stack * de;
 void * el;
 de = *stck;
 *stck = (*stck)-next;
 if(de != NULL ){
 el = de-el;
 free(de);
 }
 else
 el = NULL;
 return el;
 }

 #endif
 --


unable to find a register to spill in class ‘MD_REGS’

2007-12-16 Thread Rodrigo González Alberquilla
Dear GCC Developers/Users,

I am working on a port of a target backend to PISA architecture (a MIPS-IV like 
ISA used by the SimpleScalar simulator). When compiling libgcc2 for __muldi3:

#ifdef L_muldi3
DWtype
__muldi3 (DWtype u, DWtype v)
{
  const DWunion uu = {.ll = u};
  const DWunion vv = {.ll = v};
  DWunion w = {.ll = __umulsidi3 (uu.s.low, vv.s.low)};

  w.s.high += ((UWtype) uu.s.low * (UWtype) vv.s.high
   + (UWtype) uu.s.high * (UWtype) vv.s.low);

  return w.ll;
}
#endif

I get the following error:
../.././gcc/libgcc2.c: In function ‘__muldi3’:
../.././gcc/libgcc2.c:542: error: unable to find a register to spill in class 
‘MD_REGS’
../.././gcc/libgcc2.c:542: error: este es el insn:
(insn 37 36 38 2 (set (reg:DI 116)
(mult:DI (zero_extend:DI (reg:SI 3 v1 [orig:117 __ul ] [117]))
(zero_extend:DI (reg:SI 2 v0 [orig:118 __vl ] [118] 14 
{umulsidi3_32bit_internal} (nil)
(expr_list:REG_DEAD (reg:SI 3 v1 [orig:117 __ul ] [117])
(expr_list:REG_DEAD (reg:SI 2 v0 [orig:118 __vl ] [118])
(nil

I have compile it with -da and the dumps are:

greg:
Spilling for insn 37.
Using reg 4 for reload 0
reload failure for reload 1

Reloads for insn # 37
Reload 0: GR_REGS, RELOAD_FOR_OUTPUT_ADDRESS (opnum = 0), can't combine, 
secondary_reload_p
Reload 1: reload_out (DI) = (reg:DI 116)
MD_REGS, RELOAD_FOR_OUTPUT (opnum = 0)
reload_out_reg: (reg:DI 116)
secondary_out_reload = 0

lreg:
[...]
  Register 116 costs: LEA_REGS:1000 GR_REGS:1000 MEM:8000
[...]
Register 116 used 2 times across 2 insns in block 2; set 1 time; 8 bytes; 
NO_REGS or none.
[...]
(insn 37 36 38 2 (set (reg:DI 116)
(mult:DI (zero_extend:DI (reg:SI 117 [ __ul ]))
(zero_extend:DI (reg:SI 118 [ __vl ] 14 
{umulsidi3_32bit_internal} (nil)
(expr_list:REG_DEAD (reg:SI 117 [ __ul ])
(expr_list:REG_DEAD (reg:SI 118 [ __vl ])
(nil
[...]

I have read a thread of a guy having a paroblem like this but it has not helped 
me. If anybody would tell me where the problem could be, I would be very 
pleased.

Regards,
Rodrigo González


Re: Designs for better debug info in GCC

2007-12-16 Thread Mark Mitchell
Alexandre Oliva wrote:

 Yes, please.  I would very much like to see an abstract design
 document on what you are trying to accomplish.
 
 Other than the ones I've already posted, here's one:
 
 http://dwarfstd.org/Dwarf3Std.php
 
 Seriously.  There is a standard for this stuff. 

That's the specification for the encoding format.  I agree with you that
emitting incorrect debugging information, in the sense of declaring that
the location of a variable is in one place, even though its value is not
available in that place, is bad.  In -O0 code, I consider it a serious bug.

In -O2 code, I think it's still a bug, but with our current
infrastructure, we may have little choice: we either deny all knowledge
of the variable's location, or give one that's sometimes incorrect.
Which alternative is better depends on what you're trying to do with the
information; for interactive debugging, mostly-right is probably better
than nothing, whereas for some programmatic activities, the opposite may
be true.

If your goal is to avoid the information ever being wrong -- without
worrying about whether it is complete -- there is of course a trivial
solution: do not emit the information.  That is not a serious
suggestion, but it does provide a path to a serious suggestion, which I
gave earlier: conservatively emit location information you provide based
on what you can prove at the time you generate debugging information.
For example, if the value of x is in a register, and you cross a call
which might clobber that register value, then emit debugging information
that says that at that point the value is unavailable.  You could
probably do this kind of thing with relatively few changes to the GCC
internal representation; you would run a pass before debug-information
generation that attempted to prove dataflow properties about variables
and told you where values could reliably be found.

Your earlier messages, however, suggest that you are trying to do
something harder: emit information that is essentially both complete (in
the sense of providing as much information as possible about the
locations and values of variables) and correct (in the sense of never
giving incorrect information).  If you want to do that, you're going to
have to answer the harder questions, like what line number corresponds
to this address? and what should the debugging information say that
the value of a variable is when it has been optimized away?

If that's still your goal, then pointing at the DWARF3 specification
doesn't help.  Diego and I are asking you to confront these fundamental
questions about what information you want to provide and what the
correctness criteria are.

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: Problem with posix threads

2007-12-16 Thread Lucas Prado Melo
Why does it happen?


Re: Problem with posix threads

2007-12-16 Thread Daniel Jacobowitz
On Sun, Dec 16, 2007 at 07:20:37PM -0300, Lucas Prado Melo wrote:
 Why does it happen?

This list is for the development of GCC.  Try gcc-help or some other
programming forum, please.

-- 
Daniel Jacobowitz
CodeSourcery


Re: Designs for better debug info in GCC

2007-12-16 Thread Daniel Berlin
 It is obvious that you misunderstood what I want, and how intrusive
 the approach is.


Yes Alexandre, everyone who disagrees with you must not understand!
That's really the problem here.
None of us understand but you.


Re: Designs for better debug info in GCC

2007-12-16 Thread Joe Buck
On Sun, Dec 16, 2007 at 08:12:07PM -0500, Daniel Berlin wrote:
  It is obvious that you misunderstood what I want, and how intrusive
  the approach is.
 
 
 Yes Alexandre, everyone who disagrees with you must not understand!
 That's really the problem here.
 None of us understand but you.

I have some sympathy for going in Alexandre's direction, in that it
would be nice to have a mode that provided optimization as well as
accurate debugging.  However, since preserving accurate debug information
has a cost, I think it would be better to turn -O1, not -O2, into the
mode that Alexandre wants, where debug information is preserved.  Trying
to rework all optimizations to keep perfect debug information is going
to take forever and make the compiler worse.


Re: Designs for better debug info in GCC

2007-12-16 Thread Geert Bosch


On Dec 16, 2007, at 20:27, Joe Buck wrote:

I have some sympathy for going in Alexandre's direction, in that it
would be nice to have a mode that provided optimization as well as
accurate debugging.  However, since preserving accurate debug  
information

has a cost, I think it would be better to turn -O1, not -O2, into the
mode that Alexandre wants, where debug information is preserved.   
Trying

to rework all optimizations to keep perfect debug information is going
to take forever and make the compiler worse.


Right, at the moment -O1 is far too much like -O2.
There is room for an optimization mode that is mostly local,
scales well far large programs and allows for high-quality debug
information. Fortunately, these goals seem all to match.

We could conceptually have inspection points between each source
statement and declaration, which would roughly correspond to a
use of all memory and all source variables, wether in memory or
in registers.
These inspections points would be considered potentially trapping.

This approach would still allow some scheduling. For example, loads
and arithmetic operations that are known not to trap could still
be done early. On the other hand, when breaking at any statement,
all variables can be printed.

Also, since no user-visible state can be modified by speculatively
executed instructions such as loads, such instructions should not
be tagged with their original source location information.
This would prevent the very annoying and unhelpful jumping around
the program during debugging.

The method I describe here, which roughly corresponds to the semantics
of Ada's pragma Inspection_Point, seems relatively easy to implement
using an empty asm or similar.

  -Geert

PS. For convenience, I'm including a snippet of the Ada 2005 standard,
the full version of which is freely available on the web.


H.3.2 Pragma Inspection_Point

1 An occurrence of a pragma Inspection_Point identifies a set of  
objects

each of whose values is to be available at the point(s) during program
execution corresponding to the position of the pragma in the  
compilation unit.

The purpose of such a pragma is to facilitate code validation.


   Syntax

2 The form of a pragma Inspection_Point is as follows:

3   pragma Inspection_Point[(object_name {, object_name})];


   Legality Rules

4 A pragma Inspection_Point is allowed wherever a declarative_item  
or
statement is allowed. Each object_name shall statically denote the  
declaration

of an object.


  Static Semantics

5/2   An inspection point is a point in the object code corresponding  
to the
occurrence of a pragma Inspection_Point in the compilation unit. An  
object is

inspectable at an inspection point if the corresponding pragma
Inspection_Point either has an argument denoting that object, or has no
arguments and the declaration of the object is visible at the inspection
point.


  Dynamic Semantics

6 Execution of a pragma Inspection_Point has no effect.


 Implementation Requirements

7 Reaching an inspection point is an external interaction with  
respect to

the values of the inspectable objects at that point (see 1.1.3).


 Documentation Requirements

8 For each inspection point, the implementation shall identify a  
mapping
between each inspectable object and the machine resources (such as  
memory

locations or registers) from which the object's value can be obtained.

  NOTES

9/2   7  The implementation is not allowed to perform dead store
  elimination on the last assignment to a variable prior to a  
point where the
  variable is inspectable. Thus an inspection point has the  
effect of an

  implicit read of each of its inspectable objects.

108  Inspection points are useful in maintaining a correspondence  
between
  the state of the program in source code terms, and the machine  
state
  during the program's execution. Assertions about the values of  
program
  objects can be tested in machine terms at inspection points.  
Object code
  between inspection points can be processed by automated tools  
to verify

  programs mechanically.

119  The identification of the mapping from source program objects  
to
  machine resources is allowed to be in the form of an annotated  
object

  listing, in human-readable or tool-processable form.



[Bug tree-optimization/34413] gfortran.dg/ltrans-7.f90 doesn't work

2007-12-16 Thread sebpop at gmail dot com


--- Comment #5 from sebpop at gmail dot com  2007-12-16 08:31 ---
Subject: Re:  gfortran.dg/ltrans-7.f90 doesn't work

On 16 Dec 2007 03:23:17 -, jvdelisle at gcc dot gnu dot org
[EMAIL PROTECTED] wrote:


 --- Comment #4 from jvdelisle at gcc dot gnu dot org  2007-12-16 03:23 
 ---
 I think Sebastian committed this patch with the intent to fix the bug.  
 Usually
 we don't commit test cases until after we have it fixed and use the PR to 
 track
 the issue.  So I think we just wait for Sebastian to finish.  If its going to
 be a while, we can XFAIL it.

 Is this correct Sebastian?


Yes, I'm going to fix this tomorrow, either xfailing the test
or better, fix the testcase with a patch for loop-linear.

Sebastian


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34413



[Bug fortran/34482] FAIL: gfortran.dg/nan_4.f90 -O tests for errors

2007-12-16 Thread burnus at gcc dot gnu dot org


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|burnus at gcc dot gnu dot   |unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34482



[Bug ada/34489] Compilation of applicationservices-qd-quickdraw.ads fails

2007-12-16 Thread ebotcazou at gcc dot gnu dot org


--- Comment #4 from ebotcazou at gcc dot gnu dot org  2007-12-16 08:45 
---
Already fixed.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34489



[Bug ada/34489] Compilation of applicationservices-qd-quickdraw.ads fails

2007-12-16 Thread rogermc at iinet dot net dot au


--- Comment #5 from rogermc at iinet dot net dot au  2007-12-16 08:51 
---
(In reply to comment #4)
 Already fixed.
 
How or where can I obtain the fix?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34489



[Bug ada/34489] Compilation of applicationservices-qd-quickdraw.ads fails

2007-12-16 Thread ebotcazou at gcc dot gnu dot org


--- Comment #6 from ebotcazou at gcc dot gnu dot org  2007-12-16 08:59 
---
 How or where can I obtain the fix?

Probably the same way you obtained the previous compiler, the fix is revision
130665.  Or from the SVN tree directly, see http://gcc.gnu.org/svn.html.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34489



[Bug rtl-optimization/34490] [4.3 Regression] r128833 causes miscompilation of glibc clock_gettime.c

2007-12-16 Thread jakub at gcc dot gnu dot org


--- Comment #1 from jakub at gcc dot gnu dot org  2007-12-16 09:38 ---
Simpler testcase:
/* PR rtl-optimization/34490 */

extern void abort (void);

static int x;

int
__attribute__((noinline))
bar (void)
{
  return x;
}

int
foo (void)
{
  long int b = bar ();
  if ((unsigned long) b  -4095L)
return b;
  if (-b != 38)
b = -2;
  return b + 1;
}

int
main (void)
{
  x = 26;
  if (foo () != 26)
abort ();
  x = -39;
  if (foo () != -1)
abort ();
  x = -38;
  if (foo () != -37)
abort ();
  return 0;
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34490



[Bug rtl-optimization/34490] [4.3 Regression] r128833 causes miscompilation of glibc clock_gettime.c

2007-12-16 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2007-12-16 09:50 ---
simplify_const_relational_operation (LEU, DImode, (sign_extend:DI (reg:SI 59)),
(const_int -4096)) returns (const_int 1), which is wrong.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34490



[Bug rtl-optimization/34415] [4.3 Regression] Possible miscompilation on MIPS

2007-12-16 Thread rsandifo at gcc dot gnu dot org


--- Comment #6 from rsandifo at gcc dot gnu dot org  2007-12-16 09:54 
---
Subject: Bug 34415

Author: rsandifo
Date: Sun Dec 16 09:54:34 2007
New Revision: 130987

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=130987
Log:
gcc/
PR rtl-optimization/34415
* df.h (DF_LR_IN, DF_LR_OUT): Update comments.
* resource.c (mark_target_live_regs): Use DF_LR_IN rather than
df_get_live_in.  Don't handle pseudos.

gcc/testsuite/
PR rtl-optimization/34415
* gcc.c-torture/execute/pr34415.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr34415.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/df.h
trunk/gcc/resource.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34415



[Bug rtl-optimization/34415] [4.3 Regression] Possible miscompilation on MIPS

2007-12-16 Thread rsandifo at gcc dot gnu dot org


--- Comment #7 from rsandifo at gcc dot gnu dot org  2007-12-16 09:58 
---
Fixed on trunk.


-- 

rsandifo at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34415



[Bug bootstrap/34474] find from BusyBox v1.2.2 does not support logical OR (-o argument)

2007-12-16 Thread mmokrejs at ribosome dot natur dot cuni dot cz


--- Comment #12 from mmokrejs at ribosome dot natur dot cuni dot cz  
2007-12-16 11:06 ---
Please update the docs first and update configure to check for at least some of
the required features. Users are not going to realize their utilities do not
conform to POSIX completely. And so far you have not heard what is exactly
required and why.

I have installed myself the whole busybox, filed a bug in it and still cannot
use stage1 compiler, but those are another 2 bugs in gcc-4.2.2.


-- 

mmokrejs at ribosome dot natur dot cuni dot cz changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|INVALID |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34474



[Bug bootstrap/34494] New: -V option should be compatible with -B at least, possible others as well

2007-12-16 Thread mmokrejs at ribosome dot natur dot cuni dot cz
After completing stage1 build, the xgcc binary is being used. Unfortunately,
the -V option used in objdir/intl/configure breaks the build. Below is a
relevant snippet from objdir/intl/config.log:

configure:1771: checking for armv5tejl-unknown-linux-gnu-gcc
configure:1797: result:  /scratch/gcc-4.2.2/objdir/./prev-gcc/xgcc
-B/scratch/gcc-4.2.2/objdir/./prev-gcc/
-B/usr/local/armv5tejl-unknown-linux-gnu/bin/
configure:2079: checking for C compiler version
configure:2082:  /scratch/gcc-4.2.2/objdir/./prev-gcc/xgcc
-B/scratch/gcc-4.2.2/objdir/./prev-gcc/
-B/usr/local/armv5tejl-unknown-linux-gnu/bin/ --version /dev/null 5
xgcc (GCC) 4.2.2
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2085: $? = 0
configure:2087:  /scratch/gcc-4.2.2/objdir/./prev-gcc/xgcc
-B/scratch/gcc-4.2.2/objdir/./prev-gcc/
-B/usr/local/armv5tejl-unknown-linux-gnu/bin/ -v /dev/null 5
Reading specs from /scratch/gcc-4.2.2/objdir/./prev-gcc/specs
Target: armv5tejl-unknown-linux-gnu
Configured with: ../configure --with-float=soft --enable-languages=c,c++,objc
--disable-nls --with-newlib
Thread model: posix
gcc version 4.2.2
configure:2090: $? = 0
configure:2092:  /scratch/gcc-4.2.2/objdir/./prev-gcc/xgcc
-B/scratch/gcc-4.2.2/objdir/./prev-gcc/
-B/usr/local/armv5tejl-unknown-linux-gnu/bin/ -V /dev/null 5
xgcc: '-V' must come at the start of the command line
configure:2095: $? = 1
configure:2118: checking for C compiler default output file name
configure:2121:  /scratch/gcc-4.2.2/objdir/./prev-gcc/xgcc
-B/scratch/gcc-4.2.2/objdir/./prev-gcc/
-B/usr/local/armv5tejl-unknown-linux-gnu/bin/ -g -O2   conftest.c  5
configure:2124: $? = 0
configure:2170: result: a.out
configure:2175: checking whether the C compiler works
configure:2181: ./a.out
/scratch/gcc-4.2.2/intl/configure: line 2182: ./a.out: No such file or
directory
configure:2184: $? = 127
configure:2193: error: cannot run C compiled programs.


For completeness, I did:
objdir$ rm -rf *
objdir$ ../configure --with-float=soft --enable-languages=c,c++,objc \
--disable-nls --with-newlib
objdir$ make bootstrap


-- 
   Summary: -V option should be compatible with -B at least,
possible others as well
   Product: gcc
   Version: 4.2.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mmokrejs at ribosome dot natur dot cuni dot cz


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34494



[Bug bootstrap/34494] -V option should be compatible with -B at least, possible others as well

2007-12-16 Thread mmokrejs at ribosome dot natur dot cuni dot cz


--- Comment #1 from mmokrejs at ribosome dot natur dot cuni dot cz  
2007-12-16 11:21 ---
Created an attachment (id=14776)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14776action=view)
config.statuses_and_logs.tgz

tar cvf - ./prev-libiberty/config.status ./prev-libdecnumber/config.status
./config.status ./prev-intl/config.status
./build-armv5tejl-unknown-linux-gnu/libiberty/config.status
./build-armv5tejl-unknown-linux-gnu/fixincludes/config.status
./prev-libcpp/config.status ./prev-gcc/config.status
./prev-libiberty/config.log ./prev-libdecnumber/config.log ./config.log
./prev-intl/config.log ./build-armv5tejl-unknown-linux-gnu/libiberty/config.log
./build-armv5tejl-unknown-linux-gnu/fixincludes/config.log
./prev-libcpp/config.log ./intl/config.log| gzip -c 
/root/config.statuses_and_logs.tgz


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34494



[Bug rtl-optimization/34490] [4.3 Regression] r128833 causes miscompilation of glibc clock_gettime.c

2007-12-16 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2007-12-16 11:33 ---
Created an attachment (id=14777)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14777action=view)
gcc43-pr34490.patch

Patch I'll be testing.  For unsigned comparison, reducing the range using
num_sign_bit_copies is just wrong.  If op0 is sign extended, compared using
GTU/GEU/LTU/LEU, then op0 ranges are two subranges, 0 ... 0x000..7f.. and
0xfff..80.. ... 0xfff..ff.., so op0 could be 0, or it could be
GET_MODE_BITMASK (mode).


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34490



[Bug fortran/33888] ICE - CHARACTER expression using an ELEMENTAL FUNCTION as actual arg

2007-12-16 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2007-12-16 11:34 ---
Subject: Bug 33888

Author: pault
Date: Sun Dec 16 11:34:08 2007
New Revision: 130988

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=130988
Log:
2007-12-16  Paul Thomas  [EMAIL PROTECTED]

PR fortran/31213
PR fortran/33888
PR fortran/33998
* trans-array.c (gfc_trans_array_constructor_value): If the
iterator variable does not have a backend_decl, use a local
temporary.
(get_elemental_fcn_charlen): New function to map the character
length of an elemental function onto its actual arglist.
(gfc_conv_expr_descriptor): Call the above so that the size of
the temporary can be evaluated.
* trans-expr.c : Include arith.h and change prototype of
gfc_apply_interface_mapping_to_expr to return void.  Change all
references to gfc_apply_interface_mapping_to_expr accordingly.
(gfc_free_interface_mapping): Free the 'expr' field.
(gfc_add_interface_mapping): Add an argument for the actual
argument expression. This is copied to the 'expr' field of the
mapping.  Only stabilize the backend_decl if the se is present.
Copy the character length expression and only add it's backend
declaration if se is present.  Return without working on the
backend declaration for the new symbol if se is not present.
(gfc_map_intrinsic_function) : To simplify intrinsics 'len',
'size', 'ubound' and 'lbound' and then to map the result.
(gfc_map_fcn_formal_to_actual): Performs the formal to actual
mapping for the case of a function found in a specification
expression in the interface being mapped.
(gfc_apply_interface_mapping_to_ref): Remove seen_result and
all its references. Remove the inline simplification of LEN
and call gfc_map_intrinsic_function instead.  Change the
order of mapping of the actual arguments and simplifying
intrinsic functions.  Finally, if a function maps to an
actual argument, call gfc_map_fcn_formal_to_actual.
(gfc_conv_function_call): Add 'e' to the call to
gfc_add_interface_mapping.
* dump-parse-tree.c (gfc_show_symbol_n): New function for
diagnostic purposes.
* gfortran.h : Add prototype for gfc_show_symbol_n.
* trans.h : Add 'expr' field to gfc_add_interface_mapping.
Add 'expr' to prototype for gfc_show_symbol_n.
* resolve.c (resolve_generic_f0): Set specific function as
referenced.

2007-12-16  Paul Thomas  [EMAIL PROTECTED]

PR fortran/31213
PR fortran/33888
PR fortran/33998
* gfortran.dg/mapping_1.f90: New test.
* gfortran.dg/mapping_2.f90: New test.
* gfortran.dg/mapping_3.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/mapping_1.f90
trunk/gcc/testsuite/gfortran.dg/mapping_2.f90
trunk/gcc/testsuite/gfortran.dg/mapping_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/dump-parse-tree.c
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33888



[Bug fortran/31213] ICE on valid code with gfortran

2007-12-16 Thread pault at gcc dot gnu dot org


--- Comment #11 from pault at gcc dot gnu dot org  2007-12-16 11:34 ---
Subject: Bug 31213

Author: pault
Date: Sun Dec 16 11:34:08 2007
New Revision: 130988

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=130988
Log:
2007-12-16  Paul Thomas  [EMAIL PROTECTED]

PR fortran/31213
PR fortran/33888
PR fortran/33998
* trans-array.c (gfc_trans_array_constructor_value): If the
iterator variable does not have a backend_decl, use a local
temporary.
(get_elemental_fcn_charlen): New function to map the character
length of an elemental function onto its actual arglist.
(gfc_conv_expr_descriptor): Call the above so that the size of
the temporary can be evaluated.
* trans-expr.c : Include arith.h and change prototype of
gfc_apply_interface_mapping_to_expr to return void.  Change all
references to gfc_apply_interface_mapping_to_expr accordingly.
(gfc_free_interface_mapping): Free the 'expr' field.
(gfc_add_interface_mapping): Add an argument for the actual
argument expression. This is copied to the 'expr' field of the
mapping.  Only stabilize the backend_decl if the se is present.
Copy the character length expression and only add it's backend
declaration if se is present.  Return without working on the
backend declaration for the new symbol if se is not present.
(gfc_map_intrinsic_function) : To simplify intrinsics 'len',
'size', 'ubound' and 'lbound' and then to map the result.
(gfc_map_fcn_formal_to_actual): Performs the formal to actual
mapping for the case of a function found in a specification
expression in the interface being mapped.
(gfc_apply_interface_mapping_to_ref): Remove seen_result and
all its references. Remove the inline simplification of LEN
and call gfc_map_intrinsic_function instead.  Change the
order of mapping of the actual arguments and simplifying
intrinsic functions.  Finally, if a function maps to an
actual argument, call gfc_map_fcn_formal_to_actual.
(gfc_conv_function_call): Add 'e' to the call to
gfc_add_interface_mapping.
* dump-parse-tree.c (gfc_show_symbol_n): New function for
diagnostic purposes.
* gfortran.h : Add prototype for gfc_show_symbol_n.
* trans.h : Add 'expr' field to gfc_add_interface_mapping.
Add 'expr' to prototype for gfc_show_symbol_n.
* resolve.c (resolve_generic_f0): Set specific function as
referenced.

2007-12-16  Paul Thomas  [EMAIL PROTECTED]

PR fortran/31213
PR fortran/33888
PR fortran/33998
* gfortran.dg/mapping_1.f90: New test.
* gfortran.dg/mapping_2.f90: New test.
* gfortran.dg/mapping_3.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/mapping_1.f90
trunk/gcc/testsuite/gfortran.dg/mapping_2.f90
trunk/gcc/testsuite/gfortran.dg/mapping_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/dump-parse-tree.c
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31213



[Bug fortran/33998] ICE in make_decl_rtl, at varasm.c:1263

2007-12-16 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2007-12-16 11:34 ---
Subject: Bug 33998

Author: pault
Date: Sun Dec 16 11:34:08 2007
New Revision: 130988

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=130988
Log:
2007-12-16  Paul Thomas  [EMAIL PROTECTED]

PR fortran/31213
PR fortran/33888
PR fortran/33998
* trans-array.c (gfc_trans_array_constructor_value): If the
iterator variable does not have a backend_decl, use a local
temporary.
(get_elemental_fcn_charlen): New function to map the character
length of an elemental function onto its actual arglist.
(gfc_conv_expr_descriptor): Call the above so that the size of
the temporary can be evaluated.
* trans-expr.c : Include arith.h and change prototype of
gfc_apply_interface_mapping_to_expr to return void.  Change all
references to gfc_apply_interface_mapping_to_expr accordingly.
(gfc_free_interface_mapping): Free the 'expr' field.
(gfc_add_interface_mapping): Add an argument for the actual
argument expression. This is copied to the 'expr' field of the
mapping.  Only stabilize the backend_decl if the se is present.
Copy the character length expression and only add it's backend
declaration if se is present.  Return without working on the
backend declaration for the new symbol if se is not present.
(gfc_map_intrinsic_function) : To simplify intrinsics 'len',
'size', 'ubound' and 'lbound' and then to map the result.
(gfc_map_fcn_formal_to_actual): Performs the formal to actual
mapping for the case of a function found in a specification
expression in the interface being mapped.
(gfc_apply_interface_mapping_to_ref): Remove seen_result and
all its references. Remove the inline simplification of LEN
and call gfc_map_intrinsic_function instead.  Change the
order of mapping of the actual arguments and simplifying
intrinsic functions.  Finally, if a function maps to an
actual argument, call gfc_map_fcn_formal_to_actual.
(gfc_conv_function_call): Add 'e' to the call to
gfc_add_interface_mapping.
* dump-parse-tree.c (gfc_show_symbol_n): New function for
diagnostic purposes.
* gfortran.h : Add prototype for gfc_show_symbol_n.
* trans.h : Add 'expr' field to gfc_add_interface_mapping.
Add 'expr' to prototype for gfc_show_symbol_n.
* resolve.c (resolve_generic_f0): Set specific function as
referenced.

2007-12-16  Paul Thomas  [EMAIL PROTECTED]

PR fortran/31213
PR fortran/33888
PR fortran/33998
* gfortran.dg/mapping_1.f90: New test.
* gfortran.dg/mapping_2.f90: New test.
* gfortran.dg/mapping_3.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/mapping_1.f90
trunk/gcc/testsuite/gfortran.dg/mapping_2.f90
trunk/gcc/testsuite/gfortran.dg/mapping_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/dump-parse-tree.c
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33998



[Bug fortran/33888] ICE - CHARACTER expression using an ELEMENTAL FUNCTION as actual arg

2007-12-16 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2007-12-16 11:41 ---
Fixed on trunk

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33888



[Bug fortran/33998] ICE in make_decl_rtl, at varasm.c:1263

2007-12-16 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2007-12-16 11:42 ---
Fixed on trunk

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33998



[Bug fortran/31213] ICE on valid code with gfortran

2007-12-16 Thread pault at gcc dot gnu dot org


--- Comment #12 from pault at gcc dot gnu dot org  2007-12-16 11:42 ---
Fixed on trunk

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31213



[Bug fortran/34396] Length of substrings defined by expressions not correctly computed in constructors

2007-12-16 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2007-12-16 11:45 ---
OK then, I'll give it a try!

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-12-09 06:20:24 |2007-12-16 11:45:31
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34396



[Bug middle-end/34400] [4.3 regression] bad interaction between DF and SJLJ exceptions

2007-12-16 Thread steven at gcc dot gnu dot org


--- Comment #28 from steven at gcc dot gnu dot org  2007-12-16 12:01 ---
Created an attachment (id=14778)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14778action=view)
Change worklist solver to double queue algorithm

I re-read Cooper, Harvey and Kennedy, who wrote a nice paper about various work
list based dataflow solvers.

The attached patch modifies df_worklist_dataflow to a double queue algorithm,
while retaining the property that basic blocks are added to the queue in RPO
order.  This approach gives me a speedup comparable to (but slightly less than)
the hybrid search algorithm.  This is not really surprising because the double
queue work list algorithm also completes full iterations over the CFG before
considering the second queue.

Seongbae, what are your ideas about the double queue approach (or maybe other
algorithms suggested by Harvey)?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34400



[Bug middle-end/34226] [4.3 Regression][frv] ICE in default_secondary_reload, at targhooks.c:612

2007-12-16 Thread rask at gcc dot gnu dot org


--- Comment #7 from rask at gcc dot gnu dot org  2007-12-16 12:55 ---
It's the dataflow merge (125624) that broke it. Revision 125623 with 130333 on
top is fine, but 125624 with 125851 (so it builds) and 130333 on top fails.
The patch in comment #6 has one testsuite regression on arm-unknown-elf:
FAIL: gcc.dg/struct/wo_prof_malloc_size_var.c (internal compiler error)
FAIL: gcc.dg/struct/wo_prof_malloc_size_var.c (test for excess errors)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34226



[Bug bootstrap/34474] find from BusyBox v1.2.2 does not support logical OR (-o argument)

2007-12-16 Thread pinskia at gcc dot gnu dot org


--- Comment #13 from pinskia at gcc dot gnu dot org  2007-12-16 12:58 
---
Well it is we assume a lot of things are POSIX support so I don't see why we
have to document find here really.  Yes we document we need a POSIX shell but
that is because a semi common target (Solaris)'s /bin/sh is not POSIX
compatible.  It is not common to find a non POSIX compatible find (or one that
does not support the find options).

The main reason why I don't want to see two finds is because find is actually
can be expensive.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||WONTFIX


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34474



[Bug middle-end/34226] [4.3 Regression][frv] ICE in default_secondary_reload, at targhooks.c:612

2007-12-16 Thread pinskia at gmail dot com


--- Comment #8 from pinskia at gmail dot com  2007-12-16 13:00 ---
Subject: Re:  [4.3 Regression][frv] ICE in default_secondary_reload, at
targhooks.c:612

On 16 Dec 2007 12:55:21 -, rask at gcc dot gnu dot org
[EMAIL PROTECTED] wrote:
 The patch in comment #6 has one testsuite regression on arm-unknown-elf:
 FAIL: gcc.dg/struct/wo_prof_malloc_size_var.c (internal compiler error)
 FAIL: gcc.dg/struct/wo_prof_malloc_size_var.c (test for excess errors)

That is not a regression   Just an already existing failure.

-- Pinski


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34226



[Bug target/30192] [arm] Wrong sp value on exit after calling __floatdidf or __floatundidf

2007-12-16 Thread John dot Tytgat at aaug dot net


--- Comment #7 from John dot Tytgat at aaug dot net  2007-12-16 13:04 
---
Indeed fixed thanks.


-- 

John dot Tytgat at aaug dot net changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30192



[Bug tree-optimization/34445] [4.3 Regression] internal compiler error: in cost_for_stmt, at tree-vect-transform.c:98

2007-12-16 Thread dorit at gcc dot gnu dot org


--- Comment #4 from dorit at gcc dot gnu dot org  2007-12-16 13:06 ---
testing this patch: 

*** tree-vect-transform.c   (revision 130987)
--- tree-vect-transform.c   (working copy)
*** vect_estimate_min_profitable_iters (loop
*** 197,214 
factor = 1;

for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (si))
! {
!   tree stmt = bsi_stmt (si);
!   stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
!   if (!STMT_VINFO_RELEVANT_P (stmt_info)
!!STMT_VINFO_LIVE_P (stmt_info))
! continue;
!   scalar_single_iter_cost += cost_for_stmt (stmt) * factor;
!   vec_inside_cost += STMT_VINFO_INSIDE_OF_LOOP_COST (stmt_info) *
factor;
  /* FIXME: for stmts in the inner-loop in outer-loop vectorization,
 some of the outside costs are generated inside the outer-loop. 
*/
!   vec_outside_cost += STMT_VINFO_OUTSIDE_OF_LOOP_COST (stmt_info);
! }
  }

/* Add additional cost for the peeled instructions in prologue and epilogue
--- 197,215 
factor = 1;

for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (si))
!   {
! tree stmt = bsi_stmt (si);
! stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
! /* Skip stmts that are not vectorized inside the loop.  */
! if (!STMT_VINFO_RELEVANT_P (stmt_info)
!  STMT_VINFO_DEF_TYPE (stmt_info) != vect_reduction_def)
!   continue;
! scalar_single_iter_cost += cost_for_stmt (stmt) * factor;
! vec_inside_cost += STMT_VINFO_INSIDE_OF_LOOP_COST (stmt_info) *
factor;
  /* FIXME: for stmts in the inner-loop in outer-loop vectorization,
 some of the outside costs are generated inside the outer-loop. 
*/
! vec_outside_cost += STMT_VINFO_OUTSIDE_OF_LOOP_COST (stmt_info);
!   }
  }

/* Add additional cost for the peeled instructions in prologue and epilogue


(It fixes both testcases)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34445



[Bug bootstrap/34494] -V option should be compatible with -B at least, possible others as well

2007-12-16 Thread schwab at suse dot de


--- Comment #2 from schwab at suse dot de  2007-12-16 13:31 ---
This test will always fail with gcc because -V requires an argument, but this
is ok because it's only there to provide some information about the compiler in
the log file, but is otherwise ignored.


-- 

schwab at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34494



[Bug fortran/34495] New: [4.3 Regression] accepts invalid initialization expressions with -std=f95

2007-12-16 Thread tkoenig at gcc dot gnu dot org
Adapted from a test case from c.l.f, from James van Buskirk
:
$ cat foo.f90 
program main
   integer, parameter :: ipi = 1078530011
   real pi
   parameter(pi=transfer(ipi,pi))
   real, parameter :: z = transfer(ipi,z)
   real, parameter :: y = real(1,kind(y))

   write(*,*) pi, z, y
end
$ gfortran -std=f95 -pedantic foo.f90 
$ ./a.out
   3.1415927   3.1415927  1. 

JvB's explanation:

# the second
# and third treat transfer as a specification inquiry even thought
# that is not permitted even in f03, and the fourth has that pesky
# REAL intrinsic, which is not an elemental function of type integer
# or character.

gfortran 4.2 still generates some error messages:

$ gfortran-4.2 foo.f90 
foo.f90:4.29:

   parameter(pi=transfer(ipi,pi))
1
Error: Parameter 'pi' at (1) has not been declared or is a variable, which does
not reduce to a constant expression
foo.f90:5.35:

   real, parameter :: z = transfer(ipi,z)
  1
Error: TRANSFER intrinsic not implemented for initialization at (1)


-- 
   Summary: [4.3 Regression] accepts invalid initialization
expressions with -std=f95
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: accepts-invalid, diagnostic
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tkoenig at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34495



[Bug target/34025] Warning when compiling with -m64 -ffast-math on Intel Darwin

2007-12-16 Thread dominiq at lps dot ens dot fr


--- Comment #16 from dominiq at lps dot ens dot fr  2007-12-16 13:38 ---
The patch in comment #14 fix the problem for me. Thanks Jack for the debugging
and the patch.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34025



[Bug middle-end/34226] [4.3 Regression][frv] ICE in default_secondary_reload, at targhooks.c:612

2007-12-16 Thread rask at gcc dot gnu dot org


--- Comment #9 from rask at gcc dot gnu dot org  2007-12-16 13:39 ---
 That is not a regression   Just an already existing failure.

Unmodified trunk revision 130944 doesn't have it:
diff -u build/arm-unknown-elf-results-unpatched/summary
build/arm-unknown-elf-results-patched/summary
--- build/arm-unknown-elf-results-unpatched/summary 2007-12-15
02:26:10.0 +0100
+++ build/arm-unknown-elf-results-patched/summary   2007-12-16
04:17:59.0 +0100
@@ -17,6 +17,9 @@
 FAIL: gcc.dg/memcpy-1.c scan-tree-dump-times optimized nasty_local 0
 FAIL: gcc.dg/pr30957-1.c scan-rtl-dump loop2_unroll Expanding Accumulator
 FAIL: gcc.dg/var-expand1.c scan-rtl-dump loop2_unroll Expanding Accumulator
+FAIL: gcc.dg/struct/wo_prof_malloc_size_var.c (internal compiler error)
+FAIL: gcc.dg/struct/wo_prof_malloc_size_var.c (test for excess errors)
+UNRESOLVED: gcc.dg/struct/wo_prof_malloc_size_var.c compilation failed to
produce executable
 FAIL: gcc.dg/struct/wo_prof_single_str_global.c execution test
 FAIL: gcc.dg/struct/wo_prof_single_str_local.c execution test
 FAIL: gcc.dg/struct/wo_prof_single_str_pointer.c execution test


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34226



[Bug middle-end/34400] [4.3 regression] bad interaction between DF and SJLJ exceptions

2007-12-16 Thread zadeck at naturalbridge dot com


--- Comment #29 from zadeck at naturalbridge dot com  2007-12-16 13:56 
---
Subject: Re:  [4.3 regression] bad interaction between
 DF and SJLJ exceptions

steven at gcc dot gnu dot org wrote:
 --- Comment #28 from steven at gcc dot gnu dot org  2007-12-16 12:01 
 ---
 Created an attachment (id=14778)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14778action=view)
  -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14778action=view)
 Change worklist solver to double queue algorithm

 I re-read Cooper, Harvey and Kennedy, who wrote a nice paper about various 
 work
 list based dataflow solvers.

 The attached patch modifies df_worklist_dataflow to a double queue algorithm,
 while retaining the property that basic blocks are added to the queue in RPO
 order.  This approach gives me a speedup comparable to (but slightly less 
 than)
 the hybrid search algorithm.  This is not really surprising because the double
 queue work list algorithm also completes full iterations over the CFG before
 considering the second queue.

 Seongbae, what are your ideas about the double queue approach (or maybe other
 algorithms suggested by Harvey)?


   
The bottom line here is that all of these are heuristics.  There are no
tight time bounds here.  Each of these will have good cases and each
will have bad case.  So the only way that anyone can talk about best is
in term of the set of graphs they used to measure output.

Seongbae chose a technique that tends to work very well if the programs
are normal and the expense that fully connected programs are quite
bad.  The class of techniques that were used in hybrid search and that
you are looking at tend to do better for bad graphs but will be a little
slower on the normal cases.

If you can come up with some fast heuristic test to distinguish the
difference cases you can select between them.  Of course you only have
to do the tests once per function because the chances that optimization
will change the heuristic are vanishingly small.  This gives you a
little more room in terms of implementation cost. 

I think that I would vote for the any bad back edges plan to
distinguish the two because i think that Seonbae's technique was
designed to work well on that class of graphs.  But Seonbae may have
other thoughts especially if his technique requires only shallow maximum
nesting to really shine. 

Kenny


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34400



[Bug ada/34496] New: [4.2 regression] prefixed notation allows changing the value of a constant

2007-12-16 Thread ludovic at ludovic-brenta dot org
with text_io;
procedure test1 is
   package pak3 is

  type T1 is tagged record
 x0: integer;
  end record;

  procedure p1 (x1: access T1; val: integer);

  x2: aliased constant T1 := (x0 = 3);
  x3: access constant T1 := x2'access;

   end pak3;

   package body pak3 is
  procedure p1 (x1: access T1; val: integer) is
  begin
 x1.x0 := val;
  end p1;
   end pak3;

begin
   text_io.put_line(integer'image(pak3.x2.x0));
   pak3.x2.p1(5); -- line 25
   text_io.put_line(integer'image(pak3.x2.x0));
   pak3.x3.all.p1(7); -- line 27
-- pak3.x3.p1(7);   -- this one is detected
   text_io.put_line(integer'image(pak3.x2.x0));
end test1;

GCC 4.1.2:

$ gnatmake -gnat05 test1
gcc-4.1 -c -gnat05 test1.adb
test1.adb:25:08: expected an access type with designated type T1 defined at
line 5
test1.adb:25:08: found type T1 defined at line 5
test1.adb:27:12: expected an access type with designated type T1 defined at
line 5
test1.adb:27:12: found type T1 defined at line 5

The error messages are not very good (they should say something like found
type constant T1) but the program is indeed illegal.

GCC 4.2.2:

$ gnatmake -gnat05 test1
gcc-4.2 -c -gnat05 test1.adb
gnatbind -x test1.ali
gnatlink test1.ali
$ ./test1
 3
 5
 7


-- 
   Summary: [4.2 regression] prefixed notation allows changing the
value of a constant
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ludovic at ludovic-brenta dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34496



[Bug bootstrap/34494] -V option should be compatible with -B at least, possible others as well

2007-12-16 Thread mmokrejs at ribosome dot natur dot cuni dot cz


--- Comment #3 from mmokrejs at ribosome dot natur dot cuni dot cz  
2007-12-16 14:00 ---
??? But how is the bootstrap supposed to continue? Or was it caused by another
error which I have overlooked? I am sorry then. :(


-- 

mmokrejs at ribosome dot natur dot cuni dot cz changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34494



[Bug ada/15605] invalid program not detected, RM 8.3(22)

2007-12-16 Thread ludovic at ludovic-brenta dot org


--- Comment #4 from ludovic at ludovic-brenta dot org  2007-12-16 14:04 
---
As of 4.2.2, only the first of the two errors is detected.  Reopening.  The
second error violates 8.5.4(6): A name that denotes a formal parameter of the
subprogram_specification is not allowed within the callable_entity_name. and
is not diagnosed.

GCC 4.1.2:

gnatmake -gnat05 pak1
gcc-4.1 -c -gnat05 pak1.ads
pak1.ads:8:15: formal parameter list cannot be used before end of
specification

GCC 4.2.2:

gnatmake -gnat05 pak1
gcc-4.2 -c -gnat05 pak1.ads
pak1.ads:8:15: formal parameter list cannot be used before end of
specification


-- 

ludovic at ludovic-brenta dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15605



[Bug fortran/34495] [4.3 Regression] accepts invalid initialization expressions with -std=f95

2007-12-16 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2007-12-16 14:35 ---
Confirm. Though other compilers have better error messages than 4.2 had. (These
are all shown by default, i.e. none of the compilers below accepts it.)

NAG f95:
  Error: PARAMETER PI used before its definition is complete
g95:
  Error: PARAMETER value is used before being defined at (1)
ifort:
  Error: A PARAMETER must not be defined in terms of itself.   [PI]
(sunf95 and openf95 have also not a good message.)

I think for -std=f95 one needs another error. NAG f95 prints:
  Error: The REAL function is not permitted in an initialisation expression

I am also not sure whether I would call the following a regression:
 Error: TRANSFER intrinsic not implemented for initialization at (1)


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-12-16 14:35:24
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34495



[Bug fortran/34495] [4.3 Regression] accepts invalid initialization expressions with -std=f95

2007-12-16 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2007-12-16 15:14 ---
Created an attachment (id=14779)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14779action=view)
Patch - only for the REAL()/CMPLX() diagnostics


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34495



[Bug middle-end/34226] [4.3 Regression][frv] ICE in default_secondary_reload, at targhooks.c:612

2007-12-16 Thread rask at gcc dot gnu dot org


--- Comment #10 from rask at gcc dot gnu dot org  2007-12-16 15:18 ---
 That is not a regression   Just an already existing failure.
OK, looks like an intermittent failure which happens about one out of four
times.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34226



[Bug target/34473] casting negative __int128_t to float/double rounds to nearest multiple of 2048

2007-12-16 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2007-12-16 16:02 ---
From libgcc2.c, __floatdisf():

  /* Protect against double-rounding error.
 Represent any low-order bits, that might be truncated by a bit that
 won't be lost.  The bit can go in anywhere below the rounding position
 of the SFmode.  A fixed mask and bit position handles all usual
 configurations.  It doesn't handle the case of 128-bit DImode, however. 
*/

Please note that di in fact represents TImode for 64bit x86_64. I guess that
__floatdidf() also can't handle 128bit DImode values properly.

This works OK for 4.3.0, beacuse 4.3 branch implements 128bit TFmode floating
point mode and _floatdi{s,d}f function is changed to use this mode.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Known to work||4.3.0
 Resolution||WONTFIX


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34473



[Bug middle-end/26061] error and warning count

2007-12-16 Thread ismail at pardus dot org dot tr


--- Comment #16 from ismail at pardus dot org dot tr  2007-12-16 16:12 
---
Created an attachment (id=14780)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14780action=view)
Unbreak lib{gomp,stdc++,ffi} tests


-- 

ismail at pardus dot org dot tr changed:

   What|Removed |Added

  Attachment #14769|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26061



[Bug middle-end/26061] error and warning count

2007-12-16 Thread ismail at pardus dot org dot tr


--- Comment #17 from ismail at pardus dot org dot tr  2007-12-16 16:14 
---
Created an attachment (id=14781)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14781action=view)
Fix typo in the last patch


-- 

ismail at pardus dot org dot tr changed:

   What|Removed |Added

  Attachment #14780|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26061



[Bug target/34473] casting negative __int128_t to float/double rounds to nearest multiple of 2048

2007-12-16 Thread joseph at codesourcery dot com


--- Comment #4 from joseph at codesourcery dot com  2007-12-16 16:44 ---
Subject: Re:  casting negative __int128_t to float/double
 rounds to nearest multiple of 2048

On Sun, 16 Dec 2007, ubizjak at gmail dot com wrote:

 This works OK for 4.3.0, beacuse 4.3 branch implements 128bit TFmode floating
 point mode and _floatdi{s,d}f function is changed to use this mode.

I think the fix was actually

2005-12-15  Joseph S. Myers  [EMAIL PROTECTED]

PR other/25028
* libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
* libgcc2.c (__floatdixf, __floatundixf, __floatditf,
__floatunditf): Use #error if type sizes don't match requirements
of implementation.
(__floatdisf, __floatdidf): Unify.  Possibly use XFmode or TFmode
as wider floating-point type.  Use #error if type sizes don't
match requirements of implementation.  Avoid overflow in computing
Wtype_MAXp1_F * Wtype_MAXp1_F.  When special casing conversion,
shift one more bit.  Cast 1 to DWtype or UDWtype for shifting.
(__floatundisf, __floatundidf): Likewise.
* config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
* config/ia64/ia64.c (ia64_init_libfuncs): Use
_U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
TFmode-TImode conversions.
* doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.

(which is in 4.2) and that this is a duplicate of that bug.  If software 
TFmode is being used internally in conversions for narrower modes, that's 
a bug caused by x86_64 not defining WIDEST_HARDWARE_FP_SIZE.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34473



[Bug middle-end/26061] error and warning count

2007-12-16 Thread manu at gcc dot gnu dot org


--- Comment #18 from manu at gcc dot gnu dot org  2007-12-16 16:51 ---
Ismail,

I am pretty sure that this won't be accepted for GCC 4.3, since it is not a
regression fix. Actually, I am unsure it would be accepted at all following the
comments to my original patch.

Nevertheless, if you want to take the risk of wasting your time, some advice:

* My original patch modified several testsuite files:
http://gcc.gnu.org/ml/gcc-patches/2007-02/msg01190.html, I guess you would need
something equivalent.

* Joseph pointed that: 
A human readable message can't just be passed to fprintf like that, you 
need to arrange for it to be extracted for translation and translated into 
the user's language.  Calling existing diagnostic functions does that, 
otherwise the string needs surrounding with _().

* Also he suggested:
this change to output should perhaps be off by 
default, with a new option to enable it people wanting this style can put 
in their Makefiles.

Good luck!


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26061



[Bug middle-end/26061] error and warning count

2007-12-16 Thread ismail at pardus dot org dot tr


--- Comment #19 from ismail at pardus dot org dot tr  2007-12-16 16:55 
---
Hi,

(In reply to comment #18)
 * My original patch modified several testsuite files:
 http://gcc.gnu.org/ml/gcc-patches/2007-02/msg01190.html, I guess you would 
 need
 something equivalent.

I added a flag to disable this to testsuite files (-fno-show-error-count)

 * Joseph pointed that: 
 A human readable message can't just be passed to fprintf like that, you 
 need to arrange for it to be extracted for translation and translated into 
 the user's language.  Calling existing diagnostic functions does that, 
 otherwise the string needs surrounding with _().

True, I'll fix.

 * Also he suggested:
 this change to output should perhaps be off by 
 default, with a new option to enable it people wanting this style can put 
 in their Makefiles.

I really don't want to make it default off as it's really useful. I hope to fix
the patch and make it default on for gcc 4.4 at least.

Thanks for the suggestions,
ismail


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26061



[Bug bootstrap/34494] -V option should be compatible with -B at least, possible others as well

2007-12-16 Thread schwab at suse dot de


--- Comment #4 from schwab at suse dot de  2007-12-16 17:02 ---
This has nothing to do with the topic of this bug.


-- 

schwab at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34494



[Bug c/34497] New: failures on i686-apple-darwin9 in sse4 testcases

2007-12-16 Thread howarth at nitro dot med dot uc dot edu
On i686-apple-darwin9, we are seeing failures in the following sse4 related
test cases...

FAIL: gcc.target/i386/sse4_1-blendvpd.c (test for excess errors)
WARNING: gcc.target/i386/sse4_1-blendvpd.c compilation failed to produce
executable
FAIL: gcc.target/i386/sse4_1-blendvps.c (test for excess errors)
WARNING: gcc.target/i386/sse4_1-blendvps.c compilation failed to produce
executable
FAIL: gcc.target/i386/sse4_1-insertps-1.c (test for excess errors)
WARNING: gcc.target/i386/sse4_1-insertps-1.c compilation failed to produce
executable
FAIL: gcc.target/i386/sse4_1-insertps-2.c (test for excess errors)
WARNING: gcc.target/i386/sse4_1-insertps-2.c compilation failed to produce
executable
FAIL: gcc.target/i386/sse4_1-pblendvb.c (test for excess errors)
WARNING: gcc.target/i386/sse4_1-pblendvb.c compilation failed to produce
executable
FAIL: gcc.target/i386/sse4_2-popcntl.c (test for excess errors)
WARNING: gcc.target/i386/sse4_2-popcntl.c compilation failed to produce
executable
FAIL: gcc.target/i386/sse4_2-popcntq.c (test for excess errors)
WARNING: gcc.target/i386/sse4_2-popcntq.c compilation failed to produce
executable

The actual failures in gcc.log look like...

Executing on host:
/sw/src/fink.build/gcc43-4.2.999-20071214/darwin_objdir/gcc/xgcc
-B/sw/src/fink.build/gcc43-4.2.999-20071214/darwin_obj
dir/gcc/
/sw/src/fink.build/gcc43-4.2.999-20071214/gcc-4.3-20071214/gcc/testsuite/gcc.target/i386/sse4_1-insertps-2.c
  -O2 -msse4.1 -fno-
show-column  -lm   -m32 -o ./sse4_1-insertps-2.exe(timeout = 300)
:161:suffix or operands invalid for `insertps'
:164:suffix or operands invalid for `insertps'
:167:suffix or operands invalid for `insertps'
:168:suffix or operands invalid for `insertps'
compiler exited with status 1
output is:
:161:suffix or operands invalid for `insertps'
:164:suffix or operands invalid for `insertps'
:167:suffix or operands invalid for `insertps'
:168:suffix or operands invalid for `insertps'

FAIL: gcc.target/i386/sse4_1-insertps-2.c (test for excess errors)
Excess errors:
:161:suffix or operands invalid for `insertps'
:164:suffix or operands invalid for `insertps'
:167:suffix or operands invalid for `insertps'
:168:suffix or operands invalid for `insertps'

WARNING: gcc.target/i386/sse4_1-insertps-2.c compilation failed to produce
executable


-- 
   Summary: failures on i686-apple-darwin9 in sse4 testcases
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: howarth at nitro dot med dot uc dot edu
 GCC build triplet: i686-apple-darwin9
  GCC host triplet: i686-apple-darwin9
GCC target triplet: i686-apple-darwin9


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34497



[Bug c/34497] failures on i686-apple-darwin9 in sse4 testcases

2007-12-16 Thread howarth at nitro dot med dot uc dot edu


--- Comment #1 from howarth at nitro dot med dot uc dot edu  2007-12-16 
17:19 ---
These same make check failures occur at both -m32 and -m64..


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34497



[Bug middle-end/34130] [4.1/4.2 Regression] the builtin abs() gives wrong result when used in some expression

2007-12-16 Thread belyshev at depni dot sinp dot msu dot ru


--- Comment #7 from belyshev at depni dot sinp dot msu dot ru  2007-12-16 
18:08 ---
Fixed on active branches.


-- 

belyshev at depni dot sinp dot msu dot ru changed:

   What|Removed |Added

 CC||belyshev at depni dot sinp
   ||dot msu dot ru
 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34130



[Bug tree-optimization/31081] [4.3 Regression] Inliner messes up SSA for abnormals

2007-12-16 Thread ebotcazou at gcc dot gnu dot org


--- Comment #11 from ebotcazou at gcc dot gnu dot org  2007-12-16 18:12 
---
Ada testcase at http://gcc.gnu.org/ml/gcc/2007-12/msg00470.html


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot gnu dot
   ||org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31081



[Bug target/34497] failures on i686-apple-darwin9 in sse4 testcases

2007-12-16 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2007-12-16 19:23 ---
This might be a bug in Apple's assembler.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c   |target


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34497



Fix PR 34305 - ICE on invalid real array bound

2007-12-16 Thread Thomas Koenig
Hello world,

this straightforward patch removes an unneeded ICE when
we already had emitted a perfectly valid error message.

OK for trunk?

Thomas

2007-12-16  Thomas Koenig  [EMAIL PROTECTED]

PR fortran/34305
* resolve.c (compare_bound):  If either of the types of
the arguments isn't INTEGER, return CMP_UNKNOWN.

2007-12-16  Thomas Koenig  [EMAIL PROTECTED]

PR fortran/34305
* gfortran.dg/real_dimension_1.f:  New test case.
Index: resolve.c
===
--- resolve.c	(revision 130913)
+++ resolve.c	(working copy)
@@ -3147,8 +3147,11 @@ compare_bound (gfc_expr *a, gfc_expr *b)
   || b == NULL || b-expr_type != EXPR_CONSTANT)
 return CMP_UNKNOWN;
 
+  /* If either of the types isn't INTEGER, we must have
+ raised an error earlier.  */
+
   if (a-ts.type != BT_INTEGER || b-ts.type != BT_INTEGER)
-gfc_internal_error (compare_bound(): Bad expression);
+return CMP_UNKNOWN;
 
   i = mpz_cmp (a-value.integer, b-value.integer);
 
! { dg-do compile }
! PR 34305 - make sure there's an error message for specifying a
  program test
  parameter (datasize = 1000) 
  dimension idata (datasize)  ! { dg-error must be of INTEGER type|must have constant shape }
  idata (1) = -1
  end


[Bug tree-optimization/31081] [4.3 Regression] Inliner messes up SSA for abnormals

2007-12-16 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |blocker


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31081



[Bug ada/15605] invalid program not detected, RM 8.3(22), 8.5.4(6)

2007-12-16 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
   Target Milestone|4.0.0   |---


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15605



[Bug libstdc++/34498] New: FAIL: 22_locale/global_templates/standard_facet_hierarchies.cc execution test

2007-12-16 Thread danglin at gcc dot gnu dot org
Executing on host: /mnt/gnu/gcc/objdir/./gcc/g++ -shared-libgcc
-B/mnt/gnu/gcc/o
bjdir/./gcc -nostdinc++
-L/mnt/gnu/gcc/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3
/src -L/mnt/gnu/gcc/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/src/.libs
-B/opt/g
nu/gcc/gcc-4.2.3/hppa2.0w-hp-hpux11.11/bin/
-B/opt/gnu/gcc/gcc-4.2.3/hppa2.0w-hp
-hpux11.11/lib/ -isystem /opt/gnu/gcc/gcc-4.2.3/hppa2.0w-hp-hpux11.11/include
-i
system /opt/gnu/gcc/gcc-4.2.3/hppa2.0w-hp-hpux11.11/sys-include -g -O2
-D_GLIBCX
X_ASSERT -fmessage-length=0 -g -O2 -DLOCALEDIR=. -nostdinc++
-I/mnt/gnu/gcc/ob
jdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/include/hppa2.0w-hp-hpux11.11
-I/mnt/gnu
/gcc/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/include
-I/mnt/gnu/gcc/gcc/libstd
c++-v3/libsupc++ -I/mnt/gnu/gcc/gcc/libstdc++-v3/include/backward
-I/mnt/gnu/gcc
/gcc/libstdc++-v3/testsuite/util
/mnt/gnu/gcc/gcc/libstdc++-v3/testsuite/22_loca
le/global_templates/standard_facet_hierarchies.cc-include bits/stdc++.h
./li
btestc++.a  -lm   -o ./standard_facet_hierarchies.exe(timeout = 600)
PASS: 22_locale/global_templates/standard_facet_hierarchies.cc (test for excess
errors)
Setting LD_LIBRARY_PATH to
:/mnt/gnu/gcc/objdir/gcc:/mnt/gnu/gcc/objdir/hppa2.0w
-hp-hpux11.11/./libstdc++-v3/src/.libs::/mnt/gnu/gcc/objdir/gcc:/mnt/gnu/gcc/obj
dir/hppa2.0w-hp-hpux11.11/./libstdc++-v3/src/.libs
terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid
FAIL: 22_locale/global_templates/standard_facet_hierarchies.cc execution test


-- 
   Summary: FAIL:
22_locale/global_templates/standard_facet_hierarchies.cc
execution test
   Product: gcc
   Version: 4.2.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa2.0w-hp-hpux11.11
  GCC host triplet: hppa2.0w-hp-hpux11.11
GCC target triplet: hppa2.0w-hp-hpux11.11


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34498



[Bug fortran/21881] ICE instead of error for large arrays in derived types

2007-12-16 Thread tkoenig at gcc dot gnu dot org


--- Comment #6 from tkoenig at gcc dot gnu dot org  2007-12-16 19:38 ---
I'll do this.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |tkoenig at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-10-01 10:52:19 |2007-12-16 19:38:41
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21881



[Bug libstdc++/34498] FAIL: 22_locale/global_templates/standard_facet_hierarchies.cc execution test

2007-12-16 Thread hp at gcc dot gnu dot org


--- Comment #1 from hp at gcc dot gnu dot org  2007-12-16 19:45 ---
Exactly the same for cris-elf.


-- 

hp at gcc dot gnu dot org changed:

   What|Removed |Added

 GCC target triplet|hppa2.0w-hp-hpux11.11   |hppa2.0w-hp-hpux11.11, cris-
   ||elf


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34498



[Bug testsuite/34499] New: FAIL: g++.dg/ext/visibility/namespace2.C (test for excess errors)

2007-12-16 Thread danglin at gcc dot gnu dot org
Executing on host: /mnt/gnu/gcc/objdir/gcc/testsuite/g++/../../g++
-B/mnt/gnu/gc
c/objdir/gcc/testsuite/g++/../../
/mnt/gnu/gcc/gcc/gcc/testsuite/g++.dg/ext/visi
bility/namespace2.C  -nostdinc++
-I/mnt/gnu/gcc/objdir/hppa2.0w-hp-hpux11.11/lib
stdc++-v3/include/hppa2.0w-hp-hpux11.11
-I/mnt/gnu/gcc/objdir/hppa2.0w-hp-hpux11
.11/libstdc++-v3/include -I/mnt/gnu/gcc/gcc/libstdc++-v3/libsupc++
-I/mnt/gnu/gc
c/gcc/libstdc++-v3/include/backward
-I/mnt/gnu/gcc/gcc/libstdc++-v3/testsuite/ut
il -fmessage-length=0  -fvisibility=hidden  -S  -o namespace2.s(timeout =
30
0)
/mnt/gnu/gcc/gcc/gcc/testsuite/g++.dg/ext/visibility/namespace2.C: In member
fun
ction 'void Test::test()':
/mnt/gnu/gcc/gcc/gcc/testsuite/g++.dg/ext/visibility/namespace2.C:20: warning:
v
isibility attribute not supported in this configuration; ignored
output is:
/mnt/gnu/gcc/gcc/gcc/testsuite/g++.dg/ext/visibility/namespace2.C: In member
fun
ction 'void Test::test()':
/mnt/gnu/gcc/gcc/gcc/testsuite/g++.dg/ext/visibility/namespace2.C:20: warning:
v
isibility attribute not supported in this configuration; ignored

FAIL: g++.dg/ext/visibility/namespace2.C (test for excess errors)
Excess errors:
/mnt/gnu/gcc/gcc/gcc/testsuite/g++.dg/ext/visibility/namespace2.C:20: warning:
v
isibility attribute not supported in this configuration; ignored


-- 
   Summary: FAIL: g++.dg/ext/visibility/namespace2.C (test for
excess errors)
   Product: gcc
   Version: 4.2.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa2.0w-hp-hpux11.11
  GCC host triplet: hppa2.0w-hp-hpux11.11
GCC target triplet: hppa2.0w-hp-hpux11.11


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34499



[Bug libstdc++/34498] FAIL: 22_locale/global_templates/standard_facet_hierarchies.cc execution test

2007-12-16 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #2 from dave at hiauly1 dot hia dot nrc dot ca  2007-12-16 
20:06 ---
Subject: Re:  FAIL: 22_locale/global_templates/standard_facet_hierarchies.cc
execution test

 Exactly the same for cris-elf.

There's probably a missing check for named locales.

Dave


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34498



[Bug libstdc++/34498] FAIL: 22_locale/global_templates/standard_facet_hierarchies.cc execution test

2007-12-16 Thread pcarlini at suse dot de


--- Comment #3 from pcarlini at suse dot de  2007-12-16 20:22 ---
Already noticed here:

  http://gcc.gnu.org/ml/libstdc++/2007-12/msg00059.html

I'm adding Benjamin in CC.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 CC||bkoz at redhat dot com
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-12-16 20:22:24
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34498



[Bug target/34497] failures on i686-apple-darwin9 in sse4 testcases

2007-12-16 Thread howarth at nitro dot med dot uc dot edu


--- Comment #3 from howarth at nitro dot med dot uc dot edu  2007-12-16 
20:23 ---
Created an attachment (id=14782)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14782action=view)
preprocessed source file from sse3_1-insertps-2.c testcase on
i686-apple-darwin9


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34497



[Bug target/34497] failures on i686-apple-darwin9 in sse4 testcases

2007-12-16 Thread howarth at nitro dot med dot uc dot edu


--- Comment #4 from howarth at nitro dot med dot uc dot edu  2007-12-16 
20:24 ---
Created an attachment (id=14783)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14783action=view)
assembly file from sse3_1-insertps-2.c testcase on i686-apple-darwin9


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34497



[Bug fortran/34246] gfortran.dg/bind_c_usage_16.f03 doesn't work

2007-12-16 Thread burnus at gcc dot gnu dot org


--- Comment #14 from burnus at gcc dot gnu dot org  2007-12-16 20:24 ---
Subject: Bug 34246

Author: burnus
Date: Sun Dec 16 20:24:32 2007
New Revision: 130991

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=130991
Log:
2007-12-16  Tobias Burnus  [EMAIL PROTECTED]

PR fortran/34246
* trans-types.c (gfc_init_types): Change build_type_variant
to build_qualified_type.
(gfc_sym_type): Return gfc_character1_type_node for
character-returning bind(C) functions.
* trans-expr.c (gfc_conv_function_call): Do not set
se-string_length for character-returning bind(c) functions.
(gfc_trans_string_copy,gfc_trans_scalar_assign):
 Support also single characters.

2007-12-16  Tobias Burnus  [EMAIL PROTECTED]

PR fortran/34246
* gfortran.dg/bind_c_usage_16.f03: Extend test.


Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-expr.c
trunk/gcc/fortran/trans-types.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/bind_c_usage_16.f03


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34246



[Bug rtl-optimization/32283] Missed induction variable optimization

2007-12-16 Thread rakdver at gcc dot gnu dot org


--- Comment #17 from rakdver at gcc dot gnu dot org  2007-12-16 20:29 
---
A possible way how to solve the problem:
http://gcc.gnu.org/ml/gcc-patches/2007-12/msg00769.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32283



[Bug fortran/34500] New: Bind(C): Character returning function with ENTRY gives ICE

2007-12-16 Thread burnus at gcc dot gnu dot org
Test case:

function test() bind(C)
  use iso_c_binding
  implicit none
  character(len=1,kind=c_char) :: test, bar
entry bar() bind(C)
end function test

ICE occurs if either test() or bar() or both are bind(c).

The ENTRY fix needs to go into build_entry_thunks:
  if (thunk_sym-attr.function)
{
  if (gfc_return_by_reference (ns-proc_name))
{
This branch is entered as the master function,  proc_name, is is_bind_c ==
false, but it fails currently if (thunk_sym-attr.is_bind_c 
thunk_sym-ts.type == BT_CHARACTER).

The proper tree should looks more or less as follows:

test2 ()
{
  character(kind=1) tmp[1:1];
  integer(kind=4) len;
  master.0.test2 (0, tmp, len);
  return tmp[1];

That is test() itself returns a scalar character, but master.0.test2 takes the
string as argument, which allows to combine bind(C) with non-bind(C) functions
and allows for different string lengths of ENTRY and function (cf. PR 34421).


-- 
   Summary: Bind(C): Character returning function with ENTRY gives
ICE
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
OtherBugsDependingO 32630
 nThis:


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34500



[Bug fortran/34246] gfortran.dg/bind_c_usage_16.f03 doesn't work

2007-12-16 Thread burnus at gcc dot gnu dot org


--- Comment #15 from burnus at gcc dot gnu dot org  2007-12-16 20:37 ---
FIXED on the trunk (4.3.0). Please open a new bug if there are new/remaining
problems.

The Bind(C) ENTRY part of this PR is now tracked as PR 34500.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34246



[Bug tree-optimization/34501] New: The vector cost model does not seem suited for Intel Core2Duo

2007-12-16 Thread dominiq at lps dot ens dot fr
For the induct.f90 test case from the polyhedron test suite, I get the
following timings (revision 130990):

[ibook-dhum] lin/source% time gfc -O3 -ffast-math -funroll-loops induct.f90
11.226u 0.496s 0:12.42 94.2%0+0k 0+54io 15pf+0w
[ibook-dhum] lin/source% time a.out  tmp
91.148u 0.092s 1:31.27 99.9%0+0k 0+9io 12pf+0w
[ibook-dhum] lin/source% time gfc -O3 -ffast-math -funroll-loops --param
min-vect-loop-bound=1 induct.f90
11.205u 0.492s 0:11.84 98.7%0+0k 0+27io 0pf+0w
[ibook-dhum] lin/source% time a.out  tmp
91.145u 0.096s 1:31.24 99.9%0+0k 0+4io 0pf+0w
[ibook-dhum] lin/source% time gfc -O3 -ffast-math -funroll-loops --param
min-vect-loop-bound=2 induct.f90
11.101u 0.491s 0:11.78 98.3%0+0k 0+17io 0pf+0w
[ibook-dhum] lin/source% time a.out  tmp
73.596u 0.054s 1:13.65 99.9%0+0k 0+9io 0pf+0w

Am I correct to understand that for this revisions -O3 implies
vectorization+cost_model?
If yes, it seems that the cost model should be tuned for the Intel Core2Duo.


-- 
   Summary: The vector cost model does not seem suited for Intel
Core2Duo
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dominiq at lps dot ens dot fr
 GCC build triplet: i686-apple-darwin9
  GCC host triplet: i686-apple-darwin9
GCC target triplet: i686-apple-darwin9


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34501



[Bug fortran/34305] ICE with array(real) declaration

2007-12-16 Thread tkoenig at gcc dot gnu dot org


--- Comment #2 from tkoenig at gcc dot gnu dot org  2007-12-16 21:09 ---
Subject: Bug 34305

Author: tkoenig
Date: Sun Dec 16 21:09:34 2007
New Revision: 130993

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=130993
Log:
2007-12-16  Thomas Koenig  [EMAIL PROTECTED]

PR fortran/34305
* resolve.c (compare_bound):  If either of the types of
the arguments isn't INTEGER, return CMP_UNKNOWN.

2007-12-16  Thomas Koenig  [EMAIL PROTECTED]

PR fortran/34305
* gfortran.dg/real_dimension_1.f:  New test case.


Added:
trunk/gcc/testsuite/gfortran.dg/real_dimension_1.f
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34305



[Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter

2007-12-16 Thread mmitchel at gcc dot gnu dot org


--- Comment #5 from mmitchel at gcc dot gnu dot org  2007-12-16 21:11 
---
I disagree with Andrew's Comment #4.  Once we implement a feature in the
compiler, users should reasonably expect it to be correct.  We cannot
simultaneously say Look, we have exciting new C++0x features! and Oh, you
found a bug?  That's not very serious, since it's just a new C++0x feature.

Thus, I've upgraded this to P1.


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P2  |P1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33943



[Bug target/34501] The vector cost model does not seem suited for Intel Core2Duo

2007-12-16 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
   Severity|normal  |enhancement
  Component|tree-optimization   |target


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34501



[Bug target/34497] failures on i686-apple-darwin9 in sse4 testcases

2007-12-16 Thread howarth at nitro dot med dot uc dot edu


--- Comment #5 from howarth at nitro dot med dot uc dot edu  2007-12-16 
21:27 ---
Filed as Radar Problem ID: 5650346.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34497



[Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter

2007-12-16 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2007-12-16 21:27 ---
(In reply to comment #5)
 I disagree with Andrew's Comment #4.  Once we implement a feature in the
 compiler, users should reasonably expect it to be correct.  We cannot
 simultaneously say Look, we have exciting new C++0x features! and Oh, you
 found a bug?  That's not very serious, since it's just a new C++0x feature.

I seriously disagree, this is not a regression in that code never was supported
before and really C++0x support should not block the release just because
people feel this is an important feature of 4.3.0.  Also another thing is that
we have some ODR violations in libstdc++ that the libstdc++ folks have not
replied to me about yet.

See http://gcc.gnu.org/ml/libstdc++/2007-08/msg00032.html and some others.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33943



  1   2   >