> Also, sparc-sun-solaris2.9 doesn't mean "32-bit compiler", it means
> "build both compilers, defaulting to 32 bits".
No, the compiler is purely 32-bit, only the libraries are of both flavors.
--
Eric Botcazou
ler" for
sparc-sun-solaris and "64-bit multilib compiler" for sparc64-sun-solaris.
--
Eric Botcazou
sparc where the sparcv9-*-solaris2* which sent me to sparc64-*-solaris2*
> on install/specific. html. Should I have been looking somewhere else?
http://gcc.gnu.org/install/specific.html#sparc-sun-solaris2
http://gcc.gnu.org/install/specific.html#sparc-sun-solaris27
--
Eric Botcazou
arget libiberty is not supposed to be built with the bootstrap compiler.
Please verify that CC is not set in your environment.
--
Eric Botcazou
shell?
- what is your version of GNU make?
--
Eric Botcazou
> Although I had #!/bin/sh at the beginning, it was taking my
> SHELL as tcsh. I have stuck in (via notes) SHELL=/bin/ksh;export SHELL
> and I am rebuilding it right now. Thanks!
Could you post the config.log file of the target libiberty?
--
Eric Botcazou
> It is 4325 lines, should I just email it to you instead
> of the whole group?
Yes, compressed.
--
Eric Botcazou
> > Tree-SSA managed to add new technology to the compiler without major
> > slowdowns.
>
> You must be looking at different timings than I do.
>
> GCC 4.1 is on average almost 40% slower than GCC 3.3.
That's not true for GCC 4.0.
--
Eric Botcazou
4.1 (something like 15%-20% wrt. GCC 3.3, iirc).
Yes, Tree-SSA per se is not responsible for the 40% slowdown you reported.
--
Eric Botcazou
> So before submitting a bug report (if necessary), I wanted to know if
> someone knows something about it.
PR ada/22533.
--
Eric Botcazou
> There is an upsteam for beohm_gc (Boehm himself).
Yes, but you usually can modify the local copy and simply CC Hans.
--
Eric Botcazou
The
> 64-bit version is installed in prefix/lib, while 32-bit version is
> installed in prefix/lib/sparcv7!?
How many libraries do you have in prefix/lib/sparcv7? Which one(s)?
--
Eric Botcazou
o. :-) http://gcc.gnu.org/PR16513
--
Eric Botcazou
ort LD_LIBRARY_PATH=/usr/local/lib/sparcv9" or equivalent magic.
--
Eric Botcazou
ment that one passes
> CC="cc -xildoff -xarch=v9" is still in effect with studio10/solaris11
Actually -xildoff is unnecessary.
--
Eric Botcazou
them:
sparc-sun-solaris2.* compiler -> 32-bit GMP
sparc64-sun-solaris2.* compiler -> 64-bit GMP.
--
Eric Botcazou
velopers are probably the best persons to ask about that.
--
Eric Botcazou
> GMP is used by the compiler, not by the application, so you only need
> the version that the compiler will use.
Right, that's what I previously said. :-) But Aleksandar apparently insists
on having both versions installed.
--
Eric Botcazou
kes several hours.
Glad to see that a GWP maintainer eventually speaks up. :-)
> This is a serious regression for me.
FWIW I personally think this toplevel bootstrap thing is a step backward, now
typing "make" triggers such a complex machinery that nobody seems to able to
unde
oid *directive)
{
fprintf (asm_out_file, "\t.csect %s[RW],3\n",
*(const char *const *) directive);
}
As a result, the Ada compiler cannot pass the ACATS testsuite on AIX 32-bit.
We therefore are proposing to revert to the pre-Altivec setting.
--
Eric Botcazou
--disable-bootstrap && make bootstrap", which currently triggers the
> old-style GCC-only bootstrap, will disappear.
That's good news and actually sufficient to allay most of my concerns. And
you can count on me to yell if --disable-bootstrap breaks. :-)
--
Eric Botcazou
T setting until Altivec is
supported? That would be more in keeping with all the other settings on AIX.
--
Eric Botcazou
message on Darwin because
TARGET_ALTIVEC_ABI is set to 1 there, so STACK_BOUNDARY == BIGGEST_ALIGNMENT.
--
Eric Botcazou
ffsets are not sufficiently
rounded, even if the stack register is aligned on BIGGEST_ALIGNMENT on
function entry.
--
Eric Botcazou
> The conflict is actually 32bit, AIX, Altivec, and Ada (together).
Not quite.
> My point is that I'd like to keep Altivec support on 32bit AIX for
> other languages.
Well, GCC has *no* Altivec support on AIX.
--
Eric Botcazou
ALIGNMENT
Biggest alignment that any data type can require on this machine,
in bits.
My reading is that a local variable is entitled to require BIGGEST_ALIGNMENT.
--
Eric Botcazou
> Couldn't (and shouldn't) the start sequence in crt0 align the stack?
> It seems someone somewhere has to do that eventually anyway. I would
> not assume the OS is going to cooperate.
Yes, but that's not sufficient. The compiler must align local objects too.
--
Eric Botcazou
and "make
bootstrap" respectively, that's all (and sufficient as far as I'm concerned).
--
Eric Botcazou
I wanted my blurb to convey. :-)
--
Eric Botcazou
nd ia64 so you don't see the failure there.
--
Eric Botcazou
ing, there is a gcc_assert in the never-taken path. I presume it's
with --enable-bootstrap? Which stage?
--
Eric Botcazou
> 2006-01-16 H.J. Lu <[EMAIL PROTECTED]>
>
> * fold-const.c (fold_minmax): Always initialize compl_code.
That's not very elegant. Let's use gcc_unreachable () instead.
--
Eric Botcazou
and has long been latent in the runtime.
Thanks for all your Ada-related work!
--
Eric Botcazou
> They now need to be compiled with -fstack-check to pass on 64-bit platforms;
In fact they need to be compiled with -fstack-check everywhere. They pass on
32-bit platforms with some OSes and don't with others.
--
Eric Botcazou
arget-libada] Error 2
> make[1]: *** [all] Error 2
> make: *** [bootstrap] Error 2
OK, I can reproduce the failure.
Darwin specialists, what are we missing here?
--
Eric Botcazou
3]: *** [../../gnatmake] Error 1
make[2]: *** [gnattools-native] Error 2
make[1]: *** [all-gnattools] Error 2
make: *** [all] Error 2
I presume we need to pass -fexceptions here. More generally, do we need to
pass -fexceptions in any link against the static Ada runtime? How does that
work for C++ for example?
--
Eric Botcazou
> AIX snuck in increased stack alignment in 32-bit mode along the
> way. STACK_BOUNDARY should be increased to 128 for AIX. Transitioning
> could be tricky.
Thanks, we'll try and see what we can do.
--
Eric Botcazou
> I strongly prefer to move towards relying on the git log.
In my experience the output of git log is a total mess so cannot replace
ChangeLogs. But we can well decide to drop ChangeLog for the testsuite.
--
Eric Botcazou
amp;u)->val;
u is accessed through upal_u32be_t and upal_u32le_t, i.e. BE and LE.
--
Eric Botcazou
> Thanks, I will take a look at Bernd's work. IIRC, he took a
> different approach from what was suggested in the wiki, right?
Yes, let's say that it's a half-baked conversion, probably a consequence of
the bounty. This might be good enough, depending on the architecture.
--
Eric Botcazou
scalar order is flipped, unlike the
previous example.
--
Eric Botcazou
> Yes the following is a decent workaround:
> upal_u32be_t tempb;
> memcpy (&tempb, &u, sizeof(uint32_t));
> asm("":"+m"(tempb));
> uint32_t bu = tempb.val;
OK, let me try to do the same in the compiler then.
--
Eric Botcazou
ld be useful to schedule instructions, e.g. floating-point instructions,
between the CC setters and the CC users.
--
Eric Botcazou
> Strangely, I failed to find any PR for e200, so maybe some unnoticed ones
> are still lying around.
I think that the e200 support was never contributed upstream.
--
Eric Botcazou
b
>
> but it ran a whole bunch of tests actually NOT including the one I wanted.
make -C gcc -k check-gnat RUNTESTFLAGS="dg.exp=opt86a.adb"
You can omit the "-C gcc" if you run it from the gcc/ build dir of course.
--
Eric Botcazou
> I see check-gnat in some of the makefile input files but I do not see it
> in the ones that are built. Is there something needed to specify when
> configure is run to get it included?
No, this works with some generic magic like for gcc; g++, gfortran and so on.
--
Eric Botcazou
tion uses
dynamic stack allocation, e.g. by means of alloca?
--
Eric Botcazou
tter dictates a -g switch so, once this is established, what -g switch
can indeed be coordinated.
--
Eric Botcazou
> can someone explain to me why the -O2 optimizer is not able(allowed) to
> reduce this small sample the same way as clang/msvc?
Change the name of the function to something else than "main".
--
Eric Botcazou
> I have so far bootstrapped and tested the release candidate on
> x86_64-linux. Please test it and report any issues to bugzilla.
It does not build for Windows:
https://gcc.gnu.org/pipermail/gcc-patches/2021-April/567582.html
--
Eric Botcazou
BM, like
other corporations, has made significant technical contributions to GCC over
the years, for example the scheduler and the vectorizer, and thus has assigned
the copyright of these contributions to the FSF.
--
Eric Botcazou
s goal if it is deemed worth pursuing for this kind of feature.
--
Eric Botcazou
> Oh and I see a case where we want to remove byteswaps at IPA level. If
> we can see the variable value does not escape.
That should be relatively easily doable, although I'm a little skeptical of
its practical usefulness.
--
Eric Botcazou
be implemented once the representation is agreed on.
--
Eric Botcazou
in the end. For example, if the structure is scalarized, they are not.
> What frontends are affected?
The branch contains a working implementation for the C and Ada front-ends, and
the beginning of an implementation for the C++ front-end.
--
Eric Botcazou
g-endian storage order.
--
Eric Botcazou
e) so the implementation cannot be too dumb.
--
Eric Botcazou
> Why would you want to support this on bitfields ... (/me runs away).
This was the only supported case in the original specification. :-)
--
Eric Botcazou
ntially correct in our experience.
--
Eric Botcazou
#x27;t like it much). It would be very
easy to add the same in C/C++, modelled on #pragma pack, if this is deemed
more convenient.
--
Eric Botcazou
> But may be it is part of design and may be it is generally true, that
> we can't rely on correct REG_DEAD notes in platform-specific scheduler?
Yes, RTL passes are not required to maintain REG_DEAD/REG_UNUSED notes, it's
the job of the DF framework.
--
Eric Botcazou
ocal control flow transfer via
> throwing should be disallowed as well.
This would pessimize a lot languages where exceptions are pervasive.
> In any case, it would be nice the intended compiler behavior could be
> explicitely stated in the manual.
Agreed.
--
Eric Botcazou
th side effects, or
> other throwing functions?
This one is less clear, but I'd say Yes.
--
Eric Botcazou
es the transforms would be too complicated).
We never ran into a problem with that in practice AFAIK.
--
Eric Botcazou
are created first.
$(GNAT1_ADA_OBJS) $(GNATBIND_OBJS): | $(ada_generated_files)
in ada/gcc-interface/Make-lang.in.
--
Eric Botcazou
The hang in xsinfo appears to be miscompilation when the host compiler is
> gnat-4.8 (on ARM), whereas gnat-4.6 succeeds. I'm going to try again with
> later versions (4.9/5.0/etc.)...
Thanks. This could be worth documenting somewhere then.
--
Eric Botcazou
rm-x-eabi
--
Eric Botcazou
ording to Richard, we should now be able to set TYPE_DOMAIN to something
else than a subtype of 'sizetype' but this is a mid-term goal and may require
some substantial work. The short-term solution is probably to do nothing,
arrays with negative indices are not very common in real life even in Ada.
--
Eric Botcazou
. */
> if (integer_zerop (length)
> && TREE_OVERFLOW (length)
> && integer_zerop (lb))
> length = size_zero_node;
IIRC the first one is yours and the second one is mine. :-) But, yes, they
clearly should go and be replaced by changes in gigi.
--
Eric Botcazou
like there
> is conversion code in both the caller and the callee.
We used to to the same on SPARC 32-bit, see PR target/46208.
--
Eric Botcazou
useful,
contrary to the new ones. Any particular reason not to document them?
--
Eric Botcazou
> In addition, I don't see anything about C compatibility here. It
> would be very confusing, to say the least, if this were to be defined
> in C++ but not C.
Or at least they should get some form of guarantee that future C standards
will not introduce incompatible rules.
--
Eric Botcazou
> See some existing PR. The GCC middle-end cannot assume that pointers
> are aligned according to their type (while at least the C language would
> support that notion).
Only on x86. It could (and used to) do it on strict-alignment architectures.
--
Eric Botcazou
code for Steve's testcase on x86 because it is _not_ strict-alignment...
--
Eric Botcazou
age, it prints "unbounded".
--
Eric Botcazou
ypes with it anyway.
That being said, there is indeed a related issue with Ada on m68k because,
when you have a C function that returns a pointer (typically malloc), you
generally import it in Ada as System.Address:
function malloc (Size : size_t) return System.Address;
pragma Import (C,
lso problematic for
LTO on all architectures so we'll probably give it a try for GCC 7.
--
Eric Botcazou
> What about the prototype in raise.h?
Yes, the C side knows the type, but not the Ada side, that's the problem.
--
Eric Botcazou
,
> Ada adds its own quirks to gimple.
No, it doesn't, only to GENERIC, i.e. everything is lowered in GIMPLE and as
far as I know there are no Ada-specific constructs in GIMPLE, so you can take
Ada completely out of the picture here.
--
Eric Botcazou
ould be a good model.
--
Eric Botcazou
t value
> be used.
See the define_subst patterns, they automatically compute the other form.
--
Eric Botcazou
any hints.
Not clear to me either and the premise is probably wrong for Ada these days.
--
Eric Botcazou
the details. Possibly for IA-64/HP-UX -milp32.
In any case, having a different representation for pointers and references is
a recipe for annoying issues like this, so removing the kludge is OK with me.
--
Eric Botcazou
It's called from gigi:
/* Show that REFERENCE_TYPEs are internal and should be Pmode. */
internal_reference_types ();
--
Eric Botcazou
ld be) treated almost equally in
the compiler, the difference matters only for the debug info. We use the
former much more now than we used to in gigi, because of the debug info.
--
Eric Botcazou
test suite or how to configure GCC to enable it?
Yes, see https://gcc.gnu.org/ml/gcc-cvs/2016-04/msg01024.html
> $ make -C /build/gcc-trunk/gcc check-ada
> make: Entering directory '/home/msebor/build/gcc-trunk/gcc'
> gnatlib missing, exiting.
So is there a /build/gcc-trunk/gcc/gcc/ada/rts directory or not?
--
Eric Botcazou
> There is no /build/gcc-trunk/gcc/gcc but presumably you meant
> /build/gcc-trunk/gcc/ada (which does exist). But there is no
> rts directory anywhere under the build tree.
Then the build failed at some point and this should be in the log.
--
Eric Botcazou
t there is a conflict between them because -fstack-usage
is designed to be conservatively correct while -fdump-ipa-cgraph is not (it
does not dump the full callgraph).
--
Eric Botcazou
eax
nop
ret
.cfi_endproc
.LFE0:
.size main, .-main
eric@polaris:> cat t.su
t.c:1:5:main4 static
--
Eric Botcazou
> Under which circumstances are there missing functions in the cgraph?
When the RTL expander calls library routines, there are no traces of them in
the IPA callgraph.
--
Eric Botcazou
-pointer, then it's as expected.
--
Eric Botcazou
specify otherwise or the target defaults otherwise.
--
Eric Botcazou
eria.html>) now
> default to LRA though.
So SPARC was changed and neither DaveM nor I was told about it? ;-)
--
Eric Botcazou
> p.s. Are there plans for converting the SPARC port?
There are more than plans - actual patches by DaveM that were installed at
some point and then reverted quickly because of unexpected fallout.
--
Eric Botcazou
> I lacked the time to debug it properly so we reverted.
Do you plan to give it a try again in the near future?
--
Eric Botcazou
> Probably the earliest I could look into this again would be
> November.
OK, fine with me. I'm going to slightly restructure the support of the
integer condition codes in preparation for the implementation of the new
overflow arithmetic operations, but there should be no overlap
the same time for a given port. Do we have a Wiki page for
the cc0 conversion? If no, I can start one based on my fresh experience with
the Visium port.
--
Eric Botcazou
from
the "Current Projects" list on the HomePage. Probably a bit too verbose...
--
Eric Botcazou
cks a comment explaining the apparent discrepancy.
> Due to this, 'expand_expr' will expand a constant tree with unsigned
> integer type and value MAX_UINT to a rtx node (const_int -1).
As Jakub explained, that is as expected, even if a little surprising.
--
Eric Botcazou
quite confusing so a comment by the author would be in order.
--
Eric Botcazou
201 - 300 of 1095 matches
Mail list logo