[llvm] r350334 - [UnrollRuntime] Add DomTree verification under debug mode

Finkel, Hal J. via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 3 10:56:03 PST 2019


Hi, Anna,

Didn't we just take something like this out in r349871? I think we used
EXPENSIVE_CHECKS instead of NDEBUG for this, as it can change the
asymptotic complexity of the operation.

Thanks again,

Hal

On 1/3/19 11:44 AM, Anna Thomas via llvm-commits wrote:
> Author: annat
> Date: Thu Jan  3 09:44:44 2019
> New Revision: 350334
>
> URL: http://llvm.org/viewvc/llvm-project?rev=350334&view=rev
> Log:
> [UnrollRuntime] Add DomTree verification under debug mode
>
> NFC: This adds the dom tree verification under debug mode at a point
> just before we start unrolling the loop. This allows us to verify dom
> tree at a state where it is much smaller and before the unrolling
> actually happens.
> This also implies we do not need to run -verify-dom-info everytime to
> see if the DT is in a valid state when we transform the loop for runtime
> unrolling.
>
> Modified:
>     llvm/trunk/lib/Transforms/Utils/LoopUnrollRuntime.cpp
>
> Modified: llvm/trunk/lib/Transforms/Utils/LoopUnrollRuntime.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/LoopUnrollRuntime.cpp?rev=350334&r1=350333&r2=350334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Utils/LoopUnrollRuntime.cpp (original)
> +++ llvm/trunk/lib/Transforms/Utils/LoopUnrollRuntime.cpp Thu Jan  3 09:44:44 2019
> @@ -927,6 +927,12 @@ bool llvm::UnrollRuntimeLoopRemainder(Lo
>    // of its parent loops, so the Scalar Evolution pass needs to be run again.
>    SE->forgetTopmostLoop(L);
>  
> +  // Verify that the Dom Tree is correct.
> +#if !defined(NDEBUG)
> +  if (DT)
> +    assert(DT->verify(DominatorTree::VerificationLevel::Full));
> +#endif
> +
>    // Canonicalize to LoopSimplifyForm both original and remainder loops. We
>    // cannot rely on the LoopUnrollPass to do this because it only does
>    // canonicalization for parent/subloops and not the sibling loops.
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits

-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list