[all-commits] [llvm/llvm-project] e6a118: Limit the recursion depth of SelectionDAG::isSplat...

Justin Bogner via All-commits all-commits at lists.llvm.org
Wed Dec 9 10:39:54 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e6a1187dd867cc0feea4041b22a9bb29aaa3ae48
      https://github.com/llvm/llvm-project/commit/e6a1187dd867cc0feea4041b22a9bb29aaa3ae48
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M llvm/include/llvm/CodeGen/SelectionDAG.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  Log Message:
  -----------
  Limit the recursion depth of SelectionDAG::isSplatValue()

This method previously always recursively checked both the left-hand
side and right-hand side of binary operations for splatted (broadcast)
vector values to determine if the parent DAG node is a splat.

Like several other SelectionDAG methods, limit the recursion depth to
MaxRecursionDepth (6). This prevents stack overflow.
See also https://issuetracker.google.com/173785481

Patch by Nicolas Capens. Thanks!

Differential Revision: https://reviews.llvm.org/D92421




More information about the All-commits mailing list