llvm-project/clang/lib/Frontend
Wei Mi 9b3d627280 [Bitfield] Add an option to access bitfield in a fine-grained manner.
Currently all the consecutive bitfields are wrapped as a large integer unless there is unamed zero sized bitfield in between. The patch provides an alternative manner which makes the bitfield to be accessed as separate memory location if it has legal integer width and is naturally aligned. Such separate bitfield may split the original consecutive bitfields into subgroups of consecutive bitfields, and each subgroup will be wrapped as an integer. Now This is all controlled by an option -ffine-grained-bitfield-accesses. The alternative of bitfield access manner can improve the access efficiency of those bitfields with legal width and being aligned, but may reduce the chance of load/store combining of other bitfields, so it depends on how the bitfields are defined and actually accessed to choose when to use the option. For now the option is off by default.

Differential revision: https://reviews.llvm.org/D36562

llvm-svn: 315915
2017-10-16 16:50:27 +00:00
..
Rewrite [CMake] Move CLANG_ENABLE_(ARCMT|OBJC_REWRITER|STATIC_ANALYZER) into clang/Config/config.h. 2017-07-18 08:55:03 +00:00
ASTConsumers.cpp Handle -ast-dump-all when passed as the only option. 2017-06-15 00:00:08 +00:00
ASTMerge.cpp Teach ASTReader how to read only the Preprocessor state from an AST file, not the ASTContext state. 2017-06-29 23:23:46 +00:00
ASTUnit.cpp Set PreprocessorOpts.GeneratePreamble=true in PrecompiledPreamble. 2017-10-09 16:52:12 +00:00
CMakeLists.txt Moved code hanlding precompiled preamble out of the ASTUnit. 2017-06-21 10:24:58 +00:00
CacheTokens.cpp Fix the build with MSVC 2013 after r283856 2016-10-11 17:24:09 +00:00
ChainedDiagnosticConsumer.cpp
ChainedIncludesSource.cpp Teach ASTReader how to read only the Preprocessor state from an AST file, not the ASTContext state. 2017-06-29 23:23:46 +00:00
CodeGenOptions.cpp revert SVN r265702, r265640 2016-04-08 16:52:00 +00:00
CompilerInstance.cpp Driver: hoist the `wchar_t` handling to the driver 2017-10-06 23:09:55 +00:00
CompilerInvocation.cpp [Bitfield] Add an option to access bitfield in a fine-grained manner. 2017-10-16 16:50:27 +00:00
CreateInvocationFromCommandLine.cpp Use vfs::FileSystem in ASTUnit when creating CompilerInvocation. 2017-06-28 15:06:34 +00:00
DependencyFile.cpp Track the set of module maps read while building a .pcm file and reload those when preprocessing from that .pcm file. 2017-06-29 02:19:42 +00:00
DependencyGraph.cpp Revert r240270 ("Fixed/added namespace ending comments using clang-tidy"). 2015-06-22 23:07:51 +00:00
DiagnosticRenderer.cpp Revert "Revert "[NFC] Refactor DiagnosticRenderer to use FullSourceLoc"" 2017-06-27 09:50:38 +00:00
FrontendAction.cpp Use the VFS from the CompilerInvocation by default 2017-09-12 16:54:53 +00:00
FrontendActions.cpp [PCH] Fixed preamble breaking with BOM presence (and particularly, fluctuating BOM presence) 2017-09-20 19:03:37 +00:00
FrontendOptions.cpp Move functionality for handling module maps as inputs from the -emit-module 2017-04-28 01:49:42 +00:00
HeaderIncludeGen.cpp [Frontend] StringRefize and fix bad indentation. 2016-05-27 12:52:19 +00:00
InitHeaderSearch.cpp Revert "Add /System/Library/PrivateFrameworks as a header search path." 2017-10-02 18:22:19 +00:00
InitPreprocessor.cpp This adds the _Float16 preprocessor macro definitions. 2017-09-13 15:23:19 +00:00
LangStandards.cpp Don't accept -std= values that would switch us to a different source language. 2017-04-26 23:44:33 +00:00
LayoutOverrideSource.cpp Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 19:38:18 +00:00
LogDiagnosticPrinter.cpp Replace double negation of !FileID.isInvalid() with FileID.isValid(). 2015-10-03 10:46:20 +00:00
ModuleDependencyCollector.cpp fix trivial typos; NFC 2017-07-01 08:46:43 +00:00
MultiplexConsumer.cpp Support for destroying operator delete, per C++2a proposal P0722. 2017-10-13 01:55:36 +00:00
PCHContainerOperations.cpp Bitcode: Decouple block info block state from reader. 2016-11-08 04:17:11 +00:00
PrecompiledPreamble.cpp Set PreprocessorOpts.GeneratePreamble=true in PrecompiledPreamble. 2017-10-09 16:52:12 +00:00
PrintPreprocessedOutput.cpp [Preprocessor] Preserve #pragma clang assume_nonnull in preprocessed output 2017-09-27 23:29:37 +00:00
SerializedDiagnosticPrinter.cpp Revert "Revert "[NFC] Refactor DiagnosticRenderer to use FullSourceLoc"" 2017-06-27 09:50:38 +00:00
SerializedDiagnosticReader.cpp [Frontend] Verify that the bitstream is not empty before reading 2017-07-07 10:25:12 +00:00
TestModuleFileExtension.cpp Fix for LLVM Bitcode API change (to use std::shared_ptr) 2017-01-04 22:36:43 +00:00
TestModuleFileExtension.h Module file extensions: pass a Sema through to the extension writer. 2015-12-08 22:43:32 +00:00
TextDiagnostic.cpp [clang] buildFixItInsertionLine should use Hints of the same FID and LineNo 2017-07-12 16:25:40 +00:00
TextDiagnosticBuffer.cpp Replace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial types 2015-05-29 19:42:19 +00:00
TextDiagnosticPrinter.cpp Revert "Revert "[NFC] Refactor DiagnosticRenderer to use FullSourceLoc"" 2017-06-27 09:50:38 +00:00
VerifyDiagnosticConsumer.cpp Preprocessor: Suppress -Wnonportable-include-path for header maps 2017-04-27 21:41:51 +00:00