Skip to content
Snippets Groups Projects
  1. Apr 01, 2017
  2. Mar 31, 2017
  3. Mar 30, 2017
  4. Mar 29, 2017
    • Adam Nemet's avatar
      Use FPContractModeKind universally · 922e16ba
      Adam Nemet authored
      FPContractModeKind is the codegen option flag which is already ternary (off,
      on, fast).  This makes it universally the type for the contractable info
      across the front-end:
      
      * In FPOptions (i.e. in the Sema + in the expression nodes).
      * In LangOpts::DefaultFPContractMode which is the option that initializes
      FPOptions in the Sema.
      
      Another way to look at this change is that before fp-contractable on/off were
      the only states handled to the front-end:
       * For "on", FMA folding was performed by  the front-end
       * For "fast", we simply forwarded the flag to TargetOptions to handle it in
       LLVM
      
      Now off/on/fast are all exposed because for fast we will generate
      fast-math-flags during CodeGen.
      
      This is toward moving fp-contraction=fast from an LLVM TargetOption to a
      FastMathFlag in order to fix PR25721.
      
      ---
      This is a recommit of r299027 with an adjustment to the test
      CodeGenCUDA/fp-contract.cu.  The test assumed that even
      though -ffp-contract=on is passed FE-based folding of FMA won't happen.
      
      This is obviously wrong since the user is asking for this explicitly with the
      option.  CUDA is different that -ffp-contract=fast is on by default.
      
      The test used to "work" because contract=fast and contract=on were maintained
      separately and we didn't fold in the FE because contract=fast was on due to
      the target-default.  This patch consolidates the contract=on/fast/off state
      into a ternary state hence the change in behavior.
      ---
      
      Differential Revision: https://reviews.llvm.org/D31167
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@299033 91177308-0d34-0410-b5e6-96231b3b80d8
      922e16ba
    • Adam Nemet's avatar
      Revert "Use FPContractModeKind universally" · 38e2463d
      Adam Nemet authored
      This reverts commit r299027.
      
      It's causing a test failure in clang's CodeGenCUDE/fp-contract.cu
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@299029 91177308-0d34-0410-b5e6-96231b3b80d8
      38e2463d
Loading