ib/gcc/x86_64-w64-mingw32/13.3.1/../../../../x86_64-
w64-mingw32/bin/ld.exe: C:\tmp\ccCnskmU.o (symbol from plugin): symbol
`__fpclassify' definition: UNDEF, visibility: DEFAULT, resolution:
RESOLVED_EXEC
attempt to open C:\tmp\ccbENa6D.ltrans0.ltrans.o succeeded
C:\tmp\ccbENa6D.ltrans0.ltrans.o
This is with GNU ld.
--
Eric Botcazou
just aligns
the compiler with the assembler.
Bootstrapped/regtested on SPARC64/Solaris 11, applied on the mainline.
2025-01-18 Eric Botcazou
PR target/118512
* config/sparc/sparc-c.cc (sparc_target_macros): Deal with VIS 3B.
* config/sparc/sparc.cc (dump_target_flag_bits
I checked this with the
> following spec file:
But you wouldn't have a problem if it was, would you? What happens if the '+'
is changed to another character in the line passed to the driver.
--
Eric Botcazou
racter is not matched by '*' or some such.
--
Eric Botcazou
zation if -fno-delete-dead-exceptions is not specified).
--
Eric Botcazou
s
not on x86[_64]/Linux where you *cannot* probe below the stack pointer.
--
Eric Botcazou
> I'm assuming the problem also extends to the other __gthr_win32 routines as
> well, __gthr_win32_create just happens to be the first symbol it cannot
> find.
>
> Is there a way to fix this issue?
How did you configure the compiler and what version of MinGW64 do you use?
--
Eric Botcazou
> rs6000 indeed doesn't implement {,u}{add,sub,mul}v4_optab for
> any mode and thus leaves it to the generic code.
https://gcc.gnu.org/pipermail/gcc-patches/2016-October/460209.html
--
Eric Botcazou
not cover
the basic block containing insn 14 and 15?
--
Eric Botcazou
:DI 34)
> (pc))) "bad_cc.c":12:10 15 {condjump}
> (expr_list:REG_DEAD (reg:CC 66 cc)
> (int_list:REG_BR_PROB 365072228 (nil)))
> -> 34)
>
> Please observe the REG_DEAD note on the both jump instructions.
Passes that consume REG_DEAD/REG_UNUSED notes need to recompute them
explicitly, they are not updated on the fly.
--
Eric Botcazou
> So what could be causing it?
An oversight in https://gcc.gnu.org/pipermail/gcc-cvs/2022-August/370830.html
has broken --disable-sjlj-exceptions. That's now fixed.
--
Eric Botcazou
recommended combination with recent versions
of the compiler, but Solaris ld must be recent enough, otherwise building for
sparc-sun-solaris2.11 probably does not work indeed.
--
Eric Botcazou
> Hope this is helpful; please let me know if you see any mistakes, or if
> there's room for improvement
Nice work! In the "inside cc1" chapter, I think that IR is usually meant for
"Intermediate Representation" rather than "Internal Representation" in this
context.
--
Eric Botcazou
ormation available.
If you try to debug at an optimization level higher than -Og, your mileage may
vary and depend on various factors; that's apparently an example where the
debug info is slightly less damaged at -O3 on x86 than on PowerPC, but there
are probably cases where this will be
r it in an object (SUBSTITUTE_PLACEHOLDER_IN_EXPR). You can presumably do
it through the gimplification hook.
--
Eric Botcazou
the discriminant since it is assigned in the CONSTRUCTOR, so
the gimplifier is indeed presumably not wired to eliminate them on its own.
--
Eric Botcazou
> Release managers.
They certainly have authority on the timing, but not on the contents.
> Working on that right now, sorry..
OK, thanks in advance.
--
Eric Botcazou
wrong and should be reverted ASAP.
--
Eric Botcazou
osing these hours is to debug the code at -O0.
--
Eric Botcazou
> Yes, although I think potentially trapping ops
> are not moved before calls (as this would be
> incorrect). So do you think it would be feasable
> to prevent this for volatile too?
Feasible probably, but why would this be desirable in C? It's not Java!
--
Eric Botcazou
entence is again a blatant overstatement but I agree
that the alignment caveat ought to be documented. Please suggest a wording to
that effect and post a patch onto the gcc-patches@ ML. Thanks in advance.
--
Eric Botcazou
> Maybe it was the EH format changes or dwarf5 stuff backported, CCing
> Eric.
Indeed, the latter, the HAVE_LD_BROKEN_PE_DWARF5 kludge is incomplete.
--
Eric Botcazou
,
build_int_cst (TREE_TYPE
(*expr_p), 1));
--
Eric Botcazou
It's presumably a 1-
line change in the reverse_storage_order_for_component_p predicate.
--
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
> 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
> 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
tter dictates a -g switch so, once this is established, what -g switch
can indeed be coordinated.
--
Eric Botcazou
tion uses
dynamic stack allocation, e.g. by means of alloca?
--
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
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
> 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
ld be useful to schedule instructions, e.g. floating-point instructions,
between the CC setters and the CC users.
--
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
scalar order is flipped, unlike the
previous example.
--
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
amp;u)->val;
u is accessed through upal_u32be_t and upal_u32le_t, i.e. BE and LE.
--
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
> 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
> 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
; from the build folder without installing it?
You need to pass -B where contains the compiler cc1.
--
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
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
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
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
> 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
ers and that isn't
what happens. Instead the compiler of each stage is updated in isolation.
--
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
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
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
so, can you lower it to -O1 or -O0?
--
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
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
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
upstream and
> sanitizer_common_interceptors_ioctl.inc isn't executable there.
No objections for the couple of Ada files.
--
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
> About the Ada compiler: it doesn't build on i686-w64-mingw32. It is
> the reason why MSYS2 is stuck with 7.3 for 32 bits.
Why doesn't it build? Because of PR ada/81878?
--
Eric Botcazou
8-10/msg02312.html
So we have an additional ACATS failure (ce2104c) in 8.2.1 over the previous
releases? Feel free to open a PR about it if you have a couple of minutes.
Thanks for testing the Ada compiler!
--
Eric Botcazou
t would fix the simple testcase
> that was presented here.
OK, I keep forgetting it and that would be a good compromise indeed.
--
Eric Botcazou
ween gcc-4.5 and gcc-4.6)
Possibly indeed, I remembered GCC 4.5 as being the turning point.
--
Eric Botcazou
OK
for every language on strict-alignment platforms. This was changed only
because of SSE on x86.
--
Eric Botcazou
> Xstormy does 3 mov.b also. For that matter, so does the x86 target (both
> -m32 and -m64). Hm.
Indeed, even at -Os, so this may be a generic issue.
--
Eric Botcazou
o do a side-by-side debugging of a compiler built for a
similar target for which only 2 stores are generated.
--
Eric Botcazou
n and should be combined into a single HImode move. This
> happens both with -O2 and -Os.
The GIMPLE pass responsible for the optimization simply punts for the "funny-
endian ordering" of the PDP11. More generally, you shouldn't expect anything
sparkling for such a peculiar architecture as the PDP11.
--
Eric Botcazou
> They are definitely useful in my day-to-day work when tracking down changes
> given I can easily grep them.
Seconded.
> I think that any change here should be _after_ we've switched to git
> (finally).
Well, git doesn't make anything easier than subversion in thi
> We noticed a difference in the code generated for aarch64 gcc 7.2
> hosted in Linux vs mingw. AFIK, we are supposed to produce the same
> output.
Try maybe to compare the automata generated on the hosts, are they identical?
--
Eric Botcazou
_Default: constant Boolean := False;
in system-rtems.ads.
--
Eric Botcazou
r_with_msg?
No one, it's obsolete. The port is very likely not (properly) configured.
--
Eric Botcazou
> Is there any builtin function in C which prints the virtual address of
> functions including the main? I see __builtin_return_address() but that
> returns the “return address”.
This list is not appropriate for such a question, use gcc-help@ instead.
--
Eric Botcazou
ols build (gnatdll to be precise).
--
Eric Botcazou
> Any ideas about how to resolve this?
Compare with a known working version (e.g. GCC 7) and find the discrepancy.
--
Eric Botcazou
etting aside the
handling of symbolic information might end up being a good compromise between
the necessary minimal[*] handling of this information and the complexity of
doing it directly in the Ranger.
[*] The implicit assumption hee is that a VRP implementation with full-blown
support of symbolic ranges is not worth the hassle in practice.
--
Eric Botcazou
term with cases that do
require symbolic information to optimize things? The TODO page seems to
acknowledge the loophole but only mentions a plan to deal with equivalences,
which is not sufficient in the general case (as acknowledged too on the page).
--
Eric Botcazou
> Is this something the back end is responsible for getting right, for example
> via the machine description file? If so, any hints where to start?
The SUBREG of MEM is invalid at this stage.
--
Eric Botcazou
gisters, whereas for structures it's dependent on
the types of the fields.
> Could anyone provide some insight on whether the TYPE_MODE of a union should
> stay as a MODE_INT class or if it would be acceptable for the TYPE_MODE to
> be other classes e.g. MODE_FLOAT?
No, I don't think we want to change that.
--
Eric Botcazou
ng them at P3, which is not "don't care" as far as I
know but just the default priority. The criterion could be a flag that is not
part of any -Ox switches and not enabled on any primary+secondary platforms.
--
Eric Botcazou
ich doesn't really make sense IMO.
--
Eric Botcazou
> Maybe we should have a target hook that says setjmp/longjmp are
> implemented by simple function calls (or as-if by function calls), so
> as not to penalize everyone who has an, erm, more conservative ABI?
Yes, that sounds a sensible compromise to me.
--
Eric Botcazou
GNU and the Solaris libc make use of
the leeway given by the psABI for setjmp at least in some cases.
--
Eric Botcazou
the (historical) requirements were vague
enough to allow their interpretation, IOW that the compiler can do the work.
--
Eric Botcazou
fixed" it?
What are the requirements imposed on setjmp exactly and by whom? The psABI on
SPARC (the SCD) has an explicit note saying that setjmp/sigsetjmp/vfork don't
(have to) preserve the usual non-volatile registers.
--
Eric Botcazou
2102m ce2103a ce2103b ce3102d ce3107a ce3115a cxa4005 cxa4008
> cxa4016 cxa4019 cxac003 cxb3012 cxf3a01 cxf3a02
> /opt/devel/gnu/src/gcc-mingw-w64/gcc-8.0.0/gcc/testsuite/ada/acats/run_all.s
> h completed at Wed Feb 7 12:28:36 CET 2018
Please open a PR for the ACATS regressions on mainline.
--
Eric Botcazou
> Sorry for the stupid question. How do I pass this to the testsuite?
For ACATS it's a little awkward: you manually need to add it to the gccflags
variable in gcc/testsuite/ada/acats/run_all.sh
--
Eric Botcazou
d
> 23_containers/unordered_set/requirements/exception/propagation_consistent.cc
Does passing -fno-reorder-blocks-and-partition change anything?
--
Eric Botcazou
tes is given by tree.c:bit_position/byte_position.
--
Eric Botcazou
ew back-end. And IMO starting from scratch is a bad idea.
> But writing a backend is too much for a GSoC, even a small one.
Definitely, and doing a CC0 conversion is probably an upper bound.
--
Eric Botcazou
atency of the loads (assuming some AVR processors are pipelined),
in which case CCmode will give you a performance bonus.
--
Eric Botcazou
> This HOST_WIDE_INT is defined in gcc/hwint.h. Who is supposed to include
> this file? Is this done via an #include or via a tm_file (gcc/config.gcc)?
Nobody I'd say, the declaration shouldn't be compiled for the target.
--
Eric Botcazou
e git has specific counter-measures against them, but that's
useful at least with Subversion.
--
Eric Botcazou
> handle_pragma_scalar_storage_order does not check c_dialect_cxx, so it
> will not issue a warning for C++ even though the pragma is effectively
> ignored.
Indeed, unlike for the attribute, will fix, thanks.
--
Eric Botcazou
ere is some
interest though.
--
Eric Botcazou
structures..."
with the same limitation as GCC about taking the address:
"It is not possible to take the address of a byte-swapped member."
--
Eric Botcazou
s any easier than
> fixing the application.
Note that WRS' Diab compiler has got something equivalent to what GCC has got
now, i.e. a way to tag a particular component in a structure as BE or LE.
--
Eric Botcazou
time performance. This is not what the attribute was designed for, although
we added the -fsso-struct switch at some point.
--
Eric Botcazou
ng the code simple and
> maintainable.
How do you discriminate scalars stored in native order and scalars stored in
reverse order though? That's the main difficulty of the implementation.
--
Eric Botcazou
deprecation of cc0 is futile,
> the voices that support cc0 deprecation are more and usefulness
> of cc0 is not recognized.
cc0 is just obsolete and inferior compared to the new representation.
--
Eric Botcazou
ion where allowing volatile memory accesses in branch delay slots
> leads to problems. Am I missing a case? Or are negative effects limited
> to other architectures?
Delay slot filling is a code movement optimization and such optimizations are
not valid for volatile memory accesses in the
iler
should really consider enabling it (and it's a very good testbed).
--
Eric Botcazou
64/Linux.
--
Eric Botcazou
er/79562
> * sanitizer_common/sanitizer_platform_limits_posix.cc: Cherry-pick
> upstream r294806.
>
>
> this was also pushed to the GCC 5 branch.
Yes, it's again PR sanitizer/63958 I guess.
--
Eric Botcazou
1 - 100 of 1095 matches
Mail list logo