Hi,
I'm looking at the fp-bit.h, fp-bit.c, and try to understand the
floating point operation simulation. But there are many proper noun
hard to get the conception. Such as
NGARDS
IMPLICIT_1
Are there any details or documents about these?
Thanks
Eric.
> 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
On 1/24/20, Richard Earnshaw (lists) wrote:
> On 24/01/2020 10:27, Jonathan Wakely wrote:
>> On Fri, 24 Jan 2020 at 03:39, Nicholas Krause
>> wrote:
>>> Sorry for the second message Allan but make -j does not scale well
>>> beyond 4 or
>>> 8 threads and that's considering a 4 core or 8 machine. T
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
Hi there,
my name is Eric, I'm a german student at RWTH Aachen University currently
researching OpenMP.
For my research, I'm also looking at math functions provided by compilers like
GCC. When writing vectorizable code, it is important to use math functions
which also
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
> I'll take a look.
Thanks. The stack usage reported through current_function_static_stack_size
by the back-end must comprise the amount of stack from just before the call to
after the stack is established. For example on i386:
eric@polaris:> cat t.c
int main (void)
{
return
> 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
ning for cases
> where the output buffer overlaps an input buffer?
>
>
>
> Thanks
> Bernd.
>
I was testing Prathamesh's -Wrestrict patch, and it caught a few cases
like that:
https://gcc.gnu.org/ml/gcc-patches/2016-09/msg00027.html
Eric
Seeing how long the thread on gcc-patches on what comments
-Wimplicit-fallthrough should recognize has gotten, I thought it might
be a good idea to start a discussion on lint-style comments more
generally. Instead of just limiting the use of lint-style comments to
-Wimplicit-fallthrough, why not sp
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
o ping
these, which I don't think have gone in yet:
- https://gcc.gnu.org/ml/gcc-patches/2016-09/msg00612.html Adds
-Wshadow-local and -Wshadow-compatible-local
- https://gcc.gnu.org/ml/gcc-patches/2016-10/msg01545.html Adds -Wrestrict
- Um... there were a few others that I'll have to check once I get back home
Thanks,
Eric
On 10/26/16, Ian Lance Taylor wrote:
> On Wed, Oct 26, 2016 at 9:31 AM, Will Hawkins wrote:
>>
>> Thank you for your response! I don't think that there has to be
>> controversy to be interesting. Obviously that split/reunification was
>> important, but I think that there might even be some value
> 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
ost of them old indeed, with the exception of AVR.
You're probably thinking of m68k, but AVR seems to be more blocking here.
--
Eric Botcazou
> #define FIRST_PARM_OFFSET(FNDECL) (get_frame_size() +
> STARTING_FRAME_OFFSET + RETURN_BYTES )
I don't think that you can define FIRST_PARM_OFFSET like so, you need to have
a fixed FIRST_PARM_OFFSET (for some definition of fixed) and eliminate the
argument pointer during reload
a
> machine option to GCC to use an ASI of 0x0A for the atomic operations via
> CASA on LEON3?
Yes, I guess we actually want to emit an ASI of either 0xA (user data) or 0xB
(supervisor data), predicated on -muser-mode. I'll prepare a patch.
--
Eric Botcazou
> Thanks, since this -muser-mode seems to be something new, maybe we should
> instead use -mcas=supervisor|user to make it more specific?
I don't think so, we might need to extend its purview in the future.
--
Eric Botcazou
> Ok, this makes sense. Which default to you have in mind for the -muser-mode
> option?
-mno-user-mode the default, it's usually what's done in this case I think.
--
Eric Botcazou
> I think its more natural to generate user-space code by default.
Well, the other architectures I know of think differently so we'll follow them.
--
Eric Botcazou
I'll backport the changes to the official 4.9 branch at
some point.
--
Eric Botcazou
rned 1 exit status
> make[3]: *** [cc1] Error 1
>
> [snip]
>
>
> Requires a later version of glibc?
Yes, glibc 2.4 is required for GCC 4.9 because of this.
--
Eric Botcazou
ript
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT(elf32-i386)
GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-
linux.so.2 ) )
--
Eric Botcazou
> But that should be generally needed only when linking with -Wl,-z,defs ,
> without it the linker shouldn't care.
Yet using a local libc.so with the missing AS_NEEDED is a (poor) workaround.
--
Eric Botcazou
s probably the best bet. Then the
various merits of the patch to clean up the code can be argued. As far
as some sort of workaround, I'd suggest seeing if there's something
else that can be done first.
Thanks.
-eric
mination_offset (FROM, TO)
>
> #define CAN_ELIMINATE 1
>
> #define FIRST_PARM_OFFSET 3
>
> With -O0 or by default options the frame and arg regs are not
> replaced by stack reg and the same replaced with -O1 and above
> optimisation.
Only pseudo-registers are always eliminated I think.
--
Eric Botcazou
they need to be fake hard registers, i.e. hard registers according to the
FIRST_PSEUDO_REGISTER macro but with an arbitrary REGNUM (typically just below
the FIRST_PSEUDO_REGISTER macro). See the numerous examples in the tree.
--
Eric Botcazou
l used regs respectively.
If they are fake, you ought to mark them as fixed.
> Please help us regrading with any hints ??
Look at existing ports in the tree with an equivalent setup.
--
Eric Botcazou
under NetBSD 6.4.1, throws Illegal
> Instruction during those lib{atomic, itm} final stage configure.
>
> Removing "-mcpu=v9" allows the build to finalize.
>
> System is a QEMUlated SparcStation 5. Not the best target for testing,
> but I understand this is a bug nonetheless.
IIRC both libraries require the V9 architecture to work properly/efficiently.
--
Eric Botcazou
quot; to
> XCFLAGS, but adding it for non-v9 sparc-*-* targets is at least weird.
Well, V9 is about 20 years old now so defaulting to it is not unreasonable,
especially for all the native OSes. But patches are of course welcome.
--
Eric Botcazou
> V9 is currently bound to 64bit, you can't build a sparc-linux-gnu compiler
> defaulting to V9 without patches.
libitm was tested on SPARC/Linux though.
--
Eric Botcazou
> Can someone give me a hint to solve my problem ? I have no idea which part
> of my backend could be related to the GENERIC or GIMPLE generation and I'm
> very unfamiliar with this part of GCC.
Look at the patch installed in conjunction with gnat.dg/array18.adb.
--
Eric Botcazou
comment should clearly state the intent of the change though and how to
adjust it to your needs.
--
Eric Botcazou
marking.
>
I know Qualcomm has a few A53 machines that they use for benchmarking,
but they're definitely not generally available as of yet.
Might want to try asking them to run some comparison numbers though. I
remember they did before EuroLLVM a while back when we were looking at
merging our two aarch64 ports.
-eric
t as
ridiculous as Firefox, but still.
--
Eric Botcazou
y": if you drop the major version
number, the next release should be 10.0, not 5.0. Here we seem to be leaning
towards a weird scheme where we retain the major version number but change its
meaning, which will be even more confusing than the current scheme.
--
Eric Botcazou
> How does it change meaning? It's still the major number, just
> incremented more often.
Reread Ian's post, the original idea is to drop the major version number.
--
Eric Botcazou
've not been able to do a lot of
work with gcc until recently, but I am now reading the list etc. Patch
review will take a bit longer than Richard, he's very hard to replace.
I'm also down with you and Catherine being nominated for
maintainership, you've both been doing a lot of work in the area and
it makes some sense.
-eric
27;s message if you deem it necessary.
--
Eric Botcazou
401 - 500 of 1857 matches
Mail list logo