1. Aug 11, 2022
    • Florian Hahn's avatar
      [Builtins] Do not claim most libfuncs are readnone with trapping math. · ef110a49
      Florian Hahn authored
      At the moment, Clang only considers errno when deciding if a builtin
      is const. This ignores the fact that some library functions may raise
      floating point exceptions, which may modify global state, e.g. when
      updating FP status registers.
      
      To model the fact that some library functions/builtins may raise
      floating point exceptions, this patch adds a new 'g' modifier for
      builtins. If a builtin is marked with 'g', it cannot be considered
      const, unless FP exceptions are ignored.
      
      So far I've not added CHECK lines for all calls in math-libcalls.c. I'll
      do that once we agree on the overall direction.
      
      A consequence seems to be that we fail to select some of the constrained
      math builtins now, but I am not entirely sure what's going on there.
      
      Reviewed By: john.brawn
      
      Differential Revision: https://reviews.llvm.org/D129231
      ef110a49
    • Haojian Wu's avatar
  2. Sep 14, 2021
  3. Aug 11, 2022