mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-02 08:45:55 +00:00
Rename BlackList class to SpecialCaseList and move it to Transforms/Utils.
Differential Revision: http://llvm-reviews.chandlerc.com/D1089 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185975 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8c5c6f0e09
commit
405515d55f
@ -1,4 +1,4 @@
|
||||
//===-- BlackList.h - blacklist for sanitizers ------------------*- C++ -*-===//
|
||||
//===-- SpecialCaseList.h - blacklist for sanitizers ------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
@ -39,9 +39,9 @@ class Module;
|
||||
class Regex;
|
||||
class StringRef;
|
||||
|
||||
class BlackList {
|
||||
class SpecialCaseList {
|
||||
public:
|
||||
BlackList(const StringRef Path);
|
||||
SpecialCaseList(const StringRef Path);
|
||||
// Returns whether either this function or it's source file are blacklisted.
|
||||
bool isIn(const Function &F) const;
|
||||
// Returns whether either this global or it's source file are blacklisted.
|
@ -43,10 +43,10 @@
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/Support/system_error.h"
|
||||
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
|
||||
#include "llvm/Transforms/Utils/BlackList.h"
|
||||
#include "llvm/Transforms/Utils/Cloning.h"
|
||||
#include "llvm/Transforms/Utils/Local.h"
|
||||
#include "llvm/Transforms/Utils/ModuleUtils.h"
|
||||
#include "llvm/Transforms/Utils/SpecialCaseList.h"
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
|
||||
@ -318,7 +318,7 @@ struct AddressSanitizer : public FunctionPass {
|
||||
Function *AsanCtorFunction;
|
||||
Function *AsanInitFunction;
|
||||
Function *AsanHandleNoReturnFunc;
|
||||
OwningPtr<BlackList> BL;
|
||||
OwningPtr<SpecialCaseList> BL;
|
||||
// This array is indexed by AccessIsWrite and log2(AccessSize).
|
||||
Function *AsanErrorCallback[2][kNumberOfAccessSizes];
|
||||
// This array is indexed by AccessIsWrite.
|
||||
@ -358,7 +358,7 @@ class AddressSanitizerModule : public ModulePass {
|
||||
SmallString<64> BlacklistFile;
|
||||
bool ZeroBaseShadow;
|
||||
|
||||
OwningPtr<BlackList> BL;
|
||||
OwningPtr<SpecialCaseList> BL;
|
||||
SetOfDynamicallyInitializedGlobals DynamicallyInitializedGlobals;
|
||||
Type *IntptrTy;
|
||||
LLVMContext *C;
|
||||
@ -880,7 +880,7 @@ bool AddressSanitizerModule::runOnModule(Module &M) {
|
||||
TD = getAnalysisIfAvailable<DataLayout>();
|
||||
if (!TD)
|
||||
return false;
|
||||
BL.reset(new BlackList(BlacklistFile));
|
||||
BL.reset(new SpecialCaseList(BlacklistFile));
|
||||
if (BL->isIn(M)) return false;
|
||||
C = &(M.getContext());
|
||||
int LongSize = TD->getPointerSizeInBits();
|
||||
@ -1070,7 +1070,7 @@ bool AddressSanitizer::doInitialization(Module &M) {
|
||||
|
||||
if (!TD)
|
||||
return false;
|
||||
BL.reset(new BlackList(BlacklistFile));
|
||||
BL.reset(new SpecialCaseList(BlacklistFile));
|
||||
DynamicallyInitializedGlobals.Init(M);
|
||||
|
||||
C = &(M.getContext());
|
||||
|
@ -1,6 +1,5 @@
|
||||
add_llvm_library(LLVMInstrumentation
|
||||
AddressSanitizer.cpp
|
||||
BlackList.cpp
|
||||
BoundsChecking.cpp
|
||||
DebugIR.cpp
|
||||
EdgeProfiling.cpp
|
||||
|
@ -91,9 +91,9 @@
|
||||
#include "llvm/Support/Debug.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
|
||||
#include "llvm/Transforms/Utils/BlackList.h"
|
||||
#include "llvm/Transforms/Utils/Local.h"
|
||||
#include "llvm/Transforms/Utils/ModuleUtils.h"
|
||||
#include "llvm/Transforms/Utils/SpecialCaseList.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
@ -232,7 +232,7 @@ class MemorySanitizer : public FunctionPass {
|
||||
/// \brief Path to blacklist file.
|
||||
SmallString<64> BlacklistFile;
|
||||
/// \brief The blacklist.
|
||||
OwningPtr<BlackList> BL;
|
||||
OwningPtr<SpecialCaseList> BL;
|
||||
/// \brief An empty volatile inline asm that prevents callback merge.
|
||||
InlineAsm *EmptyAsm;
|
||||
|
||||
@ -338,7 +338,7 @@ bool MemorySanitizer::doInitialization(Module &M) {
|
||||
TD = getAnalysisIfAvailable<DataLayout>();
|
||||
if (!TD)
|
||||
return false;
|
||||
BL.reset(new BlackList(BlacklistFile));
|
||||
BL.reset(new SpecialCaseList(BlacklistFile));
|
||||
C = &(M.getContext());
|
||||
unsigned PtrSize = TD->getPointerSizeInBits(/* AddressSpace */0);
|
||||
switch (PtrSize) {
|
||||
|
@ -41,8 +41,8 @@
|
||||
#include "llvm/Support/MathExtras.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
|
||||
#include "llvm/Transforms/Utils/BlackList.h"
|
||||
#include "llvm/Transforms/Utils/ModuleUtils.h"
|
||||
#include "llvm/Transforms/Utils/SpecialCaseList.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
@ -99,7 +99,7 @@ struct ThreadSanitizer : public FunctionPass {
|
||||
DataLayout *TD;
|
||||
Type *IntptrTy;
|
||||
SmallString<64> BlacklistFile;
|
||||
OwningPtr<BlackList> BL;
|
||||
OwningPtr<SpecialCaseList> BL;
|
||||
IntegerType *OrdTy;
|
||||
// Callbacks to run-time library are computed in doInitialization.
|
||||
Function *TsanFuncEntry;
|
||||
@ -227,7 +227,7 @@ bool ThreadSanitizer::doInitialization(Module &M) {
|
||||
TD = getAnalysisIfAvailable<DataLayout>();
|
||||
if (!TD)
|
||||
return false;
|
||||
BL.reset(new BlackList(BlacklistFile));
|
||||
BL.reset(new SpecialCaseList(BlacklistFile));
|
||||
|
||||
// Always insert a call to __tsan_init into the module's CTORs.
|
||||
IRBuilder<> IRB(M.getContext());
|
||||
|
@ -28,6 +28,7 @@ add_llvm_library(LLVMTransformUtils
|
||||
SimplifyIndVar.cpp
|
||||
SimplifyInstructions.cpp
|
||||
SimplifyLibCalls.cpp
|
||||
SpecialCaseList.cpp
|
||||
UnifyFunctionExitNodes.cpp
|
||||
Utils.cpp
|
||||
ValueMapper.cpp
|
||||
|
@ -1,4 +1,4 @@
|
||||
//===-- BlackList.cpp - blacklist for sanitizers --------------------------===//
|
||||
//===-- SpecialCaseList.cpp - blacklist for sanitizers --------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
@ -13,7 +13,7 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/Transforms/Utils/BlackList.h"
|
||||
#include "llvm/Transforms/Utils/SpecialCaseList.h"
|
||||
#include "llvm/ADT/OwningPtr.h"
|
||||
#include "llvm/ADT/SmallVector.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
@ -30,7 +30,7 @@
|
||||
|
||||
namespace llvm {
|
||||
|
||||
BlackList::BlackList(const StringRef Path) {
|
||||
SpecialCaseList::SpecialCaseList(const StringRef Path) {
|
||||
// Validate and open blacklist file.
|
||||
if (Path.empty()) return;
|
||||
OwningPtr<MemoryBuffer> File;
|
||||
@ -84,15 +84,15 @@ BlackList::BlackList(const StringRef Path) {
|
||||
}
|
||||
}
|
||||
|
||||
bool BlackList::isIn(const Function &F) const {
|
||||
bool SpecialCaseList::isIn(const Function &F) const {
|
||||
return isIn(*F.getParent()) || inSection("fun", F.getName());
|
||||
}
|
||||
|
||||
bool BlackList::isIn(const GlobalVariable &G) const {
|
||||
bool SpecialCaseList::isIn(const GlobalVariable &G) const {
|
||||
return isIn(*G.getParent()) || inSection("global", G.getName());
|
||||
}
|
||||
|
||||
bool BlackList::isIn(const Module &M) const {
|
||||
bool SpecialCaseList::isIn(const Module &M) const {
|
||||
return inSection("src", M.getModuleIdentifier());
|
||||
}
|
||||
|
||||
@ -107,15 +107,15 @@ static StringRef GetGVTypeString(const GlobalVariable &G) {
|
||||
return "<unknown type>";
|
||||
}
|
||||
|
||||
bool BlackList::isInInit(const GlobalVariable &G) const {
|
||||
bool SpecialCaseList::isInInit(const GlobalVariable &G) const {
|
||||
return (isIn(*G.getParent()) ||
|
||||
inSection("global-init", G.getName()) ||
|
||||
inSection("global-init-type", GetGVTypeString(G)) ||
|
||||
inSection("global-init-src", G.getParent()->getModuleIdentifier()));
|
||||
}
|
||||
|
||||
bool BlackList::inSection(const StringRef Section,
|
||||
const StringRef Query) const {
|
||||
bool SpecialCaseList::inSection(const StringRef Section,
|
||||
const StringRef Query) const {
|
||||
StringMap<Regex*>::const_iterator I = Entries.find(Section);
|
||||
if (I == Entries.end()) return false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user