[all-commits] [llvm/llvm-project] 498b53: [SelectionDAGBuilder][FPEnv] Take into account Sel...

topperc via All-commits all-commits at lists.llvm.org
Wed Mar 18 13:38:17 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 498b53890d810676ccf05508f0296a0265308aca
      https://github.com/llvm/llvm-project/commit/498b53890d810676ccf05508f0296a0265308aca
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2020-03-18 (Wed, 18 Mar 2020)

  Changed paths:
    M llvm/include/llvm/CodeGen/SelectionDAG.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/test/CodeGen/X86/fp-intrinsics-flags.ll

  Log Message:
  -----------
  [SelectionDAGBuilder][FPEnv] Take into account SelectionDAG continuous CSE when setting the nofpexcept flag for constrained intrinsics

SelectionDAG CSEs nodes based on their result type and operands, but not their flags. The flags are expected to be intersected when they are CSEd. In SelectionDAGBuilder, for FP nodes we manage both the fast math flags and the nofpexcept flag after the nodes have already been CSEd when they were created with getNode. The management of the fastmath flags before the constrained nodes prevents the nofpexcept management from working correctly.

This commit moves the FMF handling for constrained intrinsics into their visitor and disables the common FMF handling for these nodes.

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




More information about the All-commits mailing list