[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:
Nathan James 2020-10-27 00:03:42 +00:00
parent a5c7b46862
commit b698ad00cb
No known key found for this signature in database
GPG Key ID: CC007AFCDA90AA5F
2 changed files with 20 additions and 20 deletions

View File

@ -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;

View File

@ -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: