• Home
  • History
  • Annotate
  • only in /external/clang/include/clang/Rewrite/
History log of /external/clang/include/clang/Rewrite/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
98b303cfd3edb82653f0534cdcaa87c582a3ddbd 17-Nov-2013 Alp Toker <alp@nuanti.com> RewriteBuffer::write(): Add a doc comment about non-portable use

The function isn't strictly at fault but there are callers using it
incorrectly, causing crashes with in-place edits of 64KB or larger files on

See PR17960 for details.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194972 91177308-0d34-0410-b5e6-96231b3b80d8
60c9c305a8f47cb1e6d4aa174e90e80355c4d415 07-Nov-2013 Alp Toker <alp@nuanti.com> RewriteBuffer: Remove an unused typedef

This hasn't been used for some time.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194191 91177308-0d34-0410-b5e6-96231b3b80d8
6bf97fb15c09db9a0238ccb73be2dbf9cd77a7ee 29-Oct-2013 Alp Toker <alp@nuanti.com> Use Rewriter::overwriteChangedFiles() directly

This replaces the custom code in RefactoringTool::saveRewrittenFiles() which
lacked atomic file saving and error diagnostics, resolving an old FIXME from

Landing this time with the proper return code, plus a very unhelpful comment
cleared up.

Rubber-stamped by Manuel Klimek.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193594 91177308-0d34-0410-b5e6-96231b3b80d8
66490d26d14b9597768322b670a94cedbbe71448 29-Oct-2013 Alp Toker <alp@nuanti.com> Remove obsolete RewriteBuffer comment

The string buffer in question was replaced with RewriteRope in r43884
back in 2007.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193591 91177308-0d34-0410-b5e6-96231b3b80d8
a87ce261dd9fd24609e1aff77fe575f46a781f17 27-Aug-2013 Edwin Vane <edwin.vane@intel.com> Adding const buffer iterator generators to Rewriter

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189344 91177308-0d34-0410-b5e6-96231b3b80d8
1342a4ef62dd7b839c6f09348b246a4f00282f29 12-Jun-2013 Benjamin Kramer <benny.kra@googlemail.com> Port HTMLDiagnostics to PathV2. No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183849 91177308-0d34-0410-b5e6-96231b3b80d8
cc2b653c319599f502425d2c3de29865d47bb9e4 04-May-2013 Douglas Gregor <dgregor@apple.com> Remove DiagnosticConsumer::clone(), a bad idea that is now unused.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181070 91177308-0d34-0410-b5e6-96231b3b80d8
ada7191795dde85a620008094fbe5464abdb916b 08-Feb-2013 Fariborz Jahanian <fjahanian@apple.com> objective-C modern translator. Generate #line
info in the translated code under -g only.
// rdar://13138170

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174684 91177308-0d34-0410-b5e6-96231b3b80d8
d088a5f966c31462280d5ace29febc6889834611 11-Jan-2013 Edwin Vane <edwin.vane@intel.com> Allow RefactoringTool to write to memory instead of always to disk

RefactoringTool::run() always writes the result of rewrites to disk.
Instead, make this optional and provide a method for getting the
refactoring results in a memory buffer instead.

Also made ClangTool polymorphic so RefactoringTool could inherit from it
to properly express the IS-A relationship. This change also provides
access to ClangTool's public interface, e.g. mapVirtualFile() which is
important once refactored buffers start living in memory instead of on

Reviewers: klimek

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172219 91177308-0d34-0410-b5e6-96231b3b80d8
30a2e16f6c27f888dd11eba6bbbae1e980078fcb 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort #include lines for all files under include/...

This is a simpler sort, entirely automatic with the help of
llvm/utils/sort_includes.py -- no manual edits here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169238 91177308-0d34-0410-b5e6-96231b3b80d8
ad8070b6bddf2867fd3aba8354cff7016e568758 14-Nov-2012 Nick Lewycky <nicholas@mxc.ca> This function isn't called SaveFiles any more.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167901 91177308-0d34-0410-b5e6-96231b3b80d8
f56faa01936b9cf909623d7f06e3c2569ca4a78e 15-Sep-2012 Dmitri Gribenko <gribozavr@gmail.com> Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163983 91177308-0d34-0410-b5e6-96231b3b80d8
1824d54df85a462ada812dadda18130f951d40f3 13-Sep-2012 Dmitri Gribenko <gribozavr@gmail.com> Fix Doxygen misuse: refer to parameter names in paragraphs correctly (\arg is
not what most people want -- it starts a new paragraph).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163793 91177308-0d34-0410-b5e6-96231b3b80d8
305c613af6cfc40e519c75d9d2c84c6fa9a841c0 01-Sep-2012 Ted Kremenek <kremenek@apple.com> Split library clangRewrite into clangRewriteCore and clangRewriteFrontend.
This is similar to how we divide up the StaticAnalyzer libraries to separate
core functionality to what is clearly associated with Frontend actions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163050 91177308-0d34-0410-b5e6-96231b3b80d8
a8eaf008e92759142982f7b40720b2b2674bd663 23-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix undefined behavior: member function calls where 'this' is a null pointer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162430 91177308-0d34-0410-b5e6-96231b3b80d8
60ad16b7e24cdb88c577c107b69da85458000858 14-Jun-2012 David Blaikie <dblaikie@gmail.com> Rename -rewrite-includes to -frewrite-includes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158458 91177308-0d34-0410-b5e6-96231b3b80d8
8c0b3787e7ccc7978b42dfbb84da2b802c743a5d 06-Jun-2012 David Blaikie <dblaikie@gmail.com> Add a -rewrite-includes option, which is similar to -rewrite-macros, but only expands #include directives.

Patch contributed by Lubos Lunak (l.lunax@suse.cz).
Review by Matt Beaumont-Gay (matthewbg@google.com).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158093 91177308-0d34-0410-b5e6-96231b3b80d8
bfbfee51ec8f20f3f1b9f8329705d816b67438e7 22-May-2012 Manuel Klimek <klimek@google.com> Adds a method overwriteChangedFiles to the Rewriter. This is implemented by
first writing the changed files to a temporary location and then overwriting
the original files atomically.

Also adds a RewriterTestContext to aid unit testing rewrting logic in general.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157260 91177308-0d34-0410-b5e6-96231b3b80d8
3ecafe4d7d8f45da616be2ffef998c851dfb7b6b 02-May-2012 John McCall <rjmccall@apple.com> Don't try to instantiate std::list at an incomplete type; it's not
allowed, and it'll blow up in unfortunate ways when using a proper
C++11 library.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155980 91177308-0d34-0410-b5e6-96231b3b80d8
30660a898545416f0fea2d717f16f75640001e38 06-Mar-2012 Ted Kremenek <kremenek@apple.com> Add new code migrator support for migrating existing Objective-C code to use
the new Objective-C NSArray/NSDictionary/NSNumber literal syntax.

This introduces a new library, libEdit, which provides a new way to support
migration of code that improves on the original ARC migrator. We now believe
that most of its functionality can be refactored into the existing libraries,
and thus this new library may shortly disappear.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152141 91177308-0d34-0410-b5e6-96231b3b80d8
64cb63a0cfa76b278e0791141c7b5a1b424ab434 07-Feb-2012 Fariborz Jahanian <fjahanian@apple.com> objc rewriter: start supporting modern objective-c abi
in objective-c rewriter. wip.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149989 91177308-0d34-0410-b5e6-96231b3b80d8
6f42b62b6194f53bcbc349f5d17388e1936535d7 05-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> Basic: import OwningPtr<> into clang namespace

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149798 91177308-0d34-0410-b5e6-96231b3b80d8
272afe4a6f28a3abdac8a90516bd8a60592195ab 04-Feb-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Remove unused field from FixItRecompile.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149762 91177308-0d34-0410-b5e6-96231b3b80d8
c8af9107fd1eb014d9124b753c38c4d06fa219f4 26-Jan-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> In FixItRewriteToTemp::RewriteFilename don't try to close the file descriptor
with close(); return it instead.

Fixes mingw build and eliminates possible racing issues.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149043 91177308-0d34-0410-b5e6-96231b3b80d8
61d679ab2831b161c857cf3f974312fbd4ef1efd 26-Jan-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce 3 new fixit options:

applies fixits and recompiles the result
applies fixits to temporary files
applies fixits for warnings only, not errors

Combining "-fixit-recompile -fixit-to-temporary" allows testing the result of fixits
without touching the original sources.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149027 91177308-0d34-0410-b5e6-96231b3b80d8
aee526e77657afd1600276450e9c346953ad51d7 29-Sep-2011 Douglas Gregor <dgregor@apple.com> Introduce a pure virtual clone() method to DiagnosticConsumer, so that
we have the ability to create a new, distict diagnostic consumer when
we go off and build a module. This avoids the currently horribleness
where the same diagnostic consumer sees diagnostics for multiple
translation units (and multiple SourceManagers!) causing all sorts of havok.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140743 91177308-0d34-0410-b5e6-96231b3b80d8
40847cfb58acc3cac7d68727df9455ac45f2e118 26-Sep-2011 David Blaikie <dblaikie@gmail.com> Rename DiagnosticInfo to Diagnostic as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140493 91177308-0d34-0410-b5e6-96231b3b80d8
78ad0b98848c17a0a11847fa1d456e2dfec8aa2f 26-Sep-2011 David Blaikie <dblaikie@gmail.com> Rename DiagnosticClient to DiagnosticConsumer as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140479 91177308-0d34-0410-b5e6-96231b3b80d8
d6471f7c1921c7802804ce3ff6fe9768310f72b9 26-Sep-2011 David Blaikie <dblaikie@gmail.com> Rename Diagnostic to DiagnosticsEngine as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140478 91177308-0d34-0410-b5e6-96231b3b80d8
db999aad8a1b9dc265b2e627be334be6580a86a3 20-Jul-2011 Chris Lattner <sabre@nondot.org> remove some now-redundant forward declarations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135578 91177308-0d34-0410-b5e6-96231b3b80d8
8cc488fefb2fb04bc8d5398da29f0182f97934cf 20-Jul-2011 Chris Lattner <sabre@nondot.org> add raw_ostream and Twine to LLVM.h, eliminating a ton of llvm:: qualifications.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135577 91177308-0d34-0410-b5e6-96231b3b80d8
686775deca8b8685eb90801495880e3abdd844c2 20-Jul-2011 Chris Lattner <sabre@nondot.org> now that we have a centralized place to do so, add some using declarations for
some common llvm types: stringref and smallvector. This cleans up the codebase
quite a bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135576 91177308-0d34-0410-b5e6-96231b3b80d8
6af966266235cae3287d50f1a10072bc48759ba0 20-Jun-2011 Francois Pichet <pichet2000@gmail.com> Remove more unnecessary #include <llvm/ADT/SmallVector.h>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133418 91177308-0d34-0410-b5e6-96231b3b80d8
f85e193739c953358c865005855253af4f68a497 16-Jun-2011 John McCall <rjmccall@apple.com> Automatic Reference Counting.

Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.

Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
c69a505cfa318d571ce8a0cd038c8d958585a735 23-Apr-2011 Jay Foad <jay.foad@gmail.com> Remove unused STL header includes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130068 91177308-0d34-0410-b5e6-96231b3b80d8
10c8d9e63bcc96d55f788e7c08b72ce626c8aeec 16-Apr-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce Rewriter::IncreaseIndentation() which increase indentations for the lines between the given source range.
To determine what the indentation should be, a SourceLocation 'parentIndent' parameter is used that should be at
a source location with an indentation one degree lower than the given range.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129628 91177308-0d34-0410-b5e6-96231b3b80d8
fd183ba0b16718ff05e161bc479678e447df4999 13-Apr-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Collect the options applicable to the Rewriter methods into a RewriterOptions struct.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129430 91177308-0d34-0410-b5e6-96231b3b80d8
d762357055f3d82959604743dbff20ca337e04be 11-Apr-2011 Fariborz Jahanian <fjahanian@apple.com> Typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129301 91177308-0d34-0410-b5e6-96231b3b80d8
1d015313b27f6002b1c4a74e478ede1622141b4e 11-Apr-2011 Fariborz Jahanian <fjahanian@apple.com> Fixup more objc rwriter bug having to do with
rewriting of blocks which have objective-c
stuff which need be rewritten as well. // rdar://9254348

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129300 91177308-0d34-0410-b5e6-96231b3b80d8
b65ed34ebf0380c001756eea7a1c1d01e110b557 07-Apr-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Enhance the Rewriter.

-Allow removing a line completely if it ends up empty
-Provide more control on what should be removed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129085 91177308-0d34-0410-b5e6-96231b3b80d8
33e4e70c8c0a17e0ccb7465d96556b077a68ecb1 18-Nov-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Refactoring of Diagnostic class.

-Move the stuff of Diagnostic related to creating/querying diagnostic IDs into a new DiagnosticIDs class.
-DiagnosticIDs can be shared among multiple Diagnostics for multiple translation units.
-The rest of the state in Diagnostic object is considered related and tied to one translation unit.
-Have Diagnostic point to the SourceManager that is related with. Diagnostic can now accept just a
SourceLocation instead of a FullSourceLoc.
-Reflect the changes to various interfaces.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119730 91177308-0d34-0410-b5e6-96231b3b80d8
aa81908f7a649ade93036b5f30b91307e20cb464 31-Oct-2010 Nick Lewycky <nicholas@mxc.ca> Fix typo spotted by Nico Weber.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117870 91177308-0d34-0410-b5e6-96231b3b80d8
1450f265fcc84a7ca64dd9f3b8d4492c5bd55e23 13-Aug-2010 Nick Lewycky <nicholas@mxc.ca> Add a new cc1 option -fix-what-you-can which when combined with the fix-it mode
will apply all fixes even when there were other errors in the file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111020 91177308-0d34-0410-b5e6-96231b3b80d8
ec1b1cc006cef19e0a95d0ea6fbfd37d0d615066 15-Jul-2010 Benjamin Kramer <benny.kra@googlemail.com> Pass StringRefs by value.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108375 91177308-0d34-0410-b5e6-96231b3b80d8
0a76aae8c03cb7dd7bdbe683485560afaf695959 19-Jun-2010 Chris Lattner <sabre@nondot.org> introduce a new CharSourceRange class, and enhance the diagnostics routines
to use them instead of SourceRange. CharSourceRange is just a SourceRange
plus a bool that indicates whether the range has the end character resolved
or whether the end location is the start of the end token. While most of
the compiler wants to think of ranges that have ends that are the start of
the end token, the printf diagnostic stuff wants to highlight ranges within

This is transparent to the diagnostic stuff. To start taking advantage of
the new capabilities, you can do something like this:
Diag(..) << CharSourceRange::getCharRange(Begin,End)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106338 91177308-0d34-0410-b5e6-96231b3b80d8
9b414d3e2d0cb84512b55a3275a98490b090162a 15-Jun-2010 Daniel Dunbar <daniel@zuster.org> Break Frontend's dependency on Rewrite, Checker and CodeGen in shared library configuration

Currently, all AST consumers are located in the Frontend library,
meaning that in a shared library configuration, Frontend has a
dependency on Rewrite, Checker and CodeGen. This is suboptimal for
clients which only wish to make use of the frontend. CodeGen in
particular introduces a large number of unwanted dependencies.

This patch breaks the dependency by moving all AST consumers with
dependencies on Rewrite, Checker and/or CodeGen to their respective
libraries. The patch therefore introduces dependencies in the other
direction (i.e. from Rewrite, Checker and CodeGen to Frontend).

After applying this patch, Clang builds correctly using CMake and
shared libraries ("cmake -DBUILD_SHARED_LIBS=ON").

N.B. This patch includes file renames which are indicated in the
patch body.

Changes in this revision of the patch:
- Fixed some copy-paste mistakes in the header files
- Modified certain aspects of the coding to comply with the LLVM
Coding Standards

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106010 91177308-0d34-0410-b5e6-96231b3b80d8
ea3fe7c72b73ae09070ced4dc12ddbfbd29c0b1a 15-Jun-2010 Daniel Dunbar <daniel@zuster.org> Add <cstddef> include to get ptrdiff_t, for gcc-4.6; patch by Dimitry Andric.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105995 91177308-0d34-0410-b5e6-96231b3b80d8
0ade808e0ac411baa2dbc1f76ad352b9b6d6d3f8 16-Apr-2010 Nick Lewycky <nicholas@mxc.ca> Add a write(raw_ostream&) method to RewriteBuffer. This uses an inefficient
implementation today but is the right place if we want to make it faster some

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101521 91177308-0d34-0410-b5e6-96231b3b80d8
d4a97a18ea3cda3ba095e7c0c6708e7a39cf31db 15-Apr-2010 Nick Lewycky <nicholas@mxc.ca> Teach -fixit to modify all of its inputs instead of just the main file, unless
-fixit-at specified a particular fixit to fix, or the -o flag was used.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101359 91177308-0d34-0410-b5e6-96231b3b80d8
88906cddbb1d5b3a868eeeec6cb170befc829c2f 05-Feb-2010 Fariborz Jahanian <fjahanian@apple.com> Some clean up of replacement text API no longer needed by
my recent changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95391 91177308-0d34-0410-b5e6-96231b3b80d8
7e20ffe322866f6a2e820e054da9bd0f6e9b0af4 28-Jan-2010 Fariborz Jahanian <fjahanian@apple.com> Fixes a rewrite bug rewriting nested ivars reference.
(Radar 7583971).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94724 91177308-0d34-0410-b5e6-96231b3b80d8
3ea5cf8889f48809a94e886d013a911128664c88 20-Jan-2010 Chris Lattner <sabre@nondot.org> reduce redundant are's

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94009 91177308-0d34-0410-b5e6-96231b3b80d8
6a12a14a529a79524e17889046c7098b80a73c49 07-Jan-2010 Ted Kremenek <kremenek@apple.com> Fix typo: rename Rewriter::getRewritenText() -> Rewriter::getRewrittenText().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92922 91177308-0d34-0410-b5e6-96231b3b80d8
ff6912b5a9d5073221956fe4d6367b14f3f4b68f 05-Nov-2009 Daniel Dunbar <daniel@zuster.org> Make html::{SyntaxHighlight,HighlightMacros} take a const Preprocessor.

This is conceptually correct, but adds a huge hack to HighlightMacros which is
in fact doing all sorts of mutation to the Preprocessor. See FIXME.

Chris, please review.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86107 91177308-0d34-0410-b5e6-96231b3b80d8
90b1827c1c1cf075266b96b416eefcf37924333b 05-Nov-2009 Daniel Dunbar <daniel@zuster.org> Kill PreprocessorFactory, which was both morally repugnant and totally unused.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86076 91177308-0d34-0410-b5e6-96231b3b80d8
1eb4433ac451dc16f4133a88af2d002ac26c58ef 09-Sep-2009 Mike Stump <mrs@apple.com> Remove tabs, and whitespace cleanups.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
cf78271b0a932b94598a9dec83fb33046fd033ce 27-Aug-2009 Gabor Greif <ggreif@gmail.com> restore indentation

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80229 91177308-0d34-0410-b5e6-96231b3b80d8
f5afb5e1fa1877a4adf3328e5be31b2f959d82eb 27-Aug-2009 Gabor Greif <ggreif@gmail.com> iterator.h is no more. Be standards compliant.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80225 91177308-0d34-0410-b5e6-96231b3b80d8
f3cd67369289014929ccc8431aaea536adade001 21-Aug-2009 Daniel Dunbar <daniel@zuster.org> Fix commentos

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79610 91177308-0d34-0410-b5e6-96231b3b80d8
7cd830be364eaf98d9c9279e0d58b52dcde614c5 21-Aug-2009 Daniel Dunbar <daniel@zuster.org> Fix refacto.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79609 91177308-0d34-0410-b5e6-96231b3b80d8
44ba7bf54434be88bda7a752f857d42cc92b462d 19-Aug-2009 Daniel Dunbar <daniel@zuster.org> Remove now unnecessary helper methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79460 91177308-0d34-0410-b5e6-96231b3b80d8
d7407dc92c7d19cafce429e7e1cf9819d3fc0b92 19-Aug-2009 Daniel Dunbar <daniel@zuster.org> Convert parts of Rewriter to StringRef based API.
- Please accept my sincere apologies for the gratuitous elimination of code
duplication, manual string length counting, unnecessary strlen calls, etc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79448 91177308-0d34-0410-b5e6-96231b3b80d8
a0978c24829dfd552d38fc3bae2b86e18bb90d49 18-May-2009 Eli Friedman <eli.friedman@gmail.com> Fix for PR2386: distinguish between insertion and replacements in the
delta tree.

The issue is roughly a conflict in ReplaceText between two kinds of
uses. One, it should be possible to replace a replacement: for example, the
ObjC rewriter calls ReplaceStmt for an expression, then replaces the resulting
expression with another expression. Two, it should be possible to
replace text that already has text inserted before it: for example, the
HTML rewriter inserts a bunch of tags at the beginning of the line, then
tries to escape the first character on the line. This patch
distinguishes the two cases by storing the deltas separately;
essentially, replacements and insertions no longer interfere with
each other.

Another possibility would be to add some sort of flag to ReplaceText, but
this seems a bit more intuitive and flexible.

There are a few downsides to the current solution: one is that there isn't
any way to remove/replace an insertion without touching additional
surrounding text; if such an operation turns out to be useful, an
additional method or flag can be added. Another is that an insertion
and replacing a string of length zero are distinct operations; I'm not
sure how to resolve this, or whether it will be confusing in practice.

This is relatively sensitive code, so please test and tell me if
anything breaks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72000 91177308-0d34-0410-b5e6-96231b3b80d8
2c78b873f4f3823ae859c15674cb3d76c8554113 15-Apr-2009 Chris Lattner <sabre@nondot.org> Change Lexer::MeasureTokenLength to take a LangOptions reference.
This allows it to accurately measure tokens, so that we get:

t.cpp:8:13: error: unknown type name 'X'
static foo::X P;

instead of the woefully inferior:

t.cpp:8:13: error: unknown type name 'X'
static foo::X P;
~~~~ ^

Most of this is just plumbing to push the reference around.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69099 91177308-0d34-0410-b5e6-96231b3b80d8
9a688659ed6bb3f6a3e4d76a88c2c626616e3c90 18-Mar-2009 Ted Kremenek <kremenek@apple.com> HTML rewriter: Don't replace tabs with spaces by default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67221 91177308-0d34-0410-b5e6-96231b3b80d8
2b2453a7d8fe732561795431f39ceb2b2a832d84 17-Jan-2009 Chris Lattner <sabre@nondot.org> this massive patch introduces a simple new abstraction: it makes
"FileID" a concept that is now enforced by the compiler's type checker
instead of yet-another-random-unsigned floating around.

This is an important distinction from the "FileID" currently tracked by
SourceLocation. *That* FileID may refer to the start of a file or to a
chunk within it. The new FileID *only* refers to the file (and its
#include stack and eventually #line data), it cannot refer to a chunk.

FileID is a completely opaque datatype to all clients, only SourceManager
is allowed to poke and prod it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62407 91177308-0d34-0410-b5e6-96231b3b80d8
99bd46c018ece10d6541a4b6bf0dbe97ad162477 12-Oct-2008 Chris Lattner <sabre@nondot.org> make the -rewrite-test a bit more interesting: it now
wraps comments in <i> tags. Extend rewrite tokens to support
this minimal functionality.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57409 91177308-0d34-0410-b5e6-96231b3b80d8
cff9cc95de367a3aea885a7f8fee304fe2707b92 12-Oct-2008 Chris Lattner <sabre@nondot.org> start implementing a token rewriter. At this point, it just reads in a file
and lets a client iterate over it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57407 91177308-0d34-0410-b5e6-96231b3b80d8
7a02344d9b45db3719adabf8118887253fe944e4 04-Oct-2008 Chris Lattner <sabre@nondot.org> add a disclaimer

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57038 91177308-0d34-0410-b5e6-96231b3b80d8
b5cd09a2bf1509167a2e7a46bdd0316812a93335 04-Oct-2008 Chris Lattner <sabre@nondot.org> add a new Rewriter::getRewritenText method that returns the text for a range
that includes any edits in the range.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57037 91177308-0d34-0410-b5e6-96231b3b80d8
7b802b7d94b7bb1508ded6fefc84aca1eda0ec05 16-Aug-2008 Nico Weber <nicolasweber@gmx.de> add missing class declaration

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54841 91177308-0d34-0410-b5e6-96231b3b80d8
f6f593fae2f0531b4bc06891941f7fbba5217618 07-Jul-2008 Ted Kremenek <kremenek@apple.com> In a report-XXXXX.html, make the title include the name of the file with the bug. Patch by Jean-Daniel Dupas!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53184 91177308-0d34-0410-b5e6-96231b3b80d8
fe5042e287352d00db89508bf3c1373cc44b85db 05-Jul-2008 Seo Sanghyeon <sanxiyn@gmail.com> Fix warnings

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53141 91177308-0d34-0410-b5e6-96231b3b80d8
525204a7ca5c3c0aac8166d8f27abb988a84c850 29-May-2008 Anton Korobeynikov <asl@math.spbu.ru> Update to follow recent LLVM changes

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51689 91177308-0d34-0410-b5e6-96231b3b80d8
3d2e8c7b70d5719d00b919708fdd5a45cffda836 28-May-2008 Chris Lattner <sabre@nondot.org> Fix rewrite rope to keep the leaf list up-to-date as it erases leaves
from the rope. rdar://5952468

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51651 91177308-0d34-0410-b5e6-96231b3b80d8
2c33a164371482b43a13e500dbb4d3278605c5f4 24-May-2008 Steve Naroff <snaroff@apple.com> This fixes a VC++ build failure.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51528 91177308-0d34-0410-b5e6-96231b3b80d8
0d3ab3f121ff6c2a38acde4e93a28980b824d045 24-May-2008 Chris Lattner <sabre@nondot.org> add some assertions to catch bad things before they die
somewhere deep in rewrite rope.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51515 91177308-0d34-0410-b5e6-96231b3b80d8
c66d0aa934f2afd412f50881a5e959bb8582cf14 23-Apr-2008 Chris Lattner <sabre@nondot.org> fix a rewriter crash on zero length files.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50126 91177308-0d34-0410-b5e6-96231b3b80d8
7414dc05738bd0eb8ecb07f81d430d4b087c20ce 20-Apr-2008 Ted Kremenek <kremenek@apple.com> html::EscapeText (using the Rewriter) now replaces tabs by default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49982 91177308-0d34-0410-b5e6-96231b3b80d8
fb58609c5b3f0d665ea58e37ef39eb7ea74758a4 18-Apr-2008 Ted Kremenek <kremenek@apple.com> Provide a version of html::HighlightMacros that takes a Preprocessor&.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49896 91177308-0d34-0410-b5e6-96231b3b80d8
339b9c27759d7b6a53e2370f83f66e78b3254595 18-Apr-2008 Ted Kremenek <kremenek@apple.com> class Preprocessor: Now owns the "predefines" char*; it deletes [] it in its dstor.

clang.cpp: InitializePreprocessor now makes a copy of the contents of PredefinesBuffer and
passes it to the preprocessor object.

clang.cpp: DriverPreprocessorFactory now calls "InitializePreprocessor" instead of this being done in main().

html::HighlightMacros() now takes a PreprocessorFactory, allowing it to conjure up a new
Preprocessor to highlight macros.

class HTMLDiagnostics now takes a PreprocessorFactory* that it can use for html::HighlightMacros().
Updated clients of HTMLDiagnostics to use this new interface.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49875 91177308-0d34-0410-b5e6-96231b3b80d8
9402b57a0dca4058fe56d7fd84e97fc496421125 17-Apr-2008 Chris Lattner <sabre@nondot.org> Make HighlightRange correctly handle multi-line ranges. This causes us to
correctly handle multi-line comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49827 91177308-0d34-0410-b5e6-96231b3b80d8
5ef3e2c45f13fccdb0d7bbcf24c1beee8eee6f64 17-Apr-2008 Chris Lattner <sabre@nondot.org> add a new HighlightRange API, it doesn't handle multiline ranges
yet, but it will soon...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49825 91177308-0d34-0410-b5e6-96231b3b80d8
c54d50a4180520370c12dd7d06d035263d357d56 16-Apr-2008 Chris Lattner <sabre@nondot.org> split syntax highlighting of macros from keywords and comments,
allowing us to use a cheaper means to highlight keywords and making
it so that comments won't foul up macro expansions.

Start highlighting macro expansions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49779 91177308-0d34-0410-b5e6-96231b3b80d8
3245a0a1c7a4fd74fca845b2edba275bb126d773 16-Apr-2008 Chris Lattner <sabre@nondot.org> Add a mode of hackily syntax highlighting comments. This has a number of
problems, including the fact that it doesn't work well with multi-line
comments due to Ted's crazy table. However, that could be fixed, and it
does work with single-line ones :).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49778 91177308-0d34-0410-b5e6-96231b3b80d8
735271479ac57c27f744806859efd5b001dea248 16-Apr-2008 Chris Lattner <sabre@nondot.org> In html::EscapeText, instead of going through the rewriter with
a SourceLocation to get a RewriteBuffer, poke the RewriteBuffer
with an offset directly. THis is no faster, but results in
cleaner code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49774 91177308-0d34-0410-b5e6-96231b3b80d8
6837e38d4301d7874805ed4b24d8d14662789e10 16-Apr-2008 Chris Lattner <sabre@nondot.org> make a method public.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49770 91177308-0d34-0410-b5e6-96231b3b80d8
b9bc3eca218e2670f05b34c0b3c33a46d710bd88 16-Apr-2008 Chris Lattner <sabre@nondot.org> speed up -emit-html in a release build by 6.5% by avoiding std::string.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49764 91177308-0d34-0410-b5e6-96231b3b80d8
5618d88b93056bae76845b1503cce6ba0a6080f1 14-Apr-2008 Chris Lattner <sabre@nondot.org> Add a bunch of comments, move RewriteRope::MakeRopeString out of line.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49689 91177308-0d34-0410-b5e6-96231b3b80d8
5fd3e2673a1bd61d5f08f679555d15d23aba9314 14-Apr-2008 Chris Lattner <sabre@nondot.org> move a ton of code out of line, from RewriteRope.h -> RewriteRope.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49664 91177308-0d34-0410-b5e6-96231b3b80d8
e5cd857f7e71d5789df25d5046d104b93cf2a71c 14-Apr-2008 Chris Lattner <sabre@nondot.org> remove ifdefs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49651 91177308-0d34-0410-b5e6-96231b3b80d8
febe719596ee68605944da5f2e03258e18e6df8c 14-Apr-2008 Chris Lattner <sabre@nondot.org> Change the RewriteRope::Chunks data structure from an std::list into
a nice shiny B+ Tree variant. This fixes the last of the known algorithmic
issues with the rewriter, allowing a significant speedup. For example,
-emit-html on Ted's 500K .i file speeds up from 26.8s -> 0.64s in a
debug build (41x!) and 5.475s -> 0.132s (41x!) in an optimized build.

This code is functional but needs to be cleaned up, ifdefs removed, better
commented, and moved to a .cpp file. I plan to do this tomorrow.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49635 91177308-0d34-0410-b5e6-96231b3b80d8
9e979557eea3875c9e3d100c68188233dd7f46c0 13-Apr-2008 Chris Lattner <sabre@nondot.org> Default argument cleanups and minor improvements, patch by
Doug Gregor!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49598 91177308-0d34-0410-b5e6-96231b3b80d8
8100d749514748ab1e9f219d3a6ce2f4c6389140 13-Apr-2008 Chris Lattner <sabre@nondot.org> move the DeltaTree implementation out of line, remove debugging printfs etc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49591 91177308-0d34-0410-b5e6-96231b3b80d8
77257889f5829144767c8a1d7fc18a929a377b5c 12-Apr-2008 Chris Lattner <sabre@nondot.org> remove ifdefs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49587 91177308-0d34-0410-b5e6-96231b3b80d8
5c9dc5ac75de8d620311cdc20223998e0293d61f 12-Apr-2008 Chris Lattner <sabre@nondot.org> Do an initial hack at replacing one of the incredibly inefficient
(but simple!) datastructures in the rewriter with a more complex but
more efficient one.

This replaces the Deltas vector with a specialized BTree that makes
delta lookups much more efficient. This speeds up -emit-html on a 500K
.i file from 157.154 to 27.127 seconds on my machine (5.8x).

While this code is functional, it isn't very pretty, I have much
refactoring planned for it, and will remove the USE_VECTOR ifdef.
Stay tuned.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49586 91177308-0d34-0410-b5e6-96231b3b80d8
fa5be3617294f0e3c341f0ecb6b2076478b1b5ac 09-Apr-2008 Ted Kremenek <kremenek@apple.com> Don't expand tabs in EscapeText, but rather expand them when writing out
the HTML file. This should reduce the amount of memory pressure on the
rewriter for files that have a lot of tabs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49406 91177308-0d34-0410-b5e6-96231b3b80d8
19bf719a2b9033e00d9e5931d700b7c1c893b8d6 06-Apr-2008 Chris Lattner <sabre@nondot.org> don't dereference hte end iterator when inserting at end of buffer.
Patch by C├ędric Venet!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49259 91177308-0d34-0410-b5e6-96231b3b80d8
053ef593fa9d2b890645a914eee203231fb34458 27-Mar-2008 Ted Kremenek <kremenek@apple.com> Add html::EscapeText for std::string; use this function to escape text in message bubbles.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48884 91177308-0d34-0410-b5e6-96231b3b80d8
1ab09f52be88641b7b780d0bcc29aae889313098 19-Mar-2008 Ted Kremenek <kremenek@apple.com> Minor speed tweak per Chris's suggestion: use &S[0] instead of S.c_str().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48544 91177308-0d34-0410-b5e6-96231b3b80d8
4cefe486dcebde4945e6e02dd0a261d9188b3235 19-Mar-2008 Ted Kremenek <kremenek@apple.com> Integrated some of Chris's comments; check for an empty string in InsertStrXXX()
before descending into the bowels of the Rewriter.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48541 91177308-0d34-0410-b5e6-96231b3b80d8
ad0a203130dc5d1fb7231b88767174511424fa98 19-Mar-2008 Ted Kremenek <kremenek@apple.com> Moved generation of html header/footer with builtin CSS to the rewriter library.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48537 91177308-0d34-0410-b5e6-96231b3b80d8
329f0f5df1a4b45740312a53b8d01e32a76c91a5 19-Mar-2008 Ted Kremenek <kremenek@apple.com> Added InsertStrXXX/InsertCStrXXX methods to the Rewriter to provide a simpler
interface to the rewriter when clients have NULL terminated strings or std::string.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48532 91177308-0d34-0410-b5e6-96231b3b80d8
f830997de6ca8aa9526a9f4bb44593c19040ca85 19-Mar-2008 Ted Kremenek <kremenek@apple.com> More cleanups to HTML rewriter API: remove the InsertTag method; was too complicated
and clients can achieve a cleaner design just by inserting tags directly. Reserve
the "html" namespace for meta-level operations (e.g., escaping text, etc.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48524 91177308-0d34-0410-b5e6-96231b3b80d8
1b3188cfc2bfaeb14d40c43c1df62097b79016d1 19-Mar-2008 Ted Kremenek <kremenek@apple.com> More HTML rewriter cleanups. Preliminary CSS support in code pretty-printing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48518 91177308-0d34-0410-b5e6-96231b3b80d8
b485cd1e0a5a1e942d0e682b9b1c4bc9df111528 19-Mar-2008 Ted Kremenek <kremenek@apple.com> Some cleanups to the HTMLRewrite API. Added support for printing out line
numbers (more work to be done on aesthetics).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48512 91177308-0d34-0410-b5e6-96231b3b80d8
c22efea6f999e98733f3431db03b10ce619faa8b 18-Mar-2008 Ted Kremenek <kremenek@apple.com> Modified "InsertTag" (HTML rewriter) to have an optional "OutermostTag" flag to
indicate whether or not the new tag should be the outermost tag at the specified
location (in the case that other tags have been inserted at the same spot).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48506 91177308-0d34-0410-b5e6-96231b3b80d8
6a34083e9f74a45e2f79c9fab66f177809a5db66 18-Mar-2008 Ted Kremenek <kremenek@apple.com> Added the beginning of a set of rewriter functions for pretty-printing source
code as HTML. Added a new driver option "--emit-html" to dump the source
of the main input file as HTML.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48505 91177308-0d34-0410-b5e6-96231b3b80d8
886c8db545170850f7806f47b5f6120864effd09 18-Mar-2008 Ted Kremenek <kremenek@apple.com> Added variant of "InsertText" in the Rewriter to support inserting text both
*before* and after a specific location.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48504 91177308-0d34-0410-b5e6-96231b3b80d8
4c535ace52492cf2b5fdf97752e76ed2991f3ef4 18-Mar-2008 Ted Kremenek <kremenek@apple.com> Added method "getSourceMgr" to class Rewriter.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48496 91177308-0d34-0410-b5e6-96231b3b80d8
87cf5ac1b046a1db874b77dcb6e35f9c4b88c386 10-Mar-2008 Chris Lattner <sabre@nondot.org> Add some missing #includes for GCC mainline, patch by Shantonu Sen!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48153 91177308-0d34-0410-b5e6-96231b3b80d8
aadaf78d65daef3ac1b45e4ad6136ce859962fe2 31-Jan-2008 Chris Lattner <sabre@nondot.org> add some helper methods for removing and replacing text, this makes the
rewriter more robust.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46622 91177308-0d34-0410-b5e6-96231b3b80d8
dcbc5b0b0722282a0fdd829359fe0d7e22adb882 31-Jan-2008 Chris Lattner <sabre@nondot.org> Make rewriter::inserttext return a bool to indicate if it failed.

Add a RewriteTest::ReplaceStmt method to factor the 'checking for
rewrite failed + emitting diagnostic if so' code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46619 91177308-0d34-0410-b5e6-96231b3b80d8
0bc735ffcfb223c0186419547abaa5c84482663e 29-Dec-2007 Chris Lattner <sabre@nondot.org> Don't attribute in file headers anymore. See llvmdev for the
discussion of this change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45410 91177308-0d34-0410-b5e6-96231b3b80d8
fab21b6d735a8f96e7dda595fecf72946d745871 08-Nov-2007 Chris Lattner <sabre@nondot.org> add a getAtOffset() member to simplify some code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43905 91177308-0d34-0410-b5e6-96231b3b80d8
474b29ee01a827075878ab1a101128d7969f2eba 08-Nov-2007 Chris Lattner <sabre@nondot.org> add a fixme.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43902 91177308-0d34-0410-b5e6-96231b3b80d8
3585fcac5160d1498098e2abc364e00af86cd737 08-Nov-2007 Chris Lattner <sabre@nondot.org> significantly simplify the implementation of RewriteRope by changing the
implementation to be list<RopePiece> instead of vector<RopePiece*>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43901 91177308-0d34-0410-b5e6-96231b3b80d8
6969fd4292adfa44024f3bdac7c45bcfee75754f 08-Nov-2007 Chris Lattner <sabre@nondot.org> improve MakeRopeString to avoid doing a malloc for every 2-character string
that gets inserted. This speeds up the rewriter another 10%.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43896 91177308-0d34-0410-b5e6-96231b3b80d8
ca305a0bbbf6a33a010c7e89f0c7a5a23a1bcf43 08-Nov-2007 Chris Lattner <sabre@nondot.org> Simplify interface to MakeRopeString.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43895 91177308-0d34-0410-b5e6-96231b3b80d8
8b0c2f659d350118cceee33c211a3dd5e3138ac2 08-Nov-2007 Chris Lattner <sabre@nondot.org> 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
cdd808e2af9f92ef406065c4855ac72d121dbcda 08-Nov-2007 Chris Lattner <sabre@nondot.org> abstract out buffer type a bit better

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43883 91177308-0d34-0410-b5e6-96231b3b80d8
01c5748c29e75b29cab5fc7d8ad1b173b29c7ecf 18-Oct-2007 Chris Lattner <sabre@nondot.org> Add new API to rewrite one stmt/expr with another.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43101 91177308-0d34-0410-b5e6-96231b3b80d8
311ff02fae0392bee6abe7723cdf5a69b2899a47 17-Oct-2007 Chris Lattner <sabre@nondot.org> Add a new Rewriter::getRangeSize method.
Rename SourceRange::Begin()/End() to getBegin()/getEnd() for
consistency with other code.
Start building the rewriter towards handling @encode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43047 91177308-0d34-0410-b5e6-96231b3b80d8
2c64b7b9381be4ff62fbdc404ed3f14c8086898d 16-Oct-2007 Chris Lattner <sabre@nondot.org> Push the rewriter forward a bit more. Now it rewrites
#import to #include's as a test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43041 91177308-0d34-0410-b5e6-96231b3b80d8
7c239606f3a7a685653a0a7e64459c3f43522666 13-Oct-2007 Chris Lattner <sabre@nondot.org> another step forward in rewriter stuff. This still has
some incredibly subtle details that I'm working on getting

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42940 91177308-0d34-0410-b5e6-96231b3b80d8
cde8bc49a19bdb18643085e87bf1135d0a6672c0 12-Oct-2007 Chris Lattner <sabre@nondot.org> add comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42887 91177308-0d34-0410-b5e6-96231b3b80d8
8a12c2777cccdf629b89745b6ecc89a8c1641e4e 11-Oct-2007 Chris Lattner <sabre@nondot.org> Push the rewriting APIs along. Build a trivial client that replaces tabs
with x's for now. The APIs are all unimplemented, so it doesn't do
anything yet! :)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42868 91177308-0d34-0410-b5e6-96231b3b80d8
8bd12b848bc353a9d34b54144c3dd3407b064292 16-Sep-2007 Chris Lattner <sabre@nondot.org> Initial checkin of rewriter interface. It is just stubbed out for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41990 91177308-0d34-0410-b5e6-96231b3b80d8