[llvm] r247824 - Disable the second verification run when performing LTO through

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 16 11:12:00 PDT 2015


Thanks!

On 16 September 2015 at 14:06, Teresa Johnson via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: tejohnson
> Date: Wed Sep 16 13:06:45 2015
> New Revision: 247824
>
> URL: http://llvm.org/viewvc/llvm-project?rev=247824&view=rev
> Log:
> Disable the second verification run when performing LTO through
> gold in NDEBUG mode.
> Follow on patch for r247729 - LTO: Disable extra verify runs in release
> builds.
>
> Added:
>     llvm/trunk/test/tools/gold/X86/disable-verify.ll
> Modified:
>     llvm/trunk/tools/gold/gold-plugin.cpp
>
> Added: llvm/trunk/test/tools/gold/X86/disable-verify.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/gold/X86/disable-verify.ll?rev=247824&view=auto
> ==============================================================================
> --- llvm/trunk/test/tools/gold/X86/disable-verify.ll (added)
> +++ llvm/trunk/test/tools/gold/X86/disable-verify.ll Wed Sep 16 13:06:45 2015
> @@ -0,0 +1,25 @@
> +; RUN: llvm-as %s -o %t.o
> +; REQUIRES: asserts
> +
> +; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
> +; RUN:    --plugin-opt=disable-verify \
> +; RUN:    --plugin-opt=-debug-pass=Arguments \
> +; RUN:    -shared %t.o -o %t2.o 2>&1 | FileCheck %s
> +
> +; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
> +; RUN:    --plugin-opt=-debug-pass=Arguments \
> +; RUN:    -shared %t.o -o %t2.o 2>&1 | FileCheck %s -check-prefix=VERIFY
> +
> +target triple = "x86_64-unknown-linux-gnu"
> +
> +; -disable-verify should disable output verification from the optimization
> +; pipeline.
> +; CHECK: Pass Arguments: {{.*}} -verify -ipsccp
> +; CHECK-NOT: -verify
> +
> +; VERIFY: Pass Arguments: {{.*}} -verify {{.*}} -verify
> +
> +define void @f() {
> +entry:
> +  ret void
> +}
>
> Modified: llvm/trunk/tools/gold/gold-plugin.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/gold/gold-plugin.cpp?rev=247824&r1=247823&r2=247824&view=diff
> ==============================================================================
> --- llvm/trunk/tools/gold/gold-plugin.cpp (original)
> +++ llvm/trunk/tools/gold/gold-plugin.cpp Wed Sep 16 13:06:45 2015
> @@ -94,6 +94,11 @@ namespace options {
>    static OutputType TheOutputType = OT_NORMAL;
>    static unsigned OptLevel = 2;
>    static unsigned Parallelism = 1;
> +#ifdef NDEBUG
> +  static bool DisableVerify = true;
> +#else
> +  static bool DisableVerify = false;
> +#endif
>    static std::string obj_path;
>    static std::string extra_library_path;
>    static std::string triple;
> @@ -134,6 +139,8 @@ namespace options {
>      } else if (opt.startswith("jobs=")) {
>        if (StringRef(opt_ + 5).getAsInteger(10, Parallelism))
>          message(LDPL_FATAL, "Invalid parallelism level: %s", opt_ + 5);
> +    } else if (opt == "disable-verify") {
> +      DisableVerify = true;
>      } else {
>        // Save this option to pass to the code generator.
>        // ParseCommandLineOptions() expects argv[0] to be program name. Lazily
> @@ -730,8 +737,10 @@ static void runLTOPasses(Module &M, Targ
>    PassManagerBuilder PMB;
>    PMB.LibraryInfo = new TargetLibraryInfoImpl(Triple(TM.getTargetTriple()));
>    PMB.Inliner = createFunctionInliningPass();
> +  // Unconditionally verify input since it is not verified before this
> +  // point and has unknown origin.
>    PMB.VerifyInput = true;
> -  PMB.VerifyOutput = true;
> +  PMB.VerifyOutput = !options::DisableVerify;
>    PMB.LoopVectorize = true;
>    PMB.SLPVectorize = true;
>    PMB.OptLevel = options::OptLevel;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list