llvm-project/clang/lib/AST
Bruno Ricci b94ad1e1d3 [AST] Store the string data in StringLiteral in a trailing array of chars
Use the newly available space in the bit-fields of Stmt and store the
string data in a trailing array of chars after the trailing array
of SourceLocation. This cuts the size of StringLiteral by 2 pointers.

Also refactor slightly StringLiteral::Create and StringLiteral::CreateEmpty
so that StringLiteral::Create is just responsible for the allocation, and the
constructor is responsible for doing all the initialization. This match what
is done for the other classes in general.

This patch should have no other functional changes apart from this.

A concern was raised during review about the interaction between
this patch and serialization abbreviations. I believe however that
there is currently no abbreviation defined for StringLiteral.
The only statements/expressions which have abbreviations are currently
DeclRefExpr, IntegerLiteral, CharacterLiteral and ImplicitCastExpr.

Differential Revision: https://reviews.llvm.org/D54166

Reviewed By: dblaikie, rjmccall

llvm-svn: 346969
2018-11-15 17:31:16 +00:00
..
APValue.cpp Fix crash on call to __builtin_memcpy with a null pointer to an 2018-09-13 22:47:33 +00:00
ASTConsumer.cpp
ASTContext.cpp [AST] Allow limiting the scope of common AST traversals (getParents, RAV). 2018-11-14 10:33:30 +00:00
ASTDiagnostic.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
ASTDumper.cpp [AST] Only store the needed data in WhileStmt 2018-10-30 13:42:41 +00:00
ASTImporter.cpp Compound literals, enums, et al require const expr 2018-11-09 00:41:36 +00:00
ASTStructuralEquivalence.cpp Revert "[ASTImporter][Structural Eq] Check for isBeingDefined" 2018-10-31 21:53:15 +00:00
ASTTypeTraits.cpp Teach clang-query to dump types. I couldn't find any existing tests for clang-query's dumping functionality. =( 2016-11-02 23:57:18 +00:00
AttrImpl.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
CMakeLists.txt Reapply Logging: make os_log buffer size an integer constant expression. 2018-11-02 13:14:11 +00:00
CXXABI.h Fix __has_unique_object_representations implementation 2017-11-30 16:37:02 +00:00
CXXInheritance.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
Comment.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
CommentBriefParser.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
CommentCommandTraits.cpp
CommentLexer.cpp Add a newline to SourceLocation dump output 2018-08-15 20:32:06 +00:00
CommentParser.cpp Remove spurious assertion in -Wdocumentation 2018-10-02 22:23:27 +00:00
CommentSema.cpp Port getLocEnd -> getEndLoc 2018-08-09 21:09:38 +00:00
ComparisonCategories.cpp [C++2a] Implement operator<=>: Address bugs and post-commit review comments after r331677. 2018-05-08 00:52:19 +00:00
DataCollection.cpp [analyzer] Make StmtDataCollector customizable 2017-08-23 16:28:26 +00:00
Decl.cpp Pass the function type instead of the return type to FunctionDecl::Create 2018-11-11 00:56:15 +00:00
DeclBase.cpp Change getRedeclContext() to support enumerations as another kind of transparent context in C. 2018-10-23 19:44:51 +00:00
DeclCXX.cpp [cxx2a] P0624R2: Lambdas with no capture-default are 2018-09-27 22:47:04 +00:00
DeclFriend.cpp [AST] Fix some Clang-tidy modernize-use-auto warnings; other minor fixes (NFC). 2018-04-03 00:11:50 +00:00
DeclGroup.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-10 00:59:22 +00:00
DeclObjC.cpp [Sema][ObjC] Infer availability of +new from availability of -init. 2018-09-10 22:20:09 +00:00
DeclOpenMP.cpp [OPENMP] Add support for OMP5 requires directive + unified_address clause 2018-09-26 04:28:39 +00:00
DeclPrinter.cpp Add support for 'atomic_default_mem_order' clause on 'requires' directive. Also renamed test files relating to 'requires'. Differntial review: https://reviews.llvm.org/D53513 2018-11-02 12:18:11 +00:00
DeclTemplate.cpp [Sema] Fix a multiple definition bug with friends and templates 2018-10-10 17:17:51 +00:00
DeclarationName.cpp [AST] Various optimizations + refactoring in DeclarationName(Table) 2018-09-21 12:53:22 +00:00
Expr.cpp [AST] Store the string data in StringLiteral in a trailing array of chars 2018-11-15 17:31:16 +00:00
ExprCXX.cpp Create ConstantExpr class 2018-10-31 03:48:47 +00:00
ExprClassification.cpp Create ConstantExpr class 2018-10-31 03:48:47 +00:00
ExprConstant.cpp PR39628 Treat all non-zero values as 'true' in bool compound-assignment 2018-11-12 20:11:57 +00:00
ExprObjC.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-30 22:33:48 +00:00
ExternalASTMerger.cpp [ASTImporter] Added error handling for AST import. 2018-10-19 13:32:20 +00:00
ExternalASTSource.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
FormatString.cpp OpenCL: Don't warn on v printf modifier 2018-11-13 22:30:35 +00:00
FormatStringParsing.h Reapply Logging: make os_log buffer size an integer constant expression. 2018-11-02 13:14:11 +00:00
InheritViz.cpp
ItaniumCXXABI.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
ItaniumMangle.cpp [OpenCL] Add support of cl_intel_device_side_avc_motion_estimation extension 2018-11-08 11:25:41 +00:00
Linkage.h [AST] Squeeze some bits in LinkageComputer::QueryType 2018-09-25 13:43:25 +00:00
Mangle.cpp NFC: Remove MANGLE_CHECKER from ItaniumMangle.cpp 2018-10-23 19:55:38 +00:00
MicrosoftCXXABI.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
MicrosoftMangle.cpp [AST] Fix typo in MicrosoftMangle 2018-11-14 19:16:22 +00:00
NSAPI.cpp [OpenCL] Add support of cl_intel_device_side_avc_motion_estimation extension 2018-11-08 11:25:41 +00:00
NestedNameSpecifier.cpp [NestedNameSpecifier] Add missing stream-specific dump methods 2018-10-04 19:22:00 +00:00
ODRHash.cpp [ODRHash] Fix early exit that skipped code. 2018-09-14 01:15:28 +00:00
OSLog.cpp os_log: Allow specifying mask type in format string. 2018-11-06 07:05:14 +00:00
OpenMPClause.cpp Add support for 'atomic_default_mem_order' clause on 'requires' directive. Also renamed test files relating to 'requires'. Differntial review: https://reviews.llvm.org/D53513 2018-11-02 12:18:11 +00:00
ParentMap.cpp Create ConstantExpr class 2018-10-31 03:48:47 +00:00
PrintfFormatString.cpp OpenCL: Don't warn on v printf modifier 2018-11-13 22:30:35 +00:00
QualTypeNames.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
RawCommentList.cpp Port getLocEnd -> getEndLoc 2018-08-09 21:09:38 +00:00
RecordLayout.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
RecordLayoutBuilder.cpp [AST] Do not align virtual bases in `MicrosoftRecordLayoutBuilder` when 2018-10-23 08:23:22 +00:00
ScanfFormatString.cpp Reapply Logging: make os_log buffer size an integer constant expression. 2018-11-02 13:14:11 +00:00
SelectorLocationsKind.cpp Port getLocStart -> getBeginLoc 2018-08-09 21:08:08 +00:00
Stmt.cpp Create ConstantExpr class 2018-10-31 03:48:47 +00:00
StmtCXX.cpp [cxx2a] P0614R1: Support init-statements in range-based for loops. 2018-09-28 18:44:09 +00:00
StmtIterator.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-21 23:26:08 +00:00
StmtObjC.cpp Port getLocEnd -> getEndLoc 2018-08-09 21:09:38 +00:00
StmtOpenMP.cpp [OpenMP][NVPTX] Use single loops when generating code for distribute parallel for 2018-10-29 15:45:47 +00:00
StmtPrinter.cpp Create ConstantExpr class 2018-10-31 03:48:47 +00:00
StmtProfile.cpp Add support for 'atomic_default_mem_order' clause on 'requires' directive. Also renamed test files relating to 'requires'. Differntial review: https://reviews.llvm.org/D53513 2018-11-02 12:18:11 +00:00
StmtViz.cpp
TemplateBase.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
TemplateName.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
Type.cpp [OpenCL] Add support of cl_intel_device_side_avc_motion_estimation extension 2018-11-08 11:25:41 +00:00
TypeLoc.cpp [OpenCL] Add support of cl_intel_device_side_avc_motion_estimation extension 2018-11-08 11:25:41 +00:00
TypePrinter.cpp [Sema/Attribute] Make types declared with address_space an AttributedType 2018-08-27 17:57:29 +00:00
VTTBuilder.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
VTableBuilder.cpp Use llvm::{all,any,none}_of instead std::{all,any,none}_of. NFC 2018-10-20 17:53:42 +00:00