From: Nandor Licker Date: Mon, 2 Sep 2019 11:34:47 +0000 (+0000) Subject: Revert [Clang Interpreter] Initial patch for the constexpr interpreter X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ded593f5793d5ef159ca1410d613b2d7bac70ab9;p=llvm Revert [Clang Interpreter] Initial patch for the constexpr interpreter This reverts r370636 (git commit 8327fed9475a14c3376b4860c75370c730e08f33) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370642 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/MathExtras.h b/include/llvm/Support/MathExtras.h index b4abb0e50cd..f97841eba1c 100644 --- a/include/llvm/Support/MathExtras.h +++ b/include/llvm/Support/MathExtras.h @@ -902,6 +902,9 @@ SubOverflow(T X, T Y, T &Result) { template typename std::enable_if::value, T>::type MulOverflow(T X, T Y, T &Result) { +#if __has_builtin(__builtin_mul_overflow) + return __builtin_mul_overflow(X, Y, &Result); +#else // Perform the unsigned multiplication on absolute values. using U = typename std::make_unsigned::type; const U UX = X < 0 ? (0 - static_cast(X)) : static_cast(X); @@ -923,6 +926,7 @@ MulOverflow(T X, T Y, T &Result) { return UX > (static_cast(std::numeric_limits::max()) + U(1)) / UY; else return UX > (static_cast(std::numeric_limits::max())) / UY; +#endif } } // End llvm namespace diff --git a/utils/gn/secondary/clang/lib/AST/BUILD.gn b/utils/gn/secondary/clang/lib/AST/BUILD.gn index c98910691ab..9d72b38bd23 100644 --- a/utils/gn/secondary/clang/lib/AST/BUILD.gn +++ b/utils/gn/secondary/clang/lib/AST/BUILD.gn @@ -10,7 +10,6 @@ static_library("AST") { "//clang/include/clang/AST:CommentHTMLTags", "//clang/include/clang/AST:CommentHTMLTagsProperties", "//clang/include/clang/AST:DeclNodes", - "//clang/lib/AST/Interp", "//clang/lib/Basic", "//clang/lib/Lex", "//llvm/lib/BinaryFormat", diff --git a/utils/gn/secondary/clang/lib/AST/Interp/BUILD.gn b/utils/gn/secondary/clang/lib/AST/Interp/BUILD.gn deleted file mode 100644 index 5a84d37847f..00000000000 --- a/utils/gn/secondary/clang/lib/AST/Interp/BUILD.gn +++ /dev/null @@ -1,39 +0,0 @@ -import("//clang/utils/TableGen/clang_tablegen.gni") - -clang_tablegen("Opcodes") { - args = [ "-gen-clang-opcodes" ] - td_file = "Opcodes.td" -} - -static_library("Interp") { - output_name = "clangInterp" - configs += [ "//llvm/utils/gn/build:clang_code" ] - deps = [ - "//clang/lib/AST/Interp:Opcodes", - "//clang/lib/Basic", - "//llvm/lib/Support", - ] - sources = [ - "Block.cpp", - "ByteCodeEmitter.cpp", - "ByteCodeExprGen.cpp", - "ByteCodeGenError.cpp", - "ByteCodeStmtGen.cpp", - "Context.cpp", - "Descriptor.cpp", - "Disasm.cpp", - "EvalEmitter.cpp", - "Frame.cpp", - "Function.cpp", - "Interp.cpp", - "InterpFrame.cpp", - "InterpStack.cpp", - "InterpState.cpp", - "Pointer.cpp", - "Program.cpp", - "Record.cpp", - "Source.cpp", - "State.cpp", - "Type.cpp", - ] -} diff --git a/utils/gn/secondary/clang/utils/TableGen/BUILD.gn b/utils/gn/secondary/clang/utils/TableGen/BUILD.gn index 46af9052b97..9a81b79da10 100644 --- a/utils/gn/secondary/clang/utils/TableGen/BUILD.gn +++ b/utils/gn/secondary/clang/utils/TableGen/BUILD.gn @@ -14,7 +14,6 @@ executable("clang-tblgen") { "ClangOpenCLBuiltinEmitter.cpp", "ClangOptionDocEmitter.cpp", "ClangSACheckersEmitter.cpp", - "ClangOpcodesEmitter.cpp", "NeonEmitter.cpp", "TableGen.cpp", ]