This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/32044] [4.3 regression] udivdi3 counterproductive, unwarranted use
- From: "mark at codesourcery dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Nov 2007 18:58:58 -0000
- Subject: [Bug middle-end/32044] [4.3 regression] udivdi3 counterproductive, unwarranted use
- References: <bug-32044-11706@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #30 from mark at codesourcery dot com 2007-11-27 18:58 -------
Subject: Re: [4.3 regression] udivdi3 counterproductive,
unwarranted use
rguenth at gcc dot gnu dot org wrote:
> ------- Comment #29 from rguenth at gcc dot gnu dot org 2007-11-27 09:43 -------
> This is IMHO at most a QOI issue - at Novell we mark timespec_add_ns's u64
> parameter as volatile to work around this issue. I expect upstream to adopt
> a workaround as well. Note that some targets in the kernel have parts of
> libgcc implemented, but i?86 misses at least __udivdi3.
I am not a kernel developer, but my feeling as a GCC developer is that
you must provide the entry points in libgcc whenever you are linking
code compiled with GCC. In other words, that GCC should be free to use
functions from libgcc as it pleases.
Of course, it might be a GCC optimization bug to call __udivdi3; perhaps
it could generate more efficient code that doesn't call that function.
Do others agree? That this is at most an optimization issue, but not a
correctness issue?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32044