This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Fixes tree-loop-distribute-patterns issues
- From: Roland McGrath <roland at hack dot frob dot com>
- To: "Carlos O'Donell" <carlos at redhat dot com>
- Cc: Adhemerval Zanella <azanella at linux dot vnet dot ibm dot com>, "GNU C. Library" <libc-alpha at sourceware dot org>, Siddhesh Poyarekar <siddhesh at redhat dot com>
- Date: Wed, 19 Jun 2013 15:51:34 -0700 (PDT)
- Subject: Re: [PATCH] Fixes tree-loop-distribute-patterns issues
- References: <51C0AFB7 dot 1060009 at linux dot vnet dot ibm dot com> <20130618205608 dot 9CCE22C0AC at topped-with-meat dot com> <51C1BFE9 dot 4070805 at linux dot vnet dot ibm dot com> <51C1CEFC dot 9000100 at redhat dot com> <51C1FE4C dot 3020400 at linux dot vnet dot ibm dot com> <20130619221130 dot 7B91A2C10E at topped-with-meat dot com> <51C2338B dot 4040304 at redhat dot com>
> Why isn't it what we want? Is it because it's fragile and only indirectly
> tests if the actual optimization will be applied?
Those are importantly bad things, yes. But, really, why do you think that
it might be what we want?
> There appears to be a turning point at which you decide to just disable
> the optimization forever (until a human reviews the situation) instead of
> dynamically testing for what is actually wrong.
For this case, I really don't think it makes any kind of sense to
"dynamically test for what is actually wrong"--or perhaps even to think
that you ever could. The real "what is actually wrong" is not a dynamic
thing. It's statically true that it's wrong for the compiler to think it
has the option to emit a library call in these cases.
> What if we made the test look exactly like the way memset or memmove looks
> when compiling in glibc?
That's unmaintainable unless you take great pains to ensure that it is
actually the same source code compiled in exactly the same way in the test
and the actual code.
> Would that have made the dynamic test sufficiently robust?
I hesitate even to try to answer this question. You're asking about the
details of a path that I'm sure is fundamentally wrong.
Thanks,
Roland