forked from OSchip/llvm-project
[clang][NFC] Rearrange Comment Token and Lexer fields to reduce padding
Rearrange the fields to reduce the size of the classes Reviewed By: gribozavr2 Differential Revision: https://reviews.llvm.org/D90127
This commit is contained in:
parent
a5c7b46862
commit
b698ad00cb
|
@ -62,13 +62,6 @@ class Token {
|
|||
/// The actual kind of the token.
|
||||
tok::TokenKind Kind;
|
||||
|
||||
/// Length of the token spelling in comment. Can be 0 for synthenized
|
||||
/// tokens.
|
||||
unsigned Length;
|
||||
|
||||
/// Contains text value associated with a token.
|
||||
const char *TextPtr;
|
||||
|
||||
/// Integer value associated with a token.
|
||||
///
|
||||
/// If the token is a known command, contains command ID and TextPtr is
|
||||
|
@ -76,6 +69,13 @@ class Token {
|
|||
/// contains the length of the string that starts at TextPtr.
|
||||
unsigned IntVal;
|
||||
|
||||
/// Length of the token spelling in comment. Can be 0 for synthenized
|
||||
/// tokens.
|
||||
unsigned Length;
|
||||
|
||||
/// Contains text value associated with a token.
|
||||
const char *TextPtr;
|
||||
|
||||
public:
|
||||
SourceLocation getLocation() const LLVM_READONLY { return Loc; }
|
||||
void setLocation(SourceLocation SL) { Loc = SL; }
|
||||
|
@ -232,7 +232,6 @@ private:
|
|||
|
||||
const char *const BufferStart;
|
||||
const char *const BufferEnd;
|
||||
SourceLocation FileLoc;
|
||||
|
||||
const char *BufferPtr;
|
||||
|
||||
|
@ -240,7 +239,14 @@ private:
|
|||
/// to newline or BufferEnd, for C comments points to star in '*/'.
|
||||
const char *CommentEnd;
|
||||
|
||||
enum LexerCommentState {
|
||||
SourceLocation FileLoc;
|
||||
|
||||
/// If true, the commands, html tags, etc will be parsed and reported as
|
||||
/// separate tokens inside the comment body. If false, the comment text will
|
||||
/// be parsed into text and newline tokens.
|
||||
bool ParseCommands;
|
||||
|
||||
enum LexerCommentState : uint8_t {
|
||||
LCS_BeforeComment,
|
||||
LCS_InsideBCPLComment,
|
||||
LCS_InsideCComment,
|
||||
|
@ -250,7 +256,7 @@ private:
|
|||
/// Low-level lexer state, track if we are inside or outside of comment.
|
||||
LexerCommentState CommentState;
|
||||
|
||||
enum LexerState {
|
||||
enum LexerState : uint8_t {
|
||||
/// Lexing normal comment text
|
||||
LS_Normal,
|
||||
|
||||
|
@ -280,11 +286,6 @@ private:
|
|||
/// command, including command marker.
|
||||
SmallString<16> VerbatimBlockEndCommandName;
|
||||
|
||||
/// If true, the commands, html tags, etc will be parsed and reported as
|
||||
/// separate tokens inside the comment body. If false, the comment text will
|
||||
/// be parsed into text and newline tokens.
|
||||
bool ParseCommands;
|
||||
|
||||
/// Given a character reference name (e.g., "lt"), return the character that
|
||||
/// it stands for (e.g., "<").
|
||||
StringRef resolveHTMLNamedCharacterReference(StringRef Name) const;
|
||||
|
|
|
@ -740,12 +740,11 @@ void Lexer::lexHTMLEndTag(Token &T) {
|
|||
|
||||
Lexer::Lexer(llvm::BumpPtrAllocator &Allocator, DiagnosticsEngine &Diags,
|
||||
const CommandTraits &Traits, SourceLocation FileLoc,
|
||||
const char *BufferStart, const char *BufferEnd,
|
||||
bool ParseCommands)
|
||||
const char *BufferStart, const char *BufferEnd, bool ParseCommands)
|
||||
: Allocator(Allocator), Diags(Diags), Traits(Traits),
|
||||
BufferStart(BufferStart), BufferEnd(BufferEnd), FileLoc(FileLoc),
|
||||
BufferPtr(BufferStart), CommentState(LCS_BeforeComment), State(LS_Normal),
|
||||
ParseCommands(ParseCommands) {}
|
||||
BufferStart(BufferStart), BufferEnd(BufferEnd), BufferPtr(BufferStart),
|
||||
FileLoc(FileLoc), ParseCommands(ParseCommands),
|
||||
CommentState(LCS_BeforeComment), State(LS_Normal) {}
|
||||
|
||||
void Lexer::lex(Token &T) {
|
||||
again:
|
||||
|
|
Loading…
Reference in New Issue