for discussion: should we close all the Java-related bugs?

2024-04-26 Thread Abe Skolnik via Gcc-bugs
Dear all,

AFAIK, GCJ has been dead for _years_...  quoting 
: "As of GCC 7, the GCC Java frontend and 
associated libjava runtime library have been removed from GCC. The information 
on this page is kept here for reference but only applies to GCC 6 and earlier."

... yet we still have at least...

67 bugs open against the component "awt":  
https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=__open__=awt

... and at least...

479 bugs open against the product "classpath":  
https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=__open__=classpath



For discussion: why not close _all_ Java-related bugs in the GCC bugzilla, 
perhaps with a nicely-granular status such as 
"CLOSED_WONTFIX___WONTFIX_BECAUSE_FEATURE_IS_DEPRECATED", or at least "good" 
old "CLOSED_WONTFIX"?



With all due respect to whoever [if anybody] is unhappily still responsible for 
backporting bug-fixes to pre-7 GCC re e.g. the C or C++ or Fortran compiler[s], 
I think the chances of _anybody_ *ever* fixing those old Java-in-GCC bugs is 
_extremely_ tiny.

Sincerely,

Abe


[PATCH] vax: resolve long-standing documentation bugs re floating-point codegen [PR79646]

2024-04-26 Thread Abe Skolnik
Howdy, y`all.

After many years away from contributing to GCC, I am rejoining as a "gardener": 
my intent/plan is to clean up the bug backlog, weeding out old bugs that are 
relatively-easy to fix yet have languished for a long time.  First for today`s 
gardening: a documentation-only bug or two related to how floating-point code 
is generated for VAX-compatible CPUs.  Yes, _VAX_.

I made sure to update the translation files, using an on-line translator for 
languages which I can`t really read/write on my own.  In at least one case 
where the translation was empty before, I left it empty.  In at least one case 
where the translation was empty before, I filled it in.

Copyright assignment to the FSF, yadda yadda yadda...  all the usual.

Sincerely,

Abe
From ec5f259d0e7dd7dcd1194f775bf00d3decb786f3 Mon Sep 17 00:00:00 2001
From: Abe 
Date: Wed, 24 Apr 2024 21:06:50 -0400
Subject: [PATCH] PR79646: corrected VAX-specific message strings related to
 double-precision codegen, updated+improved translations of those messages.

PR target/79646 - Typos in vax.opt

	PR target/79646

gcc/ChangeLog:

	* config/vax/vax.opt:

gcc/po/ChangeLog:

	* be.po:
	* da.po:
	* de.po:
	* el.po:
	* es.po:
	* fi.po:
	* fr.po:
	* hr.po:
	* id.po:
	* ja.po:
	* nl.po:
	* ru.po:
	* sr.po:
	* sv.po:
	* tr.po:
	* uk.po:
	* vi.po:
	* zh_CN.po:
	* zh_TW.po:

---
 gcc/config/vax/vax.opt |  8 
 gcc/po/be.po   |  8 
 gcc/po/da.po   | 10 --
 gcc/po/de.po   |  8 
 gcc/po/el.po   |  8 
 gcc/po/es.po   |  8 
 gcc/po/fi.po   |  8 
 gcc/po/fr.po   |  8 
 gcc/po/hr.po   |  4 ++--
 gcc/po/id.po   |  8 
 gcc/po/ja.po   |  8 
 gcc/po/nl.po   |  4 ++--
 gcc/po/ru.po   |  8 
 gcc/po/sr.po   | 10 --
 gcc/po/sv.po   |  6 +++---
 gcc/po/tr.po   | 10 --
 gcc/po/uk.po   |  4 ++--
 gcc/po/vi.po   |  8 
 gcc/po/zh_CN.po| 10 --
 gcc/po/zh_TW.po| 10 --
 20 files changed, 73 insertions(+), 83 deletions(-)

diff --git a/gcc/config/vax/vax.opt b/gcc/config/vax/vax.opt
index 2cc66e543fe..fa2be78e9fa 100644
--- a/gcc/config/vax/vax.opt
+++ b/gcc/config/vax/vax.opt
@@ -20,19 +20,19 @@
 
 md
 Target RejectNegative InverseMask(G_FLOAT)
-Target DFLOAT double precision code.
+Generate DFLOAT double-precision code.
 
 md-float
 Target RejectNegative InverseMask(G_FLOAT)
-Target DFLOAT double precision code.
+Generate DFLOAT double-precision code.
 
 mg
 Target RejectNegative Mask(G_FLOAT)
-Generate GFLOAT double precision code.
+Generate GFLOAT double-precision code.
 
 mg-float
 Target RejectNegative Mask(G_FLOAT)
-Generate GFLOAT double precision code.
+Generate GFLOAT double-precision code.
 
 mgnu
 Target RejectNegative InverseMask(UNIX_ASM)
diff --git a/gcc/po/be.po b/gcc/po/be.po
index ae92f9b7b96..db102673665 100644
--- a/gcc/po/be.po
+++ b/gcc/po/be.po
@@ -11502,13 +11502,13 @@ msgstr ""
 
 #: config/vax/vax.opt:23 config/vax/vax.opt:27
 #, no-c-format
-msgid "Target DFLOAT double precision code."
-msgstr ""
+msgid "Generate DFLOAT double-precision code."
+msgstr "Генерыраваць код double-precision для DFLOAT."
 
 #: config/vax/vax.opt:31 config/vax/vax.opt:35
 #, no-c-format
-msgid "Generate GFLOAT double precision code."
-msgstr ""
+msgid "Generate GFLOAT double-precision code."
+msgstr "Генерыраваць код double-precision для GFLOAT."
 
 #: config/vax/vax.opt:39
 #, fuzzy, no-c-format
diff --git a/gcc/po/da.po b/gcc/po/da.po
index 9871ec5b82b..7d82a108897 100644
--- a/gcc/po/da.po
+++ b/gcc/po/da.po
@@ -12372,15 +12372,13 @@ msgstr ""
 
 #: config/vax/vax.opt:23 config/vax/vax.opt:27
 #, fuzzy, no-c-format
-#| msgid "Generate GFLOAT double precision code"
-msgid "Target DFLOAT double precision code."
-msgstr "Opret GFLOAT dobbeltpræcision kode"
+msgid "Generate DFLOAT double-precision code."
+msgstr "Opret GFLOAT dobbeltpræcision kode."
 
 #: config/vax/vax.opt:31 config/vax/vax.opt:35
 #, fuzzy, no-c-format
-#| msgid "Generate GFLOAT double precision code"
-msgid "Generate GFLOAT double precision code."
-msgstr "Opret GFLOAT dobbeltpræcision kode"
+msgid "Generate GFLOAT double-precision code."
+msgstr "Opret GFLOAT dobbeltpræcision kode."
 
 #: config/vax/vax.opt:39
 #, fuzzy, no-c-format
diff --git a/gcc/po/de.po b/gcc/po/de.po
index db42d7191ff..1303b189a4b 100644
--- a/gcc/po/de.po
+++ b/gcc/po/de.po
@@ -11333,13 +11333,13 @@ msgstr "Daten werden ausgehend vom Start des Programmcodes statt der GOT adressi
 
 #: config/vax/vax.opt:23 config/vax/vax.opt:27
 #, no-c-format
-msgid "Target DFLOAT double precision code."
-msgstr "DFLOAT-Code mit doppelter Genauigkeit generieren."
+msgid "Generate DFLOAT double-precision code."
+msgstr "Für doppelter Genauigkeit, DFLOAT-Code generieren."
 
 #: config/vax/vax.opt:31 config/vax/vax.opt:35
 #, no-c-format

Re: Results from SPEC2006 FP analysis done at Richard`s request {late July / early August}

2015-08-14 Thread Abe Skolnik
[Alan wrote:]

 Interesting, thanks.  For what kind of architecture are these -

You are welcome.

You raised 2 or 3 good points, I think.

First: the numbers are all from builds on and for the AMD64 ISA, AKA x86_64.  
My apologies for forgetting to mention that vital fact.

Second:  I did not tell the SPEC build system to use any particular -march or 
-mtune flags, and AFAIK it [SPEC] did not add any that I didn`t specify.  In 
other words, those compiler-tuning values were almost certainly at their GCC 
defaults.

[A question about the preceding: is -march=native the default nowadays, at 
least on GNU/Linux?  AFAIK the default GCC behavior is (still?) to generate 
code for the most generic form of the target ISA unless an explicit flag 
overrides this.]

Third: the server in question has Intel silicon for its CPUs.  If an implicit 
-march=native or similar is suspected of having been a factor, then please 
let me know and I`ll report back on the specifics.  [I am at home right now, so 
I have no easy way of getting that data right now.]


 specifically: with/out masked/gathering loads/stores ??


TTBOMK, generic AMD64/x86_64 does _not_ have the gathering stuff and the very 
latest from Intel _does_.

Sorry, but I don`t know about the masked form[s].  If that`s important to know, 
then please tell me and I will investigate.

Regards,

Abe


fix PR46029: reimplement if conversion of loads and stores

2015-06-12 Thread Abe Skolnik
Hi everybody!

In the current implementation of if conversion, loads and stores are
if-converted in a thread-unsafe way:

  * loads were always executed, even when they should have not been.
Some source code could be rendered invalid due to null pointers
that were OK in the original program because they were never
dereferenced.

  * writes were if-converted via load/maybe-modify/store, which
renders some code multithreading-unsafe.

This patch reimplements if-conversion of loads and stores in a safe
way using a scratchpad allocated by the compiler on the stack:

  * loads are done through an indirection, reading either the correct
data from the correct source [if the condition is true] or reading
from the scratchpad and later ignoring this read result [if the
condition is false].

  * writes are also done through an indirection, writing either to the
correct destination [if the condition is true] or to the
scratchpad [if the condition is false].

Vectorization of if-cvt-stores-vect-ifcvt-18.c disabled because the
old if-conversion resulted in unsafe code that could fail under
multithreading even though the as-written code _was_ thread-safe.

Passed regression testing and bootstrap on amd64-linux.
Is this OK to commit to trunk?

Regards,

Abe




2015-06-12  Sebastian Pop  s@samsung.com
Abe Skolnik  a.skol...@samsung.com

PR tree-optimization/46029
* tree-data-ref.c (struct data_ref_loc_d): Moved...
(get_references_in_stmt): Exported.
* tree-data-ref.h (struct data_ref_loc_d): ... here.
(get_references_in_stmt): Declared.

* doc/invoke.texi (-ftree-loop-if-convert-stores): Update description.
* tree-if-conv.c (struct ifc_dr): Removed.
(IFC_DR): Removed.
(DR_WRITTEN_AT_LEAST_ONCE): Removed.
(DR_RW_UNCONDITIONALLY): Removed.
(memrefs_read_or_written_unconditionally): Removed.
(write_memrefs_written_at_least_once): Removed.
(ifcvt_could_trap_p): Does not take refs parameter anymore.
(ifcvt_memrefs_wont_trap): Removed.
(has_non_addressable_refs): New.
(if_convertible_gimple_assign_stmt_p): Call has_non_addressable_refs.
Removed use of refs.
(if_convertible_stmt_p): Removed use of refs.
(if_convertible_gimple_assign_stmt_p): Same.
(if_convertible_loop_p_1): Removed use of refs.  Remove initialization
of dr-aux, DR_WRITTEN_AT_LEAST_ONCE, and DR_RW_UNCONDITIONALLY.
(insert_address_of): New.
(create_scratchpad): New.
(create_indirect_cond_expr): New.
(predicate_mem_writes): Call create_indirect_cond_expr.  Take an extra
parameter for scratch_pad.
(combine_blocks): Same.
(tree_if_conversion): Same.

testsuite/
* g++.dg/tree-ssa/ifc-pr46029.C: New.
* gcc.dg/tree-ssa/ifc-5.c: Make it exactly like the FFmpeg kernel.
* gcc.dg/tree-ssa/ifc-8.c: New.
* gcc.dg/tree-ssa/ifc-9.c: New.
* gcc.dg/tree-ssa/ifc-10.c: New.
* gcc.dg/tree-ssa/ifc-11.c: New.
* gcc.dg/tree-ssa/ifc-12.c: New.
* gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c: Disabled.
* gcc.dg/vect/if-cvt-stores-vect-ifcvt-19.c: New.
---
 gcc/ChangeLog  |  28 ++
 gcc/doc/invoke.texi|  18 +-
 gcc/testsuite/g++.dg/tree-ssa/ifc-pr46029.C|  76 
 gcc/testsuite/gcc.dg/tree-ssa/ifc-10.c |  17 +
 gcc/testsuite/gcc.dg/tree-ssa/ifc-11.c |  16 +
 gcc/testsuite/gcc.dg/tree-ssa/ifc-12.c |  13 +
 gcc/testsuite/gcc.dg/tree-ssa/ifc-5.c  |  19 +-
 gcc/testsuite/gcc.dg/tree-ssa/ifc-8.c  |  29 ++
 gcc/testsuite/gcc.dg/tree-ssa/ifc-9.c  |  17 +
 .../gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c  |  10 +-
 .../gcc.dg/vect/if-cvt-stores-vect-ifcvt-19.c  |  46 +++
 gcc/tree-data-ref.c|  13 +-
 gcc/tree-data-ref.h|  14 +
 gcc/tree-if-conv.c | 392 +
 14 files changed, 460 insertions(+), 248 deletions(-)
 create mode 100644 gcc/testsuite/g++.dg/tree-ssa/ifc-pr46029.C
 create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/ifc-10.c
 create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/ifc-11.c
 create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/ifc-12.c
 create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/ifc-8.c
 create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/ifc-9.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-19.c

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3dec6b1..70af07c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,31 @@
+2015-05-18  Sebastian Pop  s@samsung.com
+
+   PR tree-optimization/46029
+   * doc/invoke.texi (-ftree-loop-if-convert-stores): Update description.
+   * tree-if-conv.c (has_unaligned_memory_refs): New