[AST] Only store the needed data in SwitchStmt
authorBruno Ricci <riccibrun@gmail.com>
Mon, 29 Oct 2018 16:12:37 +0000 (16:12 +0000)
committerBruno Ricci <riccibrun@gmail.com>
Mon, 29 Oct 2018 16:12:37 +0000 (16:12 +0000)
commite2806f857b772d2f15b39e95685a1c99bdb8aaa7
treea5a238a0c54b7ebf90eb52a514b0780a270f6000
parente92567601b4b457d7f68a31ee21d2c2769c8de3b
[AST] Only store the needed data in SwitchStmt

Don't store the data for the init statement and condition variable
if not needed. This cuts the size of SwitchStmt by up to 2 pointers.
The order of the children is intentionally kept the same.

Also use the newly available space in the bit-fields of Stmt
to store the bit representing whether all enums have been covered
instead of using a PointerIntPair.

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

Reviewed By: rjmccall

llvm-svn: 345510
clang/include/clang/AST/Stmt.h
clang/lib/AST/ASTDumper.cpp
clang/lib/AST/ASTImporter.cpp
clang/lib/AST/Stmt.cpp
clang/lib/Sema/SemaStmt.cpp
clang/lib/Serialization/ASTReaderStmt.cpp
clang/lib/Serialization/ASTWriterStmt.cpp
clang/test/Import/switch-stmt/test.cpp
clang/test/Misc/ast-dump-color.cpp