public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/107502] New: GCC fails to detect foo(first_const,last)-first_const+first pattern
@ 2022-11-01 19:34 unlvsur at live dot com
2022-11-01 19:43 ` [Bug tree-optimization/107502] " pinskia at gcc dot gnu.org
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: unlvsur at live dot com @ 2022-11-01 19:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107502
Bug ID: 107502
Summary: GCC fails to detect
foo(first_const,last)-first_const+first pattern
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: unlvsur at live dot com
Target Milestone: ---
GCC fails to detect foo(first_const,last)-first_const+first pattern.
This is to use C++ std::contiguous_iterator interfaces with char const*
foo(char const* first, char const* last) noexcept; like APIs. However, GCC
fails to detect they are the same in IR and make them tail calls.
See godbolt:
https://godbolt.org/z/67PvYPar8
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/107502] GCC fails to detect foo(first_const,last)-first_const+first pattern
2022-11-01 19:34 [Bug tree-optimization/107502] New: GCC fails to detect foo(first_const,last)-first_const+first pattern unlvsur at live dot com
@ 2022-11-01 19:43 ` pinskia at gcc dot gnu.org
2022-11-01 19:46 ` pinskia at gcc dot gnu.org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-11-01 19:43 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107502
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Created attachment 53817
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53817&action=edit
testcase
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/107502] GCC fails to detect foo(first_const,last)-first_const+first pattern
2022-11-01 19:34 [Bug tree-optimization/107502] New: GCC fails to detect foo(first_const,last)-first_const+first pattern unlvsur at live dot com
2022-11-01 19:43 ` [Bug tree-optimization/107502] " pinskia at gcc dot gnu.org
@ 2022-11-01 19:46 ` pinskia at gcc dot gnu.org
2022-11-01 19:51 ` pinskia at gcc dot gnu.org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-11-01 19:46 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107502
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |INVALID
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Your testcase has no return in it.
So there is a __builtin_unreachable added at the end of each function without
returns.
<source>: In function 'char* test(char*, char*)':
<source>:34:1: warning: no return statement in function returning non-void
[-Wreturn-type]
34 | }
| ^
<source>: In function 'std::vector<char>::iterator
test2(std::vector<char>::iterator, std::vector<char>::iterator)':
<source>:40:1: warning: no return statement in function returning non-void
[-Wreturn-type]
40 | }
| ^
ASM generation compiler returned: 0
<source>: In function 'char* test(char*, char*)':
<source>:34:1: warning: no return statement in function returning non-void
[-Wreturn-type]
34 | }
| ^
<source>: In function 'std::vector<char>::iterator
test2(std::vector<char>::iterator, std::vector<char>::iterator)':
<source>:40:1: warning: no return statement in function returning non-void
[-Wreturn-type]
40 | }
| ^
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/107502] GCC fails to detect foo(first_const,last)-first_const+first pattern
2022-11-01 19:34 [Bug tree-optimization/107502] New: GCC fails to detect foo(first_const,last)-first_const+first pattern unlvsur at live dot com
2022-11-01 19:43 ` [Bug tree-optimization/107502] " pinskia at gcc dot gnu.org
2022-11-01 19:46 ` pinskia at gcc dot gnu.org
@ 2022-11-01 19:51 ` pinskia at gcc dot gnu.org
2022-11-01 22:50 ` unlvsur at live dot com
2022-11-01 22:56 ` pinskia at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-11-01 19:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107502
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I filed PR 107503 with the reduced testcase for the test2 case (after having
fixed the return issue).
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/107502] GCC fails to detect foo(first_const,last)-first_const+first pattern
2022-11-01 19:34 [Bug tree-optimization/107502] New: GCC fails to detect foo(first_const,last)-first_const+first pattern unlvsur at live dot com
` (2 preceding siblings ...)
2022-11-01 19:51 ` pinskia at gcc dot gnu.org
@ 2022-11-01 22:50 ` unlvsur at live dot com
2022-11-01 22:56 ` pinskia at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: unlvsur at live dot com @ 2022-11-01 22:50 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107502
--- Comment #4 from cqwrteur <unlvsur at live dot com> ---
(In reply to Andrew Pinski from comment #3)
> I filed PR 107503 with the reduced testcase for the test2 case (after having
> fixed the return issue).
sorry about that. it should be vector case
https://godbolt.org/z/f9TYMxb7c
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/107502] GCC fails to detect foo(first_const,last)-first_const+first pattern
2022-11-01 19:34 [Bug tree-optimization/107502] New: GCC fails to detect foo(first_const,last)-first_const+first pattern unlvsur at live dot com
` (3 preceding siblings ...)
2022-11-01 22:50 ` unlvsur at live dot com
@ 2022-11-01 22:56 ` pinskia at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-11-01 22:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107502
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to cqwrteur from comment #4)
> (In reply to Andrew Pinski from comment #3)
> > I filed PR 107503 with the reduced testcase for the test2 case (after having
> > fixed the return issue).
>
> sorry about that. it should be vector case
> https://godbolt.org/z/f9TYMxb7c
Right, PR 107503 has the reduced testcase for your vector (test2 function)
testcase.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-11-01 22:56 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-01 19:34 [Bug tree-optimization/107502] New: GCC fails to detect foo(first_const,last)-first_const+first pattern unlvsur at live dot com
2022-11-01 19:43 ` [Bug tree-optimization/107502] " pinskia at gcc dot gnu.org
2022-11-01 19:46 ` pinskia at gcc dot gnu.org
2022-11-01 19:51 ` pinskia at gcc dot gnu.org
2022-11-01 22:50 ` unlvsur at live dot com
2022-11-01 22:56 ` pinskia at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).