This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch] Patch set for regex instantiation


Here're 4 patches that finally led the _Compiler's instantiation and
some other optimization for compiling time.

1) Create class _ScannerBase to make _Scanner pithier. Move const
static members to src/c++11/regex.cc.
2) Make _Compiler and _Scanner `_FwdIter independent`. We store the
input regex string in basic_regex as a basic_string; but when
compiling it, const _CharT* is used.
3) Avoid using std::map, std::set and std::queue to reduce compile time.
4) Instantiate _Compiler<regex_traits<char>> and
_Compiler<regex_traits<wchar_t>>. Export vector<string> and
vector<wstring>'s ctor and dtor as well for _Compiler's denpendency.

Now compiling time reduced about a half, and .so increases by about
100kb (release version).

These patches are based on my previous patch. Is that Ok to commit?

Booted, and tested with -m64 and -m32; But check-debug failed some
23_containers/* cases? I suppose it's not my problem?

Thank you!


-- 
Regards,
Tim Shen

Attachment: 1.diff
Description: Text document

Attachment: 2.diff
Description: Text document

Attachment: 3.diff
Description: Text document

Attachment: 4.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]