Re: P2996R2

2024-03-25 Thread Jonathan Wakely via Gcc
On Sun, 24 Mar 2024, 23:07 Jeffrey Cliff via Gcc,  wrote:

> i notice P2996R2 (
> https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2996r2.html
> ) isn't listed yet in
> https://gcc.gnu.org/projects/cxx-status.html#cxx26
> i'm assuming it's not implemented yet but not sure where to suggest
> that that particular chart include it
> is this the place?  what is the policy for reporting C++2n P
> proposals for inclusion on it?
>


That proposal is still making its way through the C++ committee and is not
close to being approved yet.

When it's approved for inclusion in the C++ working draft then it will be
appropriate to add to that page.


Sourceware 2024 - The Plan

2024-03-25 Thread Mark Wielaard
The Sourceware Project Leadership Committee in discussion with the
Software Freedom Conservancy staff came up with the Sourceware 2024
plan and is looking at longer term projects that would be needed to
keep your infrastructure running smoothly and securely for the next
couple of years. We are currently discussing how to distribute these
tasks over paid staff, overseers, project admin volunteers and
contractors.

We realize that our plans may not be your plans, so really like to get
feedback. It is our goal to offer a worry-free, friendly home for Free
Software core toolchain and developer tools projects. So please do
reach out and share your ideas on the overseers mailinglist, file
infrastructure bugs, join our channel #overseers on irc or join one of
the monthly open office hours:
https://sourceware.org/mission.html#organization

For 2024 we want to concentrate on isolating and scaling the
services. In the last two years we doubled the number of machines (and
more are on the way!) that we run the services on. And some of the new
services are already setup in containers or on isolated VMs. But most
of the services are still isolated through traditional unix
mechanisms.  Moving those into their own container or VM will help
scaling by making it easy to move between separate physical
machines. It will also provide security in depth.

It is our preference to run distro packaged software (e.g. mailman,
postfix, public-inbox, etc.). That way we have easy security updates.
But for some services we track an upstream stable branch (e.g.
buildbot, patchwork and bugzilla). While isolating/containerizing
these services we will also publish the internal git repos (if they
contain any local adjustments), so we can easier share patches with
other organizations. Ideally we'll also publish ansible playbooks.
That way, over time, we will provide services that anybody can
replicate and setup themselves.

Longer term we identified a couple of thing, mainly around isolation
(the theme of 2024), email, spam, mailinglists, search, AI bots and
services upgrades that we believe are important to prepare for.

Concretely we are looking at:

- mailman2 upgrade/replacement
  https://sourceware.org/bugzilla/show_bug.cgi?id=31545

- bugzilla upgrade
  https://sourceware.org/bugzilla/show_bug.cgi?id=31547

- (local) search and AI bot/spiders, sitemaps, ...
  https://sourceware.org/bugzilla/show_bug.cgi?id=31551
  https://sourceware.org/bugzilla/show_bug.cgi?id=31548
  https://sourceware.org/bugzilla/show_bug.cgi?id=30610
  https://sourceware.org/bugzilla/show_bug.cgi?id=31549

- Distributed spam fighting
  https://sourceware.org/bugzilla/show_bug.cgi?id=31550

- buildbot email templates, pre-commit testing, buildbot-travis, ...
  https://sourceware.org/bugzilla/show_bug.cgi?id=31552

More items can be found in the Sourceware infrastructure bugzilla
https://sourceware.org/bugzilla/buglist.cgi?component=Infrastructure&product=sourceware&resolution=---

If you read this far we really like your feedback, even if it is a
simple "OK!", Reply-To: overse...@sourceware.org Or add you comments
to the bugzilla items above. And take a look at other ways to
participate https://sourceware.org/mission.html#organization

You can also help by becoming a Conservancy Sustainer
https://sfconservancy.org/sustainer/ or donating directly to
Sourceware https://sourceware.org/donate.html

Thanks,

  Frank Ch. Eigler, Christopher Faylor, Ian Kelling, Ian Lance Taylor,
  Tom Tromey, Jon Turney, Mark J. Wielaard, Elena Zannoni


Re: [RFC] add regenerate Makefile target

2024-03-25 Thread Christophe Lyon via Gcc
On Thu, 21 Mar 2024 at 15:32, Christophe Lyon
 wrote:
>
> On Wed, 20 Mar 2024 at 16:34, Simon Marchi  wrote:
> >
> > On 3/18/24 13:25, Christophe Lyon wrote:
> > > Well the rule to regenerate Makefile.in (eg in in opcodes/) is a bit
> > > more complex
> > > than just calling automake. IIUC it calls automake --foreign it any of
> > > *.m4 file from $(am__configure_deps) that is newer than Makefile.in
> > > (with an early exit in the loop), does nothing if Makefile.am or
> > > doc/local.mk are newer than Makefile.in, and then calls 'automake
> > > --foreign Makefile'
> >
> > The rules looks complex because they've been generated by automake, this
> > Makefile.in is not written by hand.  And I guess automake has put
> > `--foreign` there because foreign is used in Makefile.am:
> Yes, I know :-)
>
> >
> >   AUTOMAKE_OPTIONS = foreign no-dist
> >
> > But a simple call so `automake -f` (or `autoreconf -f`) just works, as
> > automake picks up the foreign option from AUTOMAKE_OPTIONS, so a human
> > or an external script who wants to regenerate things would probably just
> > use that.
>
> Indeed. I guess my concern is: if some change happens to
> Makefile.am/Makefile.in which would imply that 'autoreconf -f' would
> not work, how do we make sure autoregen.py (or whatever script) is
> updated accordingly? Or maybe whatever change is made to
> Makefile.am/Makefile.in, 'autoreconf -f' is supposed to handle it
> without additional flag?
>
I think I've just noticed a variant of this: if you look at
opcodes/Makefile.in, you can see that aclocal.m4 depends on
configure.ac (among others). So if configure.ac is updated, a
maintainer-mode rule in Makefile.in will call aclocal and regenerate
aclocal.m4.

However, autoregen.py calls aclocal only if configure.ac contains
AC_CONFIG_MACRO_DIRS, which is not the case here.

That's probably a bug in opcode/configure.ac, but still the current
Makefile.in machinery would update aclocal.m4 as needed when
autoregen.py will not.

I haven't audited all configure.ac but there are probably other
occurrences of this.

Christophe

> >
> > > The bot I want to put in place would regenerate things as they are
> > > supposed to be, then build and run the testsuite to make sure that
> > > what is supposed to be committed would work (if the committer
> > > regenerates everything correctly)
> >
> > For your job, would it be fine to just force-regenerate everything and
> > ignore timestamps (just like the buildbot's autoregen job wants to do)?
> > It would waste a few cycles, but it would be much simpler.
> >
> Yes, that would achieve the purpose: be able to handle as many patches
> as possible in precommit-CI.
> And as described earlier, for binutils this currently means:
> autoregen
> confgure --enable-maintainer-mode
> make all (with a low -j value otherwise we have random build failures)
> and my proposal to workaround the problem with -j is to do
> make all-bfd all-libiberty regenerate -j1
> make all -j XXX
>
> Another possibility would be a policy change in how patches are
> submitted, to require that they contain all the autogenerated files.
>
>
> > Simon


Re: Interest in Contributing to OpenACC Support & Code Offloading Projects for GSOC

2024-03-25 Thread Martin Jambor
Hello,

On Thu, Mar 21 2024, Soumya Ranjan via Gcc wrote:
> Hello,
>
> I hope this message finds you well. My name is Soumya Ranjan, and I hold a
> Bachelor's degree in Electrical Engineering and a Master's in Computer
> Engineering. I am currently working as a Firmware Engineer at Qualcomm
> Wireless R&D. I recently discovered your organization and the exciting GSOC
> projects you are proposing, namely "Offloading to a separate process on the
> same host" and "Enhance OpenACC support." I am writing to express my
> enthusiastic interest in potentially contributing to either of these
> projects and to inquire about the next steps to formally apply or draft a
> proposal.

The above suggests you are no longer a full time student (but then your
email address indicates you might be :-) so I suppose you fulfill the
7.1.(a).iv clause of GSoC rules by being a "beginner to open source
software development."  If so, we are delighted that you decided to
start your FOSS journey with us.

>
> My academic journey was enriched with substantial coursework in operating
> systems and parallel computing, sparking a deep interest in efficient
> computational strategies and optimizations. My professional experience has
> further developed my skills in C/C++, offloading compilation, and
> inter-process communication. Given this foundation, I am confident in my
> capacity to make a meaningful contribution to either the project focused on
> enhancing debugging capabilities for offloaded code or the one aimed at
> filling the existing gaps in OpenACC support, depending on where my skills
> can be best utilized.
>
> I realize I am reaching out at a time when proposals are likely already
> underway. I apologize for this timing and am committed to diligently
> catching up. I've started to familiarize myself with the "Before You Apply"
> guidelines on your website to ensure I understand the necessary preparatory
> steps.
>
> Could you kindly advise if there are any additional specific steps I should
> follow or particular aspects of either project you would recommend focusing
> on in my proposal? The prospect of contributing to advancements in either
> domain is highly motivating to me, and I am keen to align my efforts with
> the project's most pressing needs.

The generic steps are listed in the "Before You Apply" guidelines. 

As far as the "Offloading to a separate process" project is concerned,
please have a look at a recent discussions in the mailing list archive,
specifically at
  - https://gcc.gnu.org/pipermail/gcc/2024-March/243462.html and
  - https://gcc.gnu.org/pipermail/gcc/2024-March/243478.html

As far as I can tell, the project on enhancing the OpenACC has not been
discussed yet.  I am not really familiar with OpenACC myself, so can
only give rudimentary advice.  First, I'd make sure that I know what the
routines/directives that need to be implemented do.  Second, I'd then
find some basic OpenACC testcase and do a similar experiment as
described in the email messages linked above (but perhaps with
-fdump-tree-all and not just -fdump-tree-optimize).  That should give
you an idea where to look next.  

Please feel free to ask here on the mailing list for help with any
specific technical issue or question you encounter.

> I am eager to learn more about how I can integrate into your team and
> contribute effectively. I believe this opportunity aligns perfectly with my
> professional aspirations and skills, and I am excited about the potential
> collaboration.

Given the timing, I'd focus on the proposal.  The key should be to
convince us that you have the ability to complete the project.
I.e. that you understand what needs to be done and have a rough idea - a
very rough but mostly correct idea - what and where needs to be changed
to do so.

Good luck!

Martin

>
> Thank you very much for considering my application. I look forward to the
> opportunity to further discuss how I can contribute to the success of your
> project.
>
> Warm regards,
> Soumya Ranjan


Re: GSoC

2024-03-25 Thread Martin Jambor
On Sat, Mar 23 2024, koushiki khobare via Gcc wrote:
> Respected sir,
>
> I am Koushiki Khobare from India and currently a first year
> student(Computer Science Student) studying in Pune Institute of
> Computer Technology, Pune, Maharashtra. Recently I heard about GSoC
> and got very excited to explore it. I will be very much thankful to
> you if you provide me some guidance and help me to explore more. I
> have learnt C programming language. So I visited your projects and
> they were all amazing and quite interesting to work upon.

We are delighted you found contributing to GCC interesting.  

Please note that apart from C (and C++!) coding skills, most projects
require some rudimentary theoretical background in compilers.

> One of them
> I am thinking to explore is “Rust Front End”.So I will be grateful to
> work with all my mentors- Mr.Pierre-Emmaunel Patry, Mr. Philip Herron,
> Mr.Arthur Cohen, all being excellent in their works.

Please note that Rust-GCC projects are a bit special in the sense that
they are often discussed primarily on Zulip of the gcc-rust team:

https://gcc-rust.zulipchat.com/

So you may want to reach out to them there as well.

> I will be so much
> of grateful if I get to know what actual skills do you expect from me
> apart from mentioned on website and guide me with what all do I need
> to do in my proposal.

The skills mentioned on the website
(i.e. https://gcc.gnu.org/wiki/SummerOfCode ) should be quite
sufficient.  I can only advise that you look at the "Before you apply"
section and take (most of) the steps described there.

> I request you to provide me some guidance with my proposal.

You need to select a particular project and make at least a few first
steps (again, at look at those described at
https://gcc.gnu.org/wiki/SummerOfCode#Before_you_apply ) yourself.  Then
we can help you to polish things up.

Good luck!

Martin Jambor


Re: "GSoC"

2024-03-25 Thread Martin Jambor
Hello,

On Sun, Mar 24 2024, M Hamza Nadeem via Gcc wrote:
> Hi Sir / mam,
>
>
> I hope this email finds you well. As an enthusiastic contributor with a
> strong grasp of C/C++ and familiarity with Rust, I am eager to explore
> potential projects for Google Summer of Code (GSoC) 2024 within the GNU
> Compiler Collection (GCC) ecosystem.

we are delighted you found the prospect of contributing to GCC interesting.

>
> With my background in these languages and my passion for advancing compiler
> technology, I believe I could make significant contributions to various GCC
> projects.
>
> I would greatly appreciate any guidance on how to proceed further with
> project selection or any additional insights into the GCC projects relevant
> to my skill set.

Please look again at the "Before you apply" section of our GSoC page at
https://gcc.gnu.org/wiki/SummerOfCode#Before_you_apply and make sure you are
able to build, install and test GCC.  I strongly suggest that you also try
generating dumps of the IR of a simple compiled program and stepping through
some function during compilation in a debugger.

Afterwards, look at the suggested projects, try to identify the portion of GCC
source where it needs to be implemented and think about how.  Then email us
back to this mailing list describing your current plan together with any
technical questions you'd like to have answered to proceed further.  We'll be
happy to help.

Good luck,

Martin



Re: "GSoC"

2024-03-25 Thread M Hamza Nadeem via Gcc
Thanks, I'll check them out.

On Mon, 25 Mar 2024, 9:50 pm Martin Jambor,  wrote:

> Hello,
>
> On Sun, Mar 24 2024, M Hamza Nadeem via Gcc wrote:
> > Hi Sir / mam,
> >
> >
> > I hope this email finds you well. As an enthusiastic contributor with a
> > strong grasp of C/C++ and familiarity with Rust, I am eager to explore
> > potential projects for Google Summer of Code (GSoC) 2024 within the GNU
> > Compiler Collection (GCC) ecosystem.
>
> we are delighted you found the prospect of contributing to GCC interesting.
>
> >
> > With my background in these languages and my passion for advancing
> compiler
> > technology, I believe I could make significant contributions to various
> GCC
> > projects.
> >
> > I would greatly appreciate any guidance on how to proceed further with
> > project selection or any additional insights into the GCC projects
> relevant
> > to my skill set.
>
> Please look again at the "Before you apply" section of our GSoC page at
> https://gcc.gnu.org/wiki/SummerOfCode#Before_you_apply and make sure you
> are
> able to build, install and test GCC.  I strongly suggest that you also try
> generating dumps of the IR of a simple compiled program and stepping
> through
> some function during compilation in a debugger.
>
> Afterwards, look at the suggested projects, try to identify the portion of
> GCC
> source where it needs to be implemented and think about how.  Then email us
> back to this mailing list describing your current plan together with any
> technical questions you'd like to have answered to proceed further.  We'll
> be
> happy to help.
>
> Good luck,
>
> Martin
>
>


AutoFDO tools for GCC

2024-03-25 Thread Eugene Rozenfeld via Gcc
Hello,

I've been the AutoFDO maintainer for the last 1.5 years. I've resurrected 
autoprofiledbootstrap build and made a number of other fixes/improvements 
(e.g., discriminator support).

The tools for AutoFDO (create_gcov, etc.) currently live in 
https://github.com/google/AutoFDO  repo and GCC AutoFDO documentation points 
users to that repo. That repo also has tools for LLVM AutoFDO.
https://github.com/google/AutoFDO  has several submodules: 
https://github.com/google/autofdo/blob/master/.gitmodules

I got a message from Snehasish (cc'd) that google intends to migrate the tools 
for LLVM to the LLVM repo and wants to archive 
https://github.com/google/AutoFDO. That will be a problem for AutoFDO in GCC. 
The idea to find a different home for GCC AutoFDO tools was discussed before on 
this alias but this becomes more urgent now. One idea was to build these tools 
from GCC repo and another was to produce gcov from perf tool directly. Andi 
(cc'd)  had some early unfinished prototype for latter.

Please let me know if you have thoughts on how we should proceed.

Thanks,

Eugene


unneeded spills of SF values on xtensa with FPU

2024-03-25 Thread Max Filippov via Gcc
Hi Suwa-san,

I've noticed that in xtensa configurations with hardware FPU
function arguments of type float are spilled on the stack although
there's no need for that. E.g. the following function:

int f(float a, float b)
{
return a < b;
}

translates to the following with -O2:

f:
   entry   sp, 48
   wfr f0, a2
   wfr f1, a3
   s32i.n  a2, sp, 0
   olt.s   b0, f0, f1
   movi.n  a8, 0
   movi.n  a2, 1
   s32i.n  a3, sp, 4
   movfa2, a8, b0
   retw.n

The relevant RTL looks like this at the end of IRA:

(insn 18 4 19 2 (set (reg:SF 51)
   (reg:SF 2 a2 [ a ])) "test2.c":2:1 61 {movsf_internal}
(expr_list:REG_DEAD (reg:SF 2 a2 [ a ])
   (nil)))
(insn 19 18 7 2 (set (reg:SF 52)
   (reg:SF 3 a3 [ b ])) "test2.c":2:1 61 {movsf_internal}
(expr_list:REG_DEAD (reg:SF 3 a3 [ b ])
   (nil)))
(insn 7 19 21 2 (set (reg:CC 18 b0)
   (lt:CC (reg:SF 51)
   (reg:SF 52))) "test2.c":3:11 100 {slt_sf}
(expr_list:REG_DEAD (reg:SF 52)
   (expr_list:REG_DEAD (reg:SF 51)
   (nil

and it is transformed to the following by the end of LRA:

(insn 18 4 19 2 (set (mem/c:SF (reg/f:SI 1 sp) [1 %sfp+0 S4 A32])
   (reg:SF 2 a2 [ a ])) "test2.c":2:1 61 {movsf_internal}
(nil))
(insn 19 18 24 2 (set (mem/c:SF (plus:SI (reg/f:SI 1 sp)
   (const_int 4 [0x4])) [1 %sfp+4 S4 A32])
   (reg:SF 3 a3 [ b ])) "test2.c":2:1 61 {movsf_internal}
(nil))
(insn 24 19 25 2 (set (reg:SF 19 f0 [51])
   (mem/c:SF (reg/f:SI 1 sp) [1 %sfp+0 S4 A32])) "test2.c":3:11 61
{movsf_internal}
(nil))
(insn 25 24 7 2 (set (reg:SF 20 f1 [52])
   (mem/c:SF (plus:SI (reg/f:SI 1 sp)
   (const_int 4 [0x4])) [1 %sfp+4 S4 A32])) "test2.c":3:11
61 {movsf_internal}
(nil))
(insn 7 25 21 2 (set (reg:CC 18 b0)
   (lt:CC (reg:SF 19 f0 [51])
   (reg:SF 20 f1 [52]))) "test2.c":3:11 100 {slt_sf}
(nil))

LRA stops checking alternatives for insns 18 and 19 at s32i.n,
but even if I move wfr at the head of the movsf_internal list it
still loses to s32i.n.
Postreload pass replaces the lsi instructions 24 and 25 with
wfr from a2 and a3, but doesn't remove the spills.
I wonder what can be done with that?

--
Thanks.
-- Max