Page MenuHomePhabricator

sepavloff (Serge Pavlov)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 13 2013, 7:26 AM (358 w, 2 d)

Recent Activity

Yesterday

sepavloff updated the diff for D65994: Extended FPOptions with new attributes.

Rebased the patch

Thu, Jan 23, 7:07 AM · Restricted Project
sepavloff updated the diff for D69562: Mapping of FP operations to constrained intrinsics.

Rebased patch

Thu, Jan 23, 5:17 AM · Restricted Project

Tue, Jan 21

sepavloff added a comment to D72841: [RFC] Add support for pragma float_control, to control precision and exception behavior at the source level.

I don't see tests for correctness of the pragma stack (pragma float_control(... push), pragma float_control(pop)). Can you add them?

Tue, Jan 21, 11:57 PM · Restricted Project, Restricted Project

Mon, Jan 20

sepavloff added inline comments to D72841: [RFC] Add support for pragma float_control, to control precision and exception behavior at the source level.
Mon, Jan 20, 10:43 PM · Restricted Project, Restricted Project

Sat, Jan 18

sepavloff updated the diff for D72930: [FEnv] Constfold some unary constrained operations.

Changed rounding to nearest from roundTiesToAway to roundTiesToEven

Sat, Jan 18, 8:53 AM · Restricted Project
sepavloff added a comment to D72930: [FEnv] Constfold some unary constrained operations.

Andrew, Craig, thank you for explanations!

Sat, Jan 18, 8:52 AM · Restricted Project

Fri, Jan 17

sepavloff added inline comments to D72930: [FEnv] Constfold some unary constrained operations.
Fri, Jan 17, 11:30 AM · Restricted Project
sepavloff added inline comments to D72930: [FEnv] Constfold some unary constrained operations.
Fri, Jan 17, 9:34 AM · Restricted Project
sepavloff added inline comments to D72841: [RFC] Add support for pragma float_control, to control precision and exception behavior at the source level.
Fri, Jan 17, 9:15 AM · Restricted Project, Restricted Project
sepavloff created D72930: [FEnv] Constfold some unary constrained operations.
Fri, Jan 17, 8:34 AM · Restricted Project

Thu, Jan 16

sepavloff added inline comments to D72841: [RFC] Add support for pragma float_control, to control precision and exception behavior at the source level.
Thu, Jan 16, 10:44 PM · Restricted Project, Restricted Project

Thu, Dec 26

sepavloff updated the diff for D69272: Enable '#pragma STDC FENV_ACCESS' in frontend.

Updated patch

Thu, Dec 26, 11:56 PM · Restricted Project
sepavloff retitled D69272: Enable '#pragma STDC FENV_ACCESS' in frontend from Restricted variant of '#pragma STDC FENV_ACCESS' to Enable '#pragma STDC FENV_ACCESS' in frontend.
Thu, Dec 26, 11:56 PM · Restricted Project

Dec 23 2019

sepavloff added a comment to D69798: Implement inlining of strictfp functions.
In D69798#1794921, @kpn wrote:
In D69798#1793237, @kpn wrote:

If FENV_ACCESS is ON and a function is called that expects it to be OFF then isn't that just plain undefined behavior? Unless it was changed since C99 I don't see how this is the compiler's problem to solve. And the compiler really shouldn't be changing the FP environment implicitly just because an arbitrary function was called, or we fell out of an FENV_ACCESS=ON scope, or whatever.

This is a matter of convention. If it is a user responsibility to call only 'proper' functions, FP state switch is not required. It however could be a fragile solution, because in complex programs it is hard to guarantee that non of the call recursively does not imply default FP environment. The safer solution is to save/restore the environment in unclear cases, and let backend to optimize out unnecessary calls.

It _is_ the responsibility of the user to not call problematic functions. That _is_ the current convention. Yes, it may be fragile, but that's still the user's problem to solve. And the compiler can't know when the calls aren't needed because that information about functions in other TU simply isn't available. Plus, there are cases where functions are compiled with the #pragma and are expecting to be called with a non-default FP environment, but they don't change the environment themselves. So having the compiler insert calls to change the environment before calling would be an error. It's a mistake to trade off a set of potential errors caused by the programmer in exchange for a set of problems caused by the compiler.

Dec 23 2019, 8:57 AM · Restricted Project
sepavloff added a comment to D71742: Added intrinsics for access to FP environment.
In D71742#1794901, @kpn wrote:
In D71742#1793243, @kpn wrote:

I don't see the need. Changing the FP environment in a mixed environment program is the responsibility of the programmer, and standard calls already exist for this.

This is about inlining. In the code like this:

double f1(double x, double y) {
  return x + y;
}
double f2(double x, double y) {
  #pragma STDC FENV_ACCESS ON
  ...
  return f1(x, y);
}

compiler might inline call to f1 in f2. However the inlined function f1 expects default FP environment but is called in some other one.

Nothing here changes my statement. The compiler does _not_ change the FP environment because of the #pragma. So f1() here would behave the same whether it was inlined or not.

Dec 23 2019, 8:48 AM · Restricted Project

Dec 22 2019

sepavloff added a comment to D69798: Implement inlining of strictfp functions.
In D69798#1793237, @kpn wrote:

When function that uses default FP environment is inlined into strictfp function, code of the former will be executed in the FP environment set in the strictfp function. To fix this behavior the FP environment should be saved upon entry to the inlined function, FP environment reset to default state, and the saved state must be restored upon leaving the inlined function.

So if the function is inlined it would use the reset state, but if it doesn't get inlined it would use the caller's state. Doesn't that mean whether or not the compiler inlines the function changes the behavior of the program?

It is so now. If a code in which #pargma STDC FENV_ACCESS ON acts calls an external function, it would be executed in caller's FP environment. This is wrong if the callee expects default one. We could put get_fenv, reset_fenv and set_fenv, introduced in D71742, around all calls, unless the called function has strictfp attribute, or we know that it does not use FP operation. It however could create unneeded code, which is bad for performance. We need to elaborate proper solution.

If FENV_ACCESS is ON and a function is called that expects it to be OFF then isn't that just plain undefined behavior? Unless it was changed since C99 I don't see how this is the compiler's problem to solve. And the compiler really shouldn't be changing the FP environment implicitly just because an arbitrary function was called, or we fell out of an FENV_ACCESS=ON scope, or whatever.

Dec 22 2019, 10:14 PM · Restricted Project
sepavloff added a comment to D71742: Added intrinsics for access to FP environment.
In D71742#1793243, @kpn wrote:

I don't see the need. Changing the FP environment in a mixed environment program is the responsibility of the programmer, and standard calls already exist for this.

Dec 22 2019, 9:54 PM · Restricted Project
sepavloff added a comment to D69272: Enable '#pragma STDC FENV_ACCESS' in frontend.

@hfinkel proposed to use outlining to extract a block with the #pragma to separate function. It could be a basis for a full implementation.

I don't think outlining is a reasonable approach. Outlining has a *lot* of other performance consequences, and we'd have to support arbitrary control flow (e.g. goto) in and out of the outlined function, which adds a lot of frontend complexity in pursuit of something that ought be handled at the optimizer level.

Dec 22 2019, 9:36 PM · Restricted Project

Dec 20 2019

sepavloff added a comment to D69272: Enable '#pragma STDC FENV_ACCESS' in frontend.
In D69272#1792877, @kpn wrote:

My understanding of this patch is that it only allows the #pragma at the top of each function. It doesn't allow it in blocks inside the function. So if a function has a block inside it that uses strict FP the patch doesn't change the rest of the function to use constrained FP with the settings like you said. And my question was asking if there was a way forward with this patch to a full implementation.

Dec 20 2019, 8:39 AM · Restricted Project
sepavloff added a comment to D69798: Implement inlining of strictfp functions.

When function that uses default FP environment is inlined into strictfp function, code of the former will be executed in the FP environment set in the strictfp function. To fix this behavior the FP environment should be saved upon entry to the inlined function, FP environment reset to default state, and the saved state must be restored upon leaving the inlined function.

So if the function is inlined it would use the reset state, but if it doesn't get inlined it would use the caller's state. Doesn't that mean whether or not the compiler inlines the function changes the behavior of the program?

Dec 20 2019, 8:29 AM · Restricted Project

Dec 19 2019

sepavloff planned changes to D69798: Implement inlining of strictfp functions.

When function that uses default FP environment is inlined into strictfp function, code of the former will be executed in the FP environment set in the strictfp function. To fix this behavior the FP environment should be saved upon entry to the inlined function, FP environment reset to default state, and the saved state must be restored upon leaving the inlined function.

Dec 19 2019, 11:03 PM · Restricted Project
sepavloff added a parent revision for D69798: Implement inlining of strictfp functions: D71742: Added intrinsics for access to FP environment.
Dec 19 2019, 11:03 PM · Restricted Project
sepavloff added a child revision for D71742: Added intrinsics for access to FP environment: D69798: Implement inlining of strictfp functions.
Dec 19 2019, 11:03 PM · Restricted Project
sepavloff created D71742: Added intrinsics for access to FP environment.
Dec 19 2019, 10:53 PM · Restricted Project
sepavloff added a child revision for D71741: Add size of FP environment to DataLayout: D71742: Added intrinsics for access to FP environment.
Dec 19 2019, 10:53 PM · Restricted Project
sepavloff added a parent revision for D71742: Added intrinsics for access to FP environment: D71741: Add size of FP environment to DataLayout.
Dec 19 2019, 10:53 PM · Restricted Project
sepavloff created D71741: Add size of FP environment to DataLayout.
Dec 19 2019, 10:23 PM · Restricted Project

Nov 20 2019

sepavloff committed rGea8678d1c78e: Move floating point related entities to namespace level (authored by sepavloff).
Move floating point related entities to namespace level
Nov 20 2019, 4:14 AM

Nov 19 2019

sepavloff committed rG0c50c0b0552e: [FEnv] File with properties of constrained intrinsics (authored by sepavloff).
[FEnv] File with properties of constrained intrinsics
Nov 19 2019, 10:37 PM
sepavloff closed D69887: [FEnv] File with properties of constrained intrinsics.
Nov 19 2019, 10:37 PM · Restricted Project
sepavloff updated the diff for D69887: [FEnv] File with properties of constrained intrinsics.

Updated patch according to reviewer's notes

Nov 19 2019, 4:28 AM · Restricted Project

Nov 18 2019

sepavloff added a comment to rGe6584b2b7b2d: Move floating point related entities to namespace level.

I am going to recommit this patch without changes that intersect with "Add support for options -frounding-math, ftrapping-math…". If it is undesirable for some reason, please let me know.

Nov 18 2019, 10:03 PM

Nov 15 2019

sepavloff committed rGe6584b2b7b2d: Move floating point related entities to namespace level (authored by sepavloff).
Move floating point related entities to namespace level
Nov 15 2019, 4:58 AM
sepavloff closed D69552: Move floating point related entities to namespace level.
Nov 15 2019, 4:58 AM · Restricted Project, Restricted Project

Nov 13 2019

sepavloff added inline comments to D69798: Implement inlining of strictfp functions.
Nov 13 2019, 9:23 AM · Restricted Project
sepavloff updated the diff for D69798: Implement inlining of strictfp functions.

Updated patch

Nov 13 2019, 8:46 AM · Restricted Project

Nov 11 2019

sepavloff updated the diff for D69798: Implement inlining of strictfp functions.

Updated patch

Nov 11 2019, 9:45 AM · Restricted Project
sepavloff updated the diff for D69887: [FEnv] File with properties of constrained intrinsics.

Updated patch

Nov 11 2019, 3:12 AM · Restricted Project

Nov 7 2019

sepavloff added a parent revision for D69562: Mapping of FP operations to constrained intrinsics: D69887: [FEnv] File with properties of constrained intrinsics.
Nov 7 2019, 4:28 AM · Restricted Project
sepavloff added inline comments to D69562: Mapping of FP operations to constrained intrinsics.
Nov 7 2019, 4:28 AM · Restricted Project
sepavloff added a child revision for D69887: [FEnv] File with properties of constrained intrinsics: D69562: Mapping of FP operations to constrained intrinsics.
Nov 7 2019, 4:28 AM · Restricted Project
sepavloff updated the diff for D69562: Mapping of FP operations to constrained intrinsics.

Updated patch

Nov 7 2019, 3:14 AM · Restricted Project

Nov 6 2019

sepavloff updated the diff for D69552: Move floating point related entities to namespace level.

Updated patch according to reviewer's notes

Nov 6 2019, 11:28 PM · Restricted Project, Restricted Project
sepavloff added a comment to D69552: Move floating point related entities to namespace level.

I think these enums should go into the same header as added in D69598

Nov 6 2019, 9:27 PM · Restricted Project, Restricted Project
sepavloff updated the diff for D69552: Move floating point related entities to namespace level.

Updated patch according to reviewers notes

Nov 6 2019, 9:00 PM · Restricted Project, Restricted Project
sepavloff added a comment to D69887: [FEnv] File with properties of constrained intrinsics.

I really like that approach. Unfortunately, this part of it does sort of partially revert one of the changes I recently made:

if (Opcode == ISD::STRICT_FP_ROUND)
  Opers.push_back(
      DAG.getTargetConstant(0, sdl, TLI.getPointerTy(DAG.getDataLayout())));

Actually it was moved below in the same file to the line 6900.

What I meant was: originally, there were two IR opcode checks, a first check (switch statement) to determine the DAG opcode, and a second check (just one "if" now, but needs to become another switch with the comparison patch) to determine extra DAG operands. My recent patch merged the two into a single opcode check (switch statement) -- and this patch again creates two separate checks.

Nov 6 2019, 7:59 AM · Restricted Project
sepavloff added a comment to D69562: Mapping of FP operations to constrained intrinsics.
In D69562#1732337, @kpn wrote:

The IRBuilder handles mapping non-constrained operations to constrained operations already. So a front-end just needs to enable strict mode in the IRBuilder and most everything "just works". And clang uses the IRBuilder, so we're good there. Are you working on a front-end that doesn't use the IRBuilder?

Nov 6 2019, 6:26 AM · Restricted Project
sepavloff added a comment to D69887: [FEnv] File with properties of constrained intrinsics.

I really like that approach. Unfortunately, this part of it does sort of partially revert one of the changes I recently made:

if (Opcode == ISD::STRICT_FP_ROUND)
  Opers.push_back(
      DAG.getTargetConstant(0, sdl, TLI.getPointerTy(DAG.getDataLayout())));
Nov 6 2019, 6:08 AM · Restricted Project
sepavloff updated the diff for D69552: Move floating point related entities to namespace level.

Updated patch according to reviewers notes

Nov 6 2019, 5:48 AM · Restricted Project, Restricted Project
sepavloff created D69887: [FEnv] File with properties of constrained intrinsics.
Nov 6 2019, 3:53 AM · Restricted Project

Nov 4 2019

sepavloff added a parent revision for D69272: Enable '#pragma STDC FENV_ACCESS' in frontend: D69798: Implement inlining of strictfp functions.
Nov 4 2019, 4:11 AM · Restricted Project
sepavloff added a child revision for D69798: Implement inlining of strictfp functions: D69272: Enable '#pragma STDC FENV_ACCESS' in frontend.
Nov 4 2019, 4:11 AM · Restricted Project
sepavloff updated the diff for D69272: Enable '#pragma STDC FENV_ACCESS' in frontend.

Removed diagnostics on inline functions

Nov 4 2019, 4:11 AM · Restricted Project
sepavloff added a child revision for D69562: Mapping of FP operations to constrained intrinsics: D69798: Implement inlining of strictfp functions.
Nov 4 2019, 3:11 AM · Restricted Project
sepavloff added a parent revision for D69798: Implement inlining of strictfp functions: D69562: Mapping of FP operations to constrained intrinsics.
Nov 4 2019, 3:11 AM · Restricted Project
sepavloff created D69798: Implement inlining of strictfp functions.
Nov 4 2019, 2:59 AM · Restricted Project

Oct 30 2019

sepavloff updated the diff for D69562: Mapping of FP operations to constrained intrinsics.

Fixed typo

Oct 30 2019, 3:27 AM · Restricted Project

Oct 29 2019

sepavloff added a parent revision for D69562: Mapping of FP operations to constrained intrinsics: D69552: Move floating point related entities to namespace level.
Oct 29 2019, 6:25 AM · Restricted Project
sepavloff created D69562: Mapping of FP operations to constrained intrinsics.
Oct 29 2019, 6:25 AM · Restricted Project
sepavloff added a child revision for D69552: Move floating point related entities to namespace level: D69562: Mapping of FP operations to constrained intrinsics.
Oct 29 2019, 6:25 AM · Restricted Project, Restricted Project
sepavloff created D69552: Move floating point related entities to namespace level.
Oct 29 2019, 12:30 AM · Restricted Project, Restricted Project

Oct 22 2019

sepavloff added inline comments to D69272: Enable '#pragma STDC FENV_ACCESS' in frontend.
Oct 22 2019, 10:09 AM · Restricted Project
sepavloff added a comment to D69272: Enable '#pragma STDC FENV_ACCESS' in frontend.
In D69272#1717967, @kpn wrote:

Baking into the front end the fact that the backend implementation is not yet complete doesn't strike me as a good idea.

Oct 22 2019, 9:45 AM · Restricted Project
sepavloff added a comment to D69272: Enable '#pragma STDC FENV_ACCESS' in frontend.

Try to organize replies for better references.

Oct 22 2019, 12:30 AM · Restricted Project

Oct 21 2019

sepavloff created D69272: Enable '#pragma STDC FENV_ACCESS' in frontend.
Oct 21 2019, 10:55 AM · Restricted Project

Oct 10 2019

sepavloff committed rL374508: Request commit access for sepavloff.
Request commit access for sepavloff
Oct 10 2019, 9:00 PM

Oct 2 2019

sepavloff committed rG110a24fb44cf: Fix driver tests when `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` is `ON` (authored by sepavloff).
Fix driver tests when `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` is `ON`
Oct 2 2019, 9:52 PM
sepavloff committed rL373565: Fix driver tests when `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` is `ON`.
Fix driver tests when `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` is `ON`
Oct 2 2019, 9:52 PM
sepavloff closed D66981: Fix driver tests when `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` is `ON`.
Oct 2 2019, 9:52 PM · Restricted Project, Restricted Project

Sep 28 2019

sepavloff committed rG4bc056271992: Driver tests: set `--sysroot=""` to support clang with `DEFAULT_SYSROOT` (authored by sepavloff).
Driver tests: set `--sysroot=""` to support clang with `DEFAULT_SYSROOT`
Sep 28 2019, 5:20 AM
sepavloff committed rL373147: Driver tests: set `--sysroot=""` to support clang with `DEFAULT_SYSROOT`.
Driver tests: set `--sysroot=""` to support clang with `DEFAULT_SYSROOT`
Sep 28 2019, 5:20 AM
sepavloff closed D66834: Driver tests: set `--sysroot=""` to support clang with `DEFAULT_SYSROOT`.
Sep 28 2019, 5:20 AM · Restricted Project, Restricted Project

Sep 27 2019

sepavloff accepted D66834: Driver tests: set `--sysroot=""` to support clang with `DEFAULT_SYSROOT`.

I think that this is pretty easy to forget. Fortunately, last argument wins. Why not sink this into the %clang substitution in lit? That ensures that we run with an empty sysroot and then when the test needs to adjust the sysroot, it can do so explicitly.

I've just tried to do it, but unfortunately some tests are failing, for example, Driver/cc1-response-files.c. The problem is that %clang is expanded to /path/to/clang --sysroot=, but the succeeding flags (such as -cc1) may be incompatible with --sysroot.

Does the issue manifests itself with -cc1 only? We usually use %clang_cc1 in such cases, so probably those tests require update.

Some Driver tests take a list of arguments from a file (for example clang/test/Driver/cc1-response-files.c), so we probably cannot use %clang_cc1 there

Sep 27 2019, 7:48 AM · Restricted Project, Restricted Project

Sep 26 2019

sepavloff added a comment to D66834: Driver tests: set `--sysroot=""` to support clang with `DEFAULT_SYSROOT`.

I think that this is pretty easy to forget. Fortunately, last argument wins. Why not sink this into the %clang substitution in lit? That ensures that we run with an empty sysroot and then when the test needs to adjust the sysroot, it can do so explicitly.

I've just tried to do it, but unfortunately some tests are failing, for example, Driver/cc1-response-files.c. The problem is that %clang is expanded to /path/to/clang --sysroot=, but the succeeding flags (such as -cc1) may be incompatible with --sysroot.

Sep 26 2019, 9:03 PM · Restricted Project, Restricted Project

Sep 17 2019

sepavloff updated the diff for D67626: [IR] Merge metadata manipulation code into Value.

Restrict types allowed to have metadata

Sep 17 2019, 8:42 AM · Restricted Project

Sep 16 2019

sepavloff created D67626: [IR] Merge metadata manipulation code into Value.
Sep 16 2019, 9:33 AM · Restricted Project

Aug 16 2019

sepavloff added inline comments to D65997: Add options rounding and exceptions to pragma fp.
Aug 16 2019, 12:09 AM · Restricted Project

Aug 15 2019

sepavloff added a comment to D66092: [CodeGen] Generate constrained fp intrinsics depending on FPOptions.

The thing that makes the IR semantically incomplete is that there is nothing there to prevent incorrect code motion of the non-constrained operations. Consider this case:

if (someCondition) {
  #pragma clang fp rounding(downward)
  fesetround(FE_DOWNWARD);
  x = y/z;
  fesetround(FE_TONEAREST);
}
a = b/c;

If you generate a regular fdiv instruction for the 'a = b/c;' statement, there is nothing that would prevent it from being hoisted above the call to fesetround() and so it might be rounded incorrectly.

Aug 15 2019, 11:00 PM · Restricted Project
sepavloff added a comment to D66092: [CodeGen] Generate constrained fp intrinsics depending on FPOptions.
In D66092#1625380, @kpn wrote:

Also, if any constrained intrinsics are used in a function then the entire function needs to be constrained. Is this handled anywhere?

If we decided to make the entire function constrained, it should be done somewhere in IR transformations, because inlining may mix function bodies with different fp options.

Kevin is right. We have decided that if constrained intrinsics are used anywhere in a function they must be used throughout the function. Otherwise, there would be nothing to prevent the non-constrained FP operations from migrating across constrained operations and the handling could get botched. The "relaxed" arguments ("round.tonearest" and "fpexcept.ignore") should be used where the default settings would apply. The front end should also be setting the "strictfp" attribute on calls within a constrained scope and, I think, functions that contain constrained intrinsics.

We will need to teach the inliner to enforce this rule if it isn't already doing so, but if things aren't correct coming out of the front end an incorrect optimization could already happen before we get to the inliner. We always rely on the front end producing IR with fully correct semantics.

Aug 15 2019, 1:39 AM · Restricted Project
sepavloff added inline comments to D65997: Add options rounding and exceptions to pragma fp.
Aug 15 2019, 12:10 AM · Restricted Project

Aug 14 2019

sepavloff added inline comments to D66078: Added RAII object for authomatic restore of fp state.
Aug 14 2019, 11:58 PM · Restricted Project
sepavloff updated the diff for D66078: Added RAII object for authomatic restore of fp state.

Updated patch

Aug 14 2019, 11:56 PM · Restricted Project
sepavloff added inline comments to D65997: Add options rounding and exceptions to pragma fp.
Aug 14 2019, 8:40 AM · Restricted Project
sepavloff updated the diff for D65997: Add options rounding and exceptions to pragma fp.

Updated patch

Aug 14 2019, 8:40 AM · Restricted Project

Aug 13 2019

sepavloff added a comment to D66092: [CodeGen] Generate constrained fp intrinsics depending on FPOptions.
In D66092#1625380, @kpn wrote:

Does this work for anything that uses TreeTransform, like C++ templates?

Added such tests.

Aug 13 2019, 9:38 AM · Restricted Project
sepavloff updated the diff for D66092: [CodeGen] Generate constrained fp intrinsics depending on FPOptions.

Added tests for 'pragma clang fp' in template instantiations

Aug 13 2019, 9:34 AM · Restricted Project
sepavloff added inline comments to D66078: Added RAII object for authomatic restore of fp state.
Aug 13 2019, 8:54 AM · Restricted Project

Aug 12 2019

sepavloff committed rG2a09b9acfb6f: Added unit tests to check supported rounding modes (authored by sepavloff).
Added unit tests to check supported rounding modes
Aug 12 2019, 10:22 PM
sepavloff committed rL368650: Added unit tests to check supported rounding modes.
Added unit tests to check supported rounding modes
Aug 12 2019, 10:21 PM
sepavloff closed D66073: Added unit tests to check supported rounding modes.
Aug 12 2019, 10:21 PM · Restricted Project
sepavloff added a comment to D65994: Extended FPOptions with new attributes.

Since this setting changes IR output, you should write a test that emits IR for source code and tests that you get the right IR output.

Aug 12 2019, 8:48 PM · Restricted Project
sepavloff updated the diff for D65994: Extended FPOptions with new attributes.

Updated patch

Aug 12 2019, 8:35 PM · Restricted Project
sepavloff added inline comments to D65997: Add options rounding and exceptions to pragma fp.
Aug 12 2019, 6:51 PM · Restricted Project
sepavloff updated the diff for D65997: Add options rounding and exceptions to pragma fp.

Updated patch

Aug 12 2019, 6:47 PM · Restricted Project
sepavloff added parent revisions for D66092: [CodeGen] Generate constrained fp intrinsics depending on FPOptions: D66073: Added unit tests to check supported rounding modes, D66078: Added RAII object for authomatic restore of fp state, D65997: Add options rounding and exceptions to pragma fp.
Aug 12 2019, 9:30 AM · Restricted Project
sepavloff added a child revision for D66073: Added unit tests to check supported rounding modes: D66092: [CodeGen] Generate constrained fp intrinsics depending on FPOptions.
Aug 12 2019, 9:30 AM · Restricted Project
sepavloff added a child revision for D66078: Added RAII object for authomatic restore of fp state: D66092: [CodeGen] Generate constrained fp intrinsics depending on FPOptions.
Aug 12 2019, 9:30 AM · Restricted Project
sepavloff added a child revision for D65997: Add options rounding and exceptions to pragma fp: D66092: [CodeGen] Generate constrained fp intrinsics depending on FPOptions.
Aug 12 2019, 9:30 AM · Restricted Project
sepavloff added a parent revision for D65997: Add options rounding and exceptions to pragma fp: D65994: Extended FPOptions with new attributes.
Aug 12 2019, 9:28 AM · Restricted Project
sepavloff added a child revision for D65994: Extended FPOptions with new attributes: D65997: Add options rounding and exceptions to pragma fp.
Aug 12 2019, 9:28 AM · Restricted Project