Decouple llvm::SpecialCaseList text representation and its LLVM IR semantics.
authorAlexey Samsonov <vonosmas@gmail.com>
Wed, 9 Jul 2014 19:40:08 +0000 (19:40 +0000)
committerAlexey Samsonov <vonosmas@gmail.com>
Wed, 9 Jul 2014 19:40:08 +0000 (19:40 +0000)
commitb7dd329f2f3ffdb8a1e5ec31e87e94a6038c2073
tree8149a3e123456b9a6743ebb67dfdfbfd6fa8e8ca
parentcd0a4aaba3925d8b243c82bcaa885e121576c9ae
Decouple llvm::SpecialCaseList text representation and its LLVM IR semantics.

Turn llvm::SpecialCaseList into a simple class that parses text files in
a specified format and knows nothing about LLVM IR. Move this class into
LLVMSupport library. Implement two users of this class:
  * DFSanABIList in DFSan instrumentation pass.
  * SanitizerBlacklist in Clang CodeGen library.
The latter will be modified to use actual source-level information from frontend
(source file names) instead of unstable LLVM IR things (LLVM Module identifier).

Remove dependency edge from ClangCodeGen/ClangDriver to LLVMTransformUtils.

No functionality change.

llvm-svn: 212643
17 files changed:
clang/lib/CodeGen/CMakeLists.txt
clang/lib/CodeGen/CodeGenModule.cpp
clang/lib/CodeGen/CodeGenModule.h
clang/lib/CodeGen/SanitizerBlacklist.cpp [new file with mode: 0644]
clang/lib/CodeGen/SanitizerBlacklist.h [new file with mode: 0644]
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/SanitizerArgs.cpp
llvm/include/llvm/Support/SpecialCaseList.h [new file with mode: 0644]
llvm/include/llvm/Transforms/Utils/SpecialCaseList.h [deleted file]
llvm/lib/Support/CMakeLists.txt
llvm/lib/Support/SpecialCaseList.cpp [moved from llvm/lib/Transforms/Utils/SpecialCaseList.cpp with 76% similarity]
llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
llvm/lib/Transforms/Utils/CMakeLists.txt
llvm/unittests/Support/CMakeLists.txt
llvm/unittests/Support/SpecialCaseListTest.cpp [new file with mode: 0644]
llvm/unittests/Transforms/Utils/CMakeLists.txt
llvm/unittests/Transforms/Utils/SpecialCaseList.cpp [deleted file]