[LLVMdev] Extending AsmPrinter

Chris Lattner sabre at nondot.org
Wed Aug 15 13:55:50 PDT 2007


On Wed, 15 Aug 2007, David Greene wrote:
> I was just about to say that.  While debugging my custom streambuf I had the
> "opportunity" of investigating how libstdc++-v3 defines cout and friends.
> It's not pretty.  Basically, there's a stdio_sync_filebuf used as a proxy to
> C's FILE *.  Because stdio_sync_filebuf does no buffering itself (delegating
> that to FILE), basic_streambuf::overflow is called a lot.  Some of this is
> mitigated with xsputn for multiple characters, but it's a lot of virtual
> function calls.

Yes, it is extremely inefficient.

> To get something faster probably means a custom buffering solution (which
> my custom streambuf has, but is not particularly intelligent) and native
> syscalls.  The downside of my implementation is that it is POSIX-specific
> and thus won't be real useful for Windows.

Why not just use the unlocked stdio calls?

-Chris

-- 
http://nondot.org/sabre/
http://llvm.org/



More information about the llvm-dev mailing list