diff options
Diffstat (limited to 'llvm/utils')
5 files changed, 56 insertions, 52 deletions
diff --git a/llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp b/llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp index 3938d39..ed802e2 100644 --- a/llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp +++ b/llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp @@ -15,6 +15,7 @@ #include "llvm/Support/FormatVariadic.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Support/xxhash.h" +#include "llvm/TableGen/CodeGenHelpers.h" #include "llvm/TableGen/Error.h" #include "llvm/TableGen/Record.h" #include "llvm/TableGen/SetTheory.h" @@ -290,8 +291,9 @@ public: } // End anonymous namespace. void RuntimeLibcallEmitter::emitGetRuntimeLibcallEnum(raw_ostream &OS) const { - OS << "#ifdef GET_RUNTIME_LIBCALL_ENUM\n" - "namespace llvm {\n" + IfDefEmitter IfDef(OS, "GET_RUNTIME_LIBCALL_ENUM"); + + OS << "namespace llvm {\n" "namespace RTLIB {\n" "enum Libcall : unsigned short {\n"; @@ -315,8 +317,7 @@ void RuntimeLibcallEmitter::emitGetRuntimeLibcallEnum(raw_ostream &OS) const { << RuntimeLibcallImplDefList.size() + 1 << ";\n" "} // End namespace RTLIB\n" - "} // End namespace llvm\n" - "#endif\n\n"; + "} // End namespace llvm\n"; } // StringMap uses xxh3_64bits, truncated to uint32_t. @@ -432,14 +433,16 @@ void RuntimeLibcallEmitter::emitNameMatchHashTable( // // TODO: It may make more sense to split the search by string size more. There // are a few outliers, most call names are small. - OS << "#ifdef GET_LOOKUP_LIBCALL_IMPL_NAME_BODY\n" - " size_t Size = Name.size();\n" - " if (Size == 0 || Size > " - << MaxFuncNameSize - << ")\n" - " return enum_seq(RTLIB::Unsupported, RTLIB::Unsupported);\n" - " return lookupLibcallImplNameImpl(Name);\n" - "#endif\n"; + { + IfDefEmitter IfDef(OS, "GET_LOOKUP_LIBCALL_IMPL_NAME_BODY"); + + OS << " size_t Size = Name.size();\n" + " if (Size == 0 || Size > " + << MaxFuncNameSize + << ")\n" + " return enum_seq(RTLIB::Unsupported, RTLIB::Unsupported);\n" + " return lookupLibcallImplNameImpl(Name);\n"; + } auto [Size, Collisions] = computePerfectHashParameters(Hashes); std::vector<unsigned> Lookup = @@ -449,7 +452,7 @@ void RuntimeLibcallEmitter::emitNameMatchHashTable( LLVM_DEBUG(dbgs() << "Runtime libcall perfect hashing parameters: Size = " << Size << ", maximum collisions = " << Collisions << '\n'); - OS << "#ifdef DEFINE_GET_LOOKUP_LIBCALL_IMPL_NAME\n"; + IfDefEmitter IfDef(OS, "DEFINE_GET_LOOKUP_LIBCALL_IMPL_NAME"); emitHashFunction(OS); OS << "iota_range<RTLIB::LibcallImpl> RTLIB::RuntimeLibcallsInfo::" @@ -481,59 +484,57 @@ void RuntimeLibcallEmitter::emitNameMatchHashTable( return enum_seq(RTLIB::Unsupported, RTLIB::Unsupported); } )"; - - OS << "#endif\n\n"; } void RuntimeLibcallEmitter::emitGetInitRuntimeLibcallNames( raw_ostream &OS) const { - OS << "#ifdef GET_INIT_RUNTIME_LIBCALL_NAMES\n"; - // Emit the implementation names StringToOffsetTable Table(/*AppendZero=*/true, "RTLIB::RuntimeLibcallsInfo::"); - for (const RuntimeLibcallImpl &LibCallImpl : RuntimeLibcallImplDefList) - Table.GetOrAddStringOffset(LibCallImpl.getLibcallFuncName()); + { + IfDefEmitter IfDef(OS, "GET_INIT_RUNTIME_LIBCALL_NAMES"); + + for (const RuntimeLibcallImpl &LibCallImpl : RuntimeLibcallImplDefList) + Table.GetOrAddStringOffset(LibCallImpl.getLibcallFuncName()); - Table.EmitStringTableDef(OS, "RuntimeLibcallImplNameTable"); - OS << R"( + Table.EmitStringTableDef(OS, "RuntimeLibcallImplNameTable"); + OS << R"( const uint16_t RTLIB::RuntimeLibcallsInfo::RuntimeLibcallNameOffsetTable[] = { )"; - OS << formatv(" {}, // {}\n", Table.GetStringOffset(""), - ""); // Unsupported entry - for (const RuntimeLibcallImpl &LibCallImpl : RuntimeLibcallImplDefList) { - StringRef ImplName = LibCallImpl.getLibcallFuncName(); - OS << formatv(" {}, // {}\n", Table.GetStringOffset(ImplName), ImplName); - } - OS << "};\n"; + OS << formatv(" {}, // {}\n", Table.GetStringOffset(""), + ""); // Unsupported entry + for (const RuntimeLibcallImpl &LibCallImpl : RuntimeLibcallImplDefList) { + StringRef ImplName = LibCallImpl.getLibcallFuncName(); + OS << formatv(" {}, // {}\n", Table.GetStringOffset(ImplName), ImplName); + } + OS << "};\n"; - OS << R"( + OS << R"( const uint8_t RTLIB::RuntimeLibcallsInfo::RuntimeLibcallNameSizeTable[] = { )"; - OS << " 0,\n"; - for (const RuntimeLibcallImpl &LibCallImpl : RuntimeLibcallImplDefList) - OS << " " << LibCallImpl.getLibcallFuncName().size() << ",\n"; - OS << "};\n\n"; + OS << " 0,\n"; + for (const RuntimeLibcallImpl &LibCallImpl : RuntimeLibcallImplDefList) + OS << " " << LibCallImpl.getLibcallFuncName().size() << ",\n"; + OS << "};\n\n"; - // Emit the reverse mapping from implementation libraries to RTLIB::Libcall - OS << "const RTLIB::Libcall llvm::RTLIB::RuntimeLibcallsInfo::" - "ImplToLibcall[RTLIB::NumLibcallImpls] = {\n" - " RTLIB::UNKNOWN_LIBCALL, // RTLIB::Unsupported\n"; + // Emit the reverse mapping from implementation libraries to RTLIB::Libcall + OS << "const RTLIB::Libcall llvm::RTLIB::RuntimeLibcallsInfo::" + "ImplToLibcall[RTLIB::NumLibcallImpls] = {\n" + " RTLIB::UNKNOWN_LIBCALL, // RTLIB::Unsupported\n"; - for (const RuntimeLibcallImpl &LibCallImpl : RuntimeLibcallImplDefList) { - const RuntimeLibcall *Provides = LibCallImpl.getProvides(); - OS << " "; - Provides->emitEnumEntry(OS); - OS << ", // "; - LibCallImpl.emitEnumEntry(OS); - OS << '\n'; + for (const RuntimeLibcallImpl &LibCallImpl : RuntimeLibcallImplDefList) { + const RuntimeLibcall *Provides = LibCallImpl.getProvides(); + OS << " "; + Provides->emitEnumEntry(OS); + OS << ", // "; + LibCallImpl.emitEnumEntry(OS); + OS << '\n'; + } + OS << "};\n\n"; } - OS << "};\n\n"; - - OS << "#endif\n\n"; emitNameMatchHashTable(OS, Table); } @@ -757,9 +758,10 @@ void RuntimeLibcallEmitter::run(raw_ostream &OS) { emitGetInitRuntimeLibcallNames(OS); - OS << "#ifdef GET_SET_TARGET_RUNTIME_LIBCALL_SETS\n"; - emitSystemRuntimeLibrarySetCalls(OS); - OS << "#endif\n\n"; + { + IfDefEmitter IfDef(OS, "GET_SET_TARGET_RUNTIME_LIBCALL_SETS"); + emitSystemRuntimeLibrarySetCalls(OS); + } } void LibcallPredicateExpander::expand(SetTheory &ST, const Record *Def, diff --git a/llvm/utils/gn/secondary/clang/lib/Analysis/FlowSensitive/Models/BUILD.gn b/llvm/utils/gn/secondary/clang/lib/Analysis/FlowSensitive/Models/BUILD.gn index 3fd3aab..01a05bc 100644 --- a/llvm/utils/gn/secondary/clang/lib/Analysis/FlowSensitive/Models/BUILD.gn +++ b/llvm/utils/gn/secondary/clang/lib/Analysis/FlowSensitive/Models/BUILD.gn @@ -11,5 +11,6 @@ static_library("Models") { sources = [ "ChromiumCheckModel.cpp", "UncheckedOptionalAccessModel.cpp", + "UncheckedStatusOrAccessModel.cpp", ] } diff --git a/llvm/utils/gn/secondary/clang/unittests/Analysis/FlowSensitive/BUILD.gn b/llvm/utils/gn/secondary/clang/unittests/Analysis/FlowSensitive/BUILD.gn index c9f3a074..c74a44c 100644 --- a/llvm/utils/gn/secondary/clang/unittests/Analysis/FlowSensitive/BUILD.gn +++ b/llvm/utils/gn/secondary/clang/unittests/Analysis/FlowSensitive/BUILD.gn @@ -44,6 +44,8 @@ unittest("ClangAnalysisFlowSensitiveTests") { "TransferTest.cpp", "TypeErasedDataflowAnalysisTest.cpp", "UncheckedOptionalAccessModelTest.cpp", + "UncheckedStatusOrAccessModelTest.cpp", + "UncheckedStatusOrAccessModelTestFixture.cpp", "ValueTest.cpp", "WatchedLiteralsSolverTest.cpp", ] diff --git a/llvm/utils/gn/secondary/libcxx/include/BUILD.gn b/llvm/utils/gn/secondary/libcxx/include/BUILD.gn index f771099..e747006 100644 --- a/llvm/utils/gn/secondary/libcxx/include/BUILD.gn +++ b/llvm/utils/gn/secondary/libcxx/include/BUILD.gn @@ -1439,7 +1439,6 @@ if (current_toolchain == default_toolchain) { "__tuple/sfinae_helpers.h", "__tuple/tuple_element.h", "__tuple/tuple_like.h", - "__tuple/tuple_like_ext.h", "__tuple/tuple_like_no_subrange.h", "__tuple/tuple_size.h", "__tuple/tuple_types.h", diff --git a/llvm/utils/lit/tests/Inputs/googletest-cmd-wrapper/lit.cfg b/llvm/utils/lit/tests/Inputs/googletest-cmd-wrapper/lit.cfg index 9f93bac..d3eb987 100644 --- a/llvm/utils/lit/tests/Inputs/googletest-cmd-wrapper/lit.cfg +++ b/llvm/utils/lit/tests/Inputs/googletest-cmd-wrapper/lit.cfg @@ -2,5 +2,5 @@ import lit.formats config.name = "googletest-cmd-wrapper" config.test_format = lit.formats.GoogleTest( - "DummySubDir", "Test" if "win32" in sys.platform else ".exe", [sys.executable] + "DummySubDir", "Test" if sys.platform in ["win32", "cygwin"] else ".exe", [sys.executable] ) |