stdcxx-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-415) [gcc 3.3.3] __rw_utf8toucs4() too big to be inlined
Date Sat, 16 Feb 2008 00:32:07 GMT

    [ https://issues.apache.org/jira/browse/STDCXX-415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12569465#action_12569465
] 

Martin Sebor commented on STDCXX-415:
-------------------------------------

FWIW,  many/most of these warnings have disappeared since gcc 3.3. I'm not sure if it's because
the inliner has been changed to handle bigger functions or because the gcc maintainers have
simply silenced the warnings. It might be worthwhile to look at the disassembly to see what
the deal is. If it turns out that the function still is too big to be inlined (it looks like
it might be), breaking it up into 2, an inline one that handles, say, 1 and 2-byte characters,
and an out-of-line one that does the rest, might be a reasonably efficient compromise.

> [gcc 3.3.3] __rw_utf8toucs4() too big to be inlined
> ---------------------------------------------------
>
>                 Key: STDCXX-415
>                 URL: https://issues.apache.org/jira/browse/STDCXX-415
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 4.1.3
>         Environment: gcc 3.3.3 (SuSE Linux)
>            Reporter: Martin Sebor
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> We're getting a few warnings for the __rw_utf8toucs4() inline function indicating that
the function is too big to be inlined. It might be a good idea to split it up into two, a
simple inline wrapper to handle the common case for single and perhaps two-byte characters
and a bigger out-of-line implementation to handle the more complicated multibyte characters.
> {noformat}
> c++ -O2   -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align
 -fPIC  /amd/devco/sebor/stdcxx/src/wctype.cpp
> gencat rwstderr.cat /amd/devco/sebor/stdcxx/src/rwstderr.msg
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp: In member function `virtual int 
>    std::codecvt_byname<wchar_t, char, __mbstate_t>::do_length(__mbstate_t&,

>    const char*, const char*, unsigned int) const':
> /amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
>    in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
>    char*)'
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:964: warning: called from here
> In file included from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1065,
>                  from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1621:
> /amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
>    in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
>    char*)'
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:964: warning: called from here
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp: In member function `virtual 
>    std::codecvt_base::result std::codecvt_byname<wchar_t, char, 
>    __mbstate_t>::do_in(__mbstate_t&, const char*, const char*, const char*&,

>    wchar_t*, wchar_t*, wchar_t*&) const':
> /amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
>    in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
>    char*)'
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:736: warning: called from here
> In file included from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1396:
> /amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
>    in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
>    char*)'
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:736: warning: called from here
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message