Steve Naroff
265a6b9693
Rewrite RewriteObjCStringLiteral(). This version is simpler (and unlike the previous one, works:-)
...
llvm-svn: 43890
2007-11-08 14:30:50 +00:00
Chris Lattner
e90ce8def3
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.
llvm-svn: 43884
2007-11-08 07:35:14 +00:00
Chris Lattner
7a7da75916
abstract out buffer type a bit better
...
llvm-svn: 43883
2007-11-08 05:42:25 +00:00
Chris Lattner
dc0cfc9fe3
use insert instead of replacing 0 bytes with text :)
...
llvm-svn: 43882
2007-11-08 04:41:51 +00:00
Chris Lattner
edebdb5b29
minor cleanups
...
llvm-svn: 43881
2007-11-08 04:41:04 +00:00
Chris Lattner
9fd5890e52
use std::copy instead of memcpy for abstraction.
...
Disable rewrite-tabs. This speeds up processing of the commentified huge
crazy testcase steve gave me from 20s to 6.6s in a release build.
llvm-svn: 43880
2007-11-08 04:27:23 +00:00
Chris Lattner
4573cc708a
Fix a rewriter bug that fariborz hit, when an @interface was the very very very
...
first thing in the file.
The trick is that text replacement should go after the insert point,
not before it, because it will be replacing text after the point, not before
it.
llvm-svn: 43879
2007-11-08 04:09:59 +00:00
Ted Kremenek
a34b057762
Revised serialization of CaseStmt to emit all of the owned pointers (its
...
subexpressions) all together in one block at the end.
llvm-svn: 43862
2007-11-08 00:56:26 +00:00
Ted Kremenek
c1cddef7c9
Implemented serialization of CompoundAssignOperator.
...
llvm-svn: 43860
2007-11-08 00:41:37 +00:00
Devang Patel
ec51171319
Add assert for the case that is not handled.
...
struct { char a; short b:2; };
llvm-svn: 43859
2007-11-08 00:32:12 +00:00
Ted Kremenek
2419ac8792
Implemented serialization of UnaryOperator.
...
llvm-svn: 43858
2007-11-08 00:26:24 +00:00
Devang Patel
7c7a07d949
Keep track of beginning offset for the bit field that does not start at byte boundry.
...
llvm-svn: 43857
2007-11-08 00:17:59 +00:00
Ted Kremenek
766fc8c14a
Implemented serialization of CallExpr.
...
llvm-svn: 43854
2007-11-07 23:32:20 +00:00
Ted Kremenek
2c325386b8
Implemented serialization of ArraySubscriptExpr.
...
Added "using ..." for "Serializer" and "Deserializer" to reduce amount
of typing for serialization methods.
llvm-svn: 43849
2007-11-07 22:53:01 +00:00
Ted Kremenek
e87ceeeb4a
Implemented serialization of CastExpr.
...
llvm-svn: 43848
2007-11-07 22:42:34 +00:00
Ted Kremenek
b2b5e73f89
Implemented serialization of ImplicitCastExpr.
...
llvm-svn: 43847
2007-11-07 22:39:17 +00:00
Ted Kremenek
9d2bf704de
Modified serialization of BinaryOperator and CaseStmt to use the new
...
BatchEmitOwnedPtrs() and BatchReadOwnedPtrs() methods.
Modified serialization of all Stmts to start their own record in the bitstream.
llvm-svn: 43846
2007-11-07 22:32:23 +00:00
Devang Patel
ef2d838fef
Stay within 80 columns.
...
llvm-svn: 43843
2007-11-07 21:04:59 +00:00
Hartmut Kaiser
abcbb0493a
Updated VC++ build system
...
llvm-svn: 43838
2007-11-07 19:34:40 +00:00
Ted Kremenek
d68db575f3
Implemented serialization of StringLiteral.
...
llvm-svn: 43834
2007-11-07 19:08:19 +00:00
Ted Kremenek
f9062be688
Implemented serialization of ImaginaryLiteral.
...
llvm-svn: 43833
2007-11-07 18:53:02 +00:00
Ted Kremenek
569725f827
Implemented serialization of FloatingLiteral.
...
llvm-svn: 43832
2007-11-07 18:45:55 +00:00
Steve Naroff
1601858de5
Finishing touches on code generation for @try and friends.
...
- declare functions we use.
- cast arguments to objc_exception_match().
- don't take the & of _stack.buf.
llvm-svn: 43831
2007-11-07 18:43:40 +00:00
Fariborz Jahanian
1299a92327
Emit objective-c's meta-data at the end of rewriting to stdout.
...
llvm-svn: 43830
2007-11-07 18:40:28 +00:00
Steve Naroff
b7a032eb20
Remove old asserts from ASTContext::isObjcIdType() and isObjcClassType(). Instead, return false if the declarations aren't in scope. This was a hold over from when 'id' and 'Class' were initialized lazily.
...
llvm-svn: 43827
2007-11-07 18:07:59 +00:00
Fariborz Jahanian
8a348705a8
Fixed an array overflow bug.
...
llvm-svn: 43826
2007-11-07 17:43:16 +00:00
Fariborz Jahanian
e044087b56
Fixed typo.
...
llvm-svn: 43825
2007-11-07 17:29:15 +00:00
Ted Kremenek
c874c6a959
Implemented serialization of CharacterLiteral.
...
llvm-svn: 43824
2007-11-07 17:15:49 +00:00
Ted Kremenek
3c58662411
Implemented serialiation of PreDefinedExpr.
...
llvm-svn: 43823
2007-11-07 17:11:58 +00:00
Ted Kremenek
d47c8125a1
Implemented serialization of ContinueStmt.
...
llvm-svn: 43822
2007-11-07 17:05:07 +00:00
Ted Kremenek
3b4c08deae
Implemented serialization of IndirectGotoStmt.
...
Added "FIXME" regarding the lack of source location information for IndirectGotoStmt.
llvm-svn: 43821
2007-11-07 17:02:32 +00:00
Steve Naroff
a733c7ffe4
Implement rewrite for @throw.
...
llvm-svn: 43820
2007-11-07 15:32:26 +00:00
Ted Kremenek
5fd3040c57
Implemented serialization of GotoStmt.
...
llvm-svn: 43818
2007-11-07 08:07:46 +00:00
Ted Kremenek
35e20410aa
Implemented serialization for ForStmt.
...
llvm-svn: 43817
2007-11-07 08:02:55 +00:00
Ted Kremenek
83e96b8d5a
Implemented serialization of DoStmt.
...
llvm-svn: 43816
2007-11-07 07:53:55 +00:00
Ted Kremenek
f6d8ce1052
Implemented serialization for WhileStmt.
...
llvm-svn: 43815
2007-11-07 07:50:10 +00:00
Ted Kremenek
154c790538
Implemented serialization of IfStmt.
...
Fixed declarations of several "directEmit" methods of classes that subclass
Stmt that were missing a "virtual" keyword.
llvm-svn: 43814
2007-11-07 07:19:30 +00:00
Steve Naroff
4d7b367652
Teach ASTContext::tagTypesAreCompatible() about the built-in ObjC types (Class and id), removing a bogus warning.
...
llvm-svn: 43809
2007-11-07 06:03:51 +00:00
Ted Kremenek
acb9bcf22a
Implemented serialization of SwitchStmt, CaseStmt, BreakStmt, DefaultStmt,
...
and ParenExpr.
llvm-svn: 43806
2007-11-07 05:25:31 +00:00
Steve Naroff
bf478ece48
Rewrite ObjC @try/@catch/@finally. Some minor tweaks to the AST nodes...
...
Still need to rewrite @throw (and do more testing)...
llvm-svn: 43803
2007-11-07 04:08:17 +00:00
Fariborz Jahanian
adfbbc3330
AST for objective-c's @throw statement and its pretty-printing.
...
llvm-svn: 43802
2007-11-07 02:00:49 +00:00
Devang Patel
b1ecfc6e25
Start struct bit field laout work.
...
This is far from complete.
llvm-svn: 43801
2007-11-07 01:57:13 +00:00
Ted Kremenek
a8cdf31aa0
Implemented serialization of LabelStmts.
...
llvm-svn: 43800
2007-11-07 00:48:04 +00:00
Fariborz Jahanian
defbf9a86c
Fixed a pretty-printer bug whereby a @try statement with no @finally seg faulted.
...
llvm-svn: 43798
2007-11-07 00:46:42 +00:00
Ted Kremenek
ad1bc400d7
Added serialization/deserialization of NullStmts.
...
llvm-svn: 43797
2007-11-07 00:40:53 +00:00
Ted Kremenek
80fe8904e1
Added serialization/deserialization of DeclStmts.
...
Reordered stmt serialization method implementations to be in alphabetical order.
llvm-svn: 43796
2007-11-07 00:37:40 +00:00
Ted Kremenek
148aa5edbc
Overhauled serialization of statements. We no longer use specialized SerializeTrait<> classes,
...
but methods in Stmt (like other objects we are serializing). Full serialization of all statements
is not yet complete.
llvm-svn: 43793
2007-11-07 00:17:35 +00:00
Ted Kremenek
abcfe90802
Added static inline method "ReadVal" to QualType for more succinct
...
deserialization code of objects containing QualTypes.
llvm-svn: 43792
2007-11-07 00:13:45 +00:00
Fariborz Jahanian
e8a3016ac7
Rewrite for properties.
...
llvm-svn: 43791
2007-11-07 00:09:37 +00:00
Ted Kremenek
fa2bf434cc
Fixed typo in the name of "ReadPreamble".
...
llvm-svn: 43790
2007-11-06 23:52:19 +00:00