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

Finkel, Hal J. via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 3 11:31:30 PST 2019


On 1/3/19 1:17 PM, Anna Thomas wrote:
> Thanks Hal. I will change this to also be under EXPENSIVE_CHECKS instead of NDEBUG.
>
> However, I’m planning on keeping it under "VerificationLevel::Full” rather than Fast, since we’re anyway running under EXPENSIVE_CHECKS.

Okay. Thanks.

 -Hal

>
> Anna
>> On Jan 3, 2019, at 1:56 PM, Finkel, Hal J. <hfinkel at anl.gov> wrote:
>>
>> 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
>>
-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list