[llvm] r327488 - [AMDGPU] Fix for DAGCombiner infinite loop in OCLtst

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 14 07:15:34 PDT 2018



> On Mar 14, 2018, at 05:48, Alexander Timofeev via llvm-commits <llvm-commits at lists.llvm.org> wrote:
> 
> Author: alex-t
> Date: Wed Mar 14 02:48:51 2018
> New Revision: 327488
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=327488&view=rev
> Log:
> [AMDGPU] Fix for DAGCombiner infinite loop in OCLtst
> 
> Differential revision: https://reviews.llvm.org/D44417
> 
> Modified:
>    llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h
> 
> Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h?rev=327488&r1=327487&r2=327488&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h Wed Mar 14 02:48:51 2018
> @@ -1194,7 +1194,8 @@ public:
>   /// encoding of the volatile flag, as well as bits used by subclasses. This
>   /// function should only be used to compute a FoldingSetNodeID value.
>   /// The HasDebugValue bit is masked out because CSE map needs to match
> -  /// nodes with debug info with nodes without debug info.
> +  /// nodes with debug info with nodes without debug info. Same is about
> +  /// isDivergent bit.
>   unsigned getRawSubclassData() const {
>     uint16_t Data;
>     union {
> @@ -1203,6 +1204,7 @@ public:
>     };
>     memcpy(&RawSDNodeBits, &this->RawSDNodeBits, sizeof(this->RawSDNodeBits));
>     SDNodeBits.HasDebugValue = 0;
> +    SDNodeBits.IsDivergent = false;
>     memcpy(&Data, &RawSDNodeBits, sizeof(RawSDNodeBits));
>     return Data;
>   }
> 

Testcase?


More information about the llvm-commits mailing list