]> granicus.if.org Git - clang/commit
Add a new RewriteRope data structure which is a smarter way to represent the text
authorChris Lattner <sabre@nondot.org>
Thu, 8 Nov 2007 07:35:14 +0000 (07:35 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 8 Nov 2007 07:35:14 +0000 (07:35 +0000)
commit8b0c2f659d350118cceee33c211a3dd5e3138ac2
treee5802c3996fc1c9c70339c8ae65cc9f023ffef3c
parentcdd808e2af9f92ef406065c4855ac72d121dbcda
Add a new RewriteRope data structure which is a smarter way to represent the text
backing a rewrite buffer than using an std::vector<char>.  This class was hacked
together very quickly and needs to be cleaned up, but it seems to work.  It speeds
up rewriting a a 7M file from 6.43s to 0.24s on my machine.  The impl could also
be made to be a lot more algorithmically sound.

This produces identical output to using vector on this testcase, if it causes a
problems or bugs are encountered, it can be disabled by changing the
RewriteBuffer::Buffer typedef back.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43884 91177308-0d34-0410-b5e6-96231b3b80d8
Rewrite/Rewriter.cpp
clang.xcodeproj/project.pbxproj
include/clang/Rewrite/RewriteRope.h [new file with mode: 0644]
include/clang/Rewrite/Rewriter.h