ilovepi wrote:

> In these tests, at which point are you constructing the std::array? Is it 
> inside each EscapeStream or once when Template is constructed?
> 

Once when the template is constructed. I used a function w/ a static variable 
to provide the default escapes.

> It's possible that `std::array` wasn't the right suggestion -- maybe the fact 
> that it stores std::string makes it too large. But if you check what 
> find_first_of actually does
> 
> https://github.com/llvm/llvm-project/blob/ebcf1bf2ecba6b25ece3c2bbddb4485e76189387/llvm/lib/Support/StringRef.cpp#L240-L242
> 
> it will just take that string of characters you pass it an convert it into a 
> bitset. We may as well directly create the bitset instead of creating the 
> char string and then converting it to a bit set on every call.

Could be. I think the big win is that when we use find_first_of we pass a big 
stringref to the output stream instead of passing in one string at a time. 
There's no copy, and the number of iterations where we write to the stream is 
reduced.

https://github.com/llvm/llvm-project/pull/160166
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to