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
, although _Unwind_GetIPInfo itself has been defined.
Then that's the bug, the C++ and Ada personality rountines call it.
--
Eric Botcazou
> What do you guys think?
It's by design. Use -fdiagnostics-show-caret to flip the setting.
--
Eric Botcazou
> p.s. Are there plans for converting the SPARC port?
The SPARC port has now been converted.
Note that the status of the PowerPC port is a bit confusing because both
doc/invoke.texi and htdocs/backends.html say that it still uses reload.
--
Eric Botcazou
ure with few, simple addressing modes so the
conversion was relatively straightforward. The only irregular feature is the
pairing of (even, odd) integer registers in 32-bit mode and it was the source
of the annoying issues. I'm going to add a few words on the Wiki about that.
--
Eric Botcazou
gt; cost models.
; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
ftree-vectorize
Common Report Optimization
Enable vectorization on trees.
--
Eric Botcazou
upstream and
> sanitizer_common_interceptors_ioctl.inc isn't executable there.
No objections for the couple of Ada files.
--
Eric Botcazou
ANTABILITY or FITNESS FOR A
> PARTICULAR PURPOSE.
This would suggest that bldtools/oscons/xoscons is miscompiled by the trunk
native compiler. How did you configure this latter compiler?
--
Eric Botcazou
e efficient than the former
mechanism."
I presume that the problem occurs during stage #2, i.e. that the gnat1 at
stake has been built by the base compiler, right?
--
Eric Botcazou
> Ah, that makes sense since the 32-bit SEH is different from the 64-bit one,
> explains why the 64-bit builds work.
Which EH mechanism does the base compiler use? The default one? We know that
this works with the DWARF-2 mechanism (--disable-sjlj-exceptions).
--
Eric Botcazou
so, can you lower it to -O1 or -O0?
--
Eric Botcazou
int size = dwarf_reg_size_table[__builtin_dwarf_sp_column ()];
if (size == sizeof(_Unwind_Ptr))
tmp_sp->ptr = (_Unwind_Ptr) cfa;
else
{
gcc_assert (size == sizeof(_Unwind_Word));
tmp_sp->word = (_Unwind_Ptr) cfa;
}
which is quite unexpected.
--
Eric Botcazou
es of GNAT is to be
compatible with C by default as much as possible. But we started to do some
reordering recently when the records don't have (direct) equivalents in C.
--
Eric Botcazou
back-ends to support this (look for trampolines/descriptors
in the manual and the source code). This should essentially work out of the
box for any language front-end.
--
Eric Botcazou
ers and that isn't
what happens. Instead the compiler of each stage is updated in isolation.
--
Eric Botcazou
> I have now applied this variant.
You backported it onto the 8 branch on Friday:
2019-05-03 Richard Biener
Backport from mainline
[...]
2019-03-07 Richard Biener
PR tree-optimization/89595
* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
if (!TARGET_VXWORKS || TARGET_VXWORKS_RTP)
return true;
/* The loader neither creates the glue code sequence that loads r12 nor uses
the local entry point for the sibcall's target in the ELFv2 ABI. */
return DEFAULT_ABI != ABI_ELFv2;
}
--
Eric Botcazou
d global entry points. We have had this patch in
our tree for some time and it works well, so let me submit it for inclusion in
the official tree.
--
Eric Botcazou
olves the remaining relocations. None of them plays the usual dance
with the local and global entry points implied by the ELFv2 ABI.
--
Eric Botcazou
of lesser importance than literal ranges in most cases.
> Note that symbolic ranges are already restricted to PLUS_EXPR
> and MINUS_EXPR (and NEGATE_EXPR I think). There are
> also "symbolic" (non-integer constant) ranges like [&a, &a].
Yes, the current implementation is restricted to additive operations.
--
Eric Botcazou
; from the build folder without installing it?
You need to pass -B where contains the compiler cc1.
--
Eric Botcazou
> https://gcc.gnu.org/ml/gcc-testresults/2019-06/msg00810.html
> results have been produced or there is something I am not aware of.
You need to issue a third command:
make mail-report.log
--
Eric Botcazou
> For what it's worth, that is how Go works. The '.' operator is used
> for struct fields regardless of whether the left hand operand is a
> struct or a pointer to a struct.
Likewise in Ada.
--
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
> Unfortunately, GCC needs to do marketing of performance, just like
> other compilers.
Not so obvious premise I'd personally think. Where would it come from?
--
Eric Botcazou
> Any ideas?
Re-run the testsuite, they most likely will disappear.
--
Eric Botcazou
> FAIL: tmpdir-g++.dg-struct-layout-1/t026 cp_compat_y_tst.o compile
I cannot reproduce on Solaris as of today, neither with the 64-bit compiler
nor with the 32-bit multiarch one.
--
Eric Botcazou
entation
of source locations between successive generations of the core compiler.
--
Eric Botcazou
have to
bother about the legacy of a 10+ years old production compiler like GNAT.
--
Eric Botcazou
e the default, and
> Ada is basically the major blocker right now, so we need to agree on
> something instead of arguing... ;-)
Agreed. :-)
--
Eric Botcazou
> The real problem, as we all know, is that Adacore treats the GCC repo
> like an extension of their corporate repo, instead of as the main tree.
>
> The other languages don't do that.
What of Apple and Objective-C++ ?
--
Eric Botcazou
> They don't complain and they update their sources when integrating
> into the mainline. They had to update Objective-C++ for the new C++
> parser.
Just like AdaCore had to update Ada for tree-ssa?
--
Eric Botcazou
> Notice that the C and C++ parts are 10+ years old production compilers
> and they were converted.
Right, no disagreement. My reply was intended to be more general, on the same
level as Daniel's.
--
Eric Botcazou
er compilers, especially the C family of compilers, there is no private
internal representation since they essentially manipulate the tree IL
directly.
--
Eric Botcazou
as.o
> "../../../gcc-4.1.1-20060517/gcc/tree-ssa-structalias.c", line 1615:
> warning: end-of-loop code not reached
> cc: Fatal error in /opt/SUNWspro/bin/../WS6U1/bin/acomp
> Status 138
> gmake[3]: *** [tree-ssa-structalias.o] Error 138
What happens if you configure with CC="cc -erroff"?
--
Eric Botcazou
> Anyway, how does this look to everyone?
FWIW fine with me. Thanks for taking care of this!
--
Eric Botcazou
nker to get just -rpath: -Wl should tell gcj to pass the following
> option to the linker.
Rather weird indeed. Can you reproduce it manually by replaying the command?
--
Eric Botcazou
a striking example of the *major* problems we have been having
in the patch reviewing department for quite some time.
--
Eric Botcazou
> Thanks for chiming in this discussion. You've clearly given a good deal
> of thought to the problem, and if you have suggestions I'm all ears.
http://gcc.gnu.org/ml/gcc-patches/2006-03/msg00297.html
--
Eric Botcazou
> I didn't understand the purpose of:
>
> (build/gencondmd.o): Filter out -fkeep-inline-functions.
Read the comment?
--
Eric Botcazou
> However, the audit trail of the PR seems to say that now
> -fkeep-inline-functions is sort of implied by -O0; I can build
> insn-conditions.md with "-O0 -fkeep-inline-functions" so I'm not
> affected by the PR.
Comment #36 seems to say that we're back to the initial state.
--
Eric Botcazou
For example we could introduce
secondary maintainers with approval rights for bug fixes only or something
along these lines.
--
Eric Botcazou
> I actually like the existing behaviour, which I'm pretty sure hasn't
> changed for many years.
It has, at least for "make quickstrap".
--
Eric Botcazou
> By the way, -ftrapv only works on integral types.
When it works. Last time I took a look, it was easily wiped out by
optimization.
--
Eric Botcazou
equal. */
if (TREE_SIDE_EFFECTS (arg0)
|| TREE_SIDE_EFFECTS (arg1))
return 0;
It seems to me that the volatility should be accounted for in the VALUE_HANDLE
itself only, not in (de)references to it.
Thoughts?
--
Eric Botcazou
> What do you mean by "in the VALUE_HANDLE itself"?
Returning a different VALUE_HANDLE for each instance of a volatile expression.
> I think we should not bother value-numbering volatile mem-accesses at all.
I guess that would be even better. :-)
Thanks for the quick fee
ry and look into it
tomorrow.
--
Eric Botcazou
> At least this one looks "easier" to look at. Is SPARC/Solaris a
> strict alignment target?
Yes, all SPARC targets are.
--
Eric Botcazou
fail on SPARC64/Solaris 7+ either, for which the ABI says 16
for the alignment in both cases. They are 64-bit compilers.
--
Eric Botcazou
AX_ALIGNMENT - 1;
(gdb) x/i $pc
0xa931c8 :ld [ %fp + -24 ], %g1
(gdb) x/i
0xa931cc :and %g1, 0xf, %g1
--
Eric Botcazou
SPARC64 bootstrap succeeds too. The discrepancy SPARC32/SPARC64
stems from the fact that SPARC32 also uses 64-bit instructions in some cases,
while there is no 128-bit integer instructions on SPARC64 so word alignment
is enough in practice.
--
Eric Botcazou
testsuite is clean:
http://gcc.gnu.org/ml/gcc-testresults/2006-07/msg00164.html
Not sure what's going on exactly...
--
Eric Botcazou
ith-as=/usr/i586-suse-linux/bin/as
--with-ld=/usr/i586-suse-linux/bin/ld --with-arch=i686
--enable-languages=c,c++,objc,java
Thread model: posix
gcc version 4.2.0 20060703 (experimental
at revision 115172.
--
Eric Botcazou
reas' testsuite is clean:
> http://gcc.gnu.org/ml/gcc-testresults/2006-07/msg00164.html
... I get the tons of failures in libjava at rev 115159 too!
--
Eric Botcazou
> make[3]: Leaving directory `/mnt/scratch/nightly/2006-07-04/i686'
> Comparing stages 2 and 3
> warning: ./cc1-checksum.o differs
> warning: ./cc1plus-checksum.o differs
> warning: ./cc1obj-checksum.o differs
> Bootstrap comparison failure!
Does the attached patch make an
> What do we do if compiler ICE generating code for valid C syntax with
> defined behavior? Fix it!
> Why should we go another way for valid C syntax with undefined behavior?
The answer is in the question, no?
--
Eric Botcazou
hat do not use ARRAY_RANGE_REFs. With the additional patch, it is
supposed to be strictly a nop for them. Have you tried to revert it?
In the meantime I'm going to test on another machine.
--
Eric Botcazou
> Hmm, as far as I can tell, stage1 i386.c:ix86_split_ashr has been
> miscompiled by gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-54).
Thanks a bunch for sorting this out!
--
Eric Botcazou
> This patch is an improved version over the one proposed in
Please avoid cross-posting. This should go on [EMAIL PROTECTED] only.
--
Eric Botcazou
> I successfully bootstrapped yesterday and have been very few
> patches recently.
I ran into a similar problem on SPARC/Solaris on Sunday morning (revision
115296). The same tree bootstrapped fine on AMD64/Linux.
--
Eric Botcazou
> /tmp/ccK4i3re.s:5107:FATAL:Symbol LFBB43 already defined.
Same breakage on SPARC/Solaris 2.[56] and Alpha/Tru64.
--
Eric Botcazou
27;re not sure.
Obvious question: what of the RTL expander(s)?
> Please adjust MAINTAINERS accordingly -- and then please fix PRs and
> approve patches for same. :-)
I see... :-)
--
Eric Botcazou
ze of the frame went down from 216 to 200 bytes at -O2.
--
Eric Botcazou
ptr = ldst_entry (dest);
> + ptr->invalid = 1;
> + }
> +
> + }
> }
> else
> invalidate_any_buried_refs (PATTERN (insn));
Why not simply mimicing the "load" case and calling invalidate_any_buried_refs
on DEST, with a comment mentioning the (ZERO_EXTRACT (MEM)) corner case?
--
Eric Botcazou
> 3. Update sparc-sun-solaris2.9 to sparc64-sun-solaris2.10?
No strong opinion on the Solaris 9 -> Solaris 10 transition, but why switching
to a 64-bit compiler? The 32-bit compiler is multilib by default on Solaris
and AFAIK the vendor compiler is still 32-bit too.
--
Eric Botcazou
e this is a configure-time option only.
[2] describes GCC SJLJ, which is not the same as GNAT SJLJ.
--
Eric Botcazou
was somehow suspecting that gnat1 supports both ZCX and SJLJ, looks in
> system.ads, and decides what kind of assembly code it needs to emit based on
> that. Am I correct?
Yes, you are.
> In that case, I need just one compiler and two libgnats, right?
Right.
--
Eric Botcazou
o True in system.ads).
> Eric, how difficult would it be to backport a fix from 4.2 to 4.1?
Too invasive I'd think.
--
Eric Botcazou
is it too late now?
> I just don't think it's as obvious a call as your question above makes out.
> There are downsides to this approach too, especially when no one person
> is in overall charge of repository (mainline and branch).
Right. And, in my opinion, these downsides are easily underestimated.
--
Eric Botcazou
release
branch sooner than later?
> I think one source of the problem is that standards the that I hold
> myself to, may potentially be unrealistic for many contributors.
Definitely. I'd say that the patches you review are not your babies, only
those you write are. :-)
--
Eric Botcazou
> since p is a global variable, it can be used in other functions. Any
> other causes?
The first thing to do is to post a reproducer. As Ian said, your code doesn't
even compile...
--
Eric Botcazou
siderably, improving compile times at the expense of lost
aliasing precision. */
maybe_create_global_var (ai);
We have found this to be quite helpful on gigantic elaboration procedures
generated for Ada packages instantiating gazillions of generics. We have
actually lowered the threshol
y
will not be able to disambiguate memory accesses it would have been able to,
if the limit were not reached.
> it is also not really partially disabling. It's really fully disabling
> in 99% of
Partially because it only affects call-clobbered variables IIUC.
--
Eric Botcazou
C
> notices this later, and dies.
See PR rtl-optimization/29329 for a variant.
> Ideas?
The combiner already knows how to update liveness information in some cases
(lost REG_NOTEs) so I think that we probably need to extend this mechanism.
--
Eric Botcazou
> The problem is presumably arising from the REG_EQUAL notes. Where are
> those being generated? Why does this case not arise for other targets?
If the problem stems from REG_NOTEs, then it may again be a duplicate of PR
rtl-optimization/25514.
--
Eric Botcazou
> But note this is with RTL checking enabled (--enable-checking=rtl).
Can anyone refresh my memory: why is RTL checking disabled on the mainline?
--
Eric Botcazou
> Because it takes a LONG time.
Figures? Tree checking is not cheap with GCC 4.x either.
--
Eric Botcazou
d on.) At 5
> minutes each it adds up fast!
> http://gcc.gnu.org/ml/gcc-testresults/2006-11/msg00294.html
This happened at some point during 4.1 development too. It turned out to be a
code generation bug that was butchering the PTHREAD_* initializer macros.
--
Eric Botcazou
min
assert,runtime,misc,gc: 186 min
assert,runtime,misc,gc,tree:203 min
assert,runtime,misc,gc,tree,rtl,rtlflag 266 min
So I was wrong, tree checking is still relatively cheap; misc and rtl are not.
--
Eric Botcazou
e for this
> case?
The test needs to check that --gc-sections works, so indirectly invoking
ppc64_elf_gc_mark_hook seems to be unavoidable. You could try to tweak the
contents of the sections if you understand why ppc64_elf_gc_mark_hook loops.
--
Eric Botcazou
> This patch introduces canonical types into GCC, which allow us to
> compare two types very efficiently and results in an overall
> compile-time performance improvement.
Please avoid cross-posting, patches should go to gcc-patches@ only.
--
Eric Botcazou
s case, whether it is
> an assembler or linker bug, and whether there is a workaround?
... if the user is trying to link objects files assembled by the GNU assembler
using the Sun linker.
--
Eric Botcazou
> I have built a static runtime library and i want the linker to access
> it automatically without having to pass it explicitly.
Wrong list, this one is for GCC development, not development with GCC.
Try [EMAIL PROTECTED] instead.
--
Eric Botcazou
101 - 200 of 1093 matches
Mail list logo