Page MenuHomePhabricator

sepavloff (Serge Pavlov)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 13 2013, 7:26 AM (335 w, 4 d)

Recent Activity

Fri, Aug 16

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

Thu, Aug 15

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.

Thu, Aug 15, 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.

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

Wed, Aug 14

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

Updated patch

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

Updated patch

Wed, Aug 14, 8:40 AM · Restricted Project

Tue, Aug 13

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.

Tue, Aug 13, 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

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

Mon, Aug 12

sepavloff committed rG2a09b9acfb6f: Added unit tests to check supported rounding modes (authored by sepavloff).
Added unit tests to check supported rounding modes
Mon, Aug 12, 10:22 PM
sepavloff committed rL368650: Added unit tests to check supported rounding modes.
Added unit tests to check supported rounding modes
Mon, Aug 12, 10:21 PM
sepavloff closed D66073: Added unit tests to check supported rounding modes.
Mon, Aug 12, 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.

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

Updated patch

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

Updated patch

Mon, Aug 12, 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.
Mon, Aug 12, 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.
Mon, Aug 12, 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.
Mon, Aug 12, 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.
Mon, Aug 12, 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.
Mon, Aug 12, 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.
Mon, Aug 12, 9:28 AM · Restricted Project
sepavloff created D66092: [CodeGen] Generate constrained fp intrinsics depending on FPOptions.
Mon, Aug 12, 9:26 AM · Restricted Project
sepavloff created D66078: Added RAII object for authomatic restore of fp state.
Mon, Aug 12, 3:38 AM · Restricted Project
sepavloff created D66073: Added unit tests to check supported rounding modes.
Mon, Aug 12, 1:07 AM · Restricted Project

Fri, Aug 9

sepavloff created D65997: Add options rounding and exceptions to pragma fp.
Fri, Aug 9, 12:29 AM · Restricted Project

Thu, Aug 8

sepavloff created D65994: Extended FPOptions with new attributes.
Thu, Aug 8, 11:14 PM · Restricted Project

Sun, Aug 4

sepavloff committed rG037861b23092: [Parser] Emit descriptive diagnostic for misplaced pragma (authored by sepavloff).
[Parser] Emit descriptive diagnostic for misplaced pragma
Sun, Aug 4, 3:11 AM
sepavloff committed rL367779: [Parser] Emit descriptive diagnostic for misplaced pragma.
[Parser] Emit descriptive diagnostic for misplaced pragma
Sun, Aug 4, 3:08 AM
sepavloff closed D64932: [Parser] Emit descriptive diagnostic for misplaced pragma.
Sun, Aug 4, 3:08 AM · Restricted Project, Restricted Project

Sat, Aug 3

sepavloff committed rGfcb6123d05c6: Use switch instead of series of comparisons (authored by sepavloff).
Use switch instead of series of comparisons
Sat, Aug 3, 9:33 AM
sepavloff committed rL367759: Use switch instead of series of comparisons.
Use switch instead of series of comparisons
Sat, Aug 3, 9:32 AM
sepavloff closed D65670: Use switch instead of series of comparisons.
Sat, Aug 3, 9:32 AM · Restricted Project, Restricted Project

Fri, Aug 2

sepavloff added a comment to D65405: [Parser] Use special definition for pragma annotations.

LGTM, although I don't think it would be ridiculous to make this an inline function definition like isAnnotation.

Fri, Aug 2, 11:41 AM · Restricted Project, Restricted Project
sepavloff created D65670: Use switch instead of series of comparisons.
Fri, Aug 2, 11:38 AM · Restricted Project, Restricted Project
sepavloff added inline comments to D64932: [Parser] Emit descriptive diagnostic for misplaced pragma.
Fri, Aug 2, 5:46 AM · Restricted Project, Restricted Project
sepavloff updated the diff for D64932: [Parser] Emit descriptive diagnostic for misplaced pragma.

Updated patch

Fri, Aug 2, 5:43 AM · Restricted Project, Restricted Project

Thu, Aug 1

sepavloff committed rG3c26163d1a18: [Parser] Use special definition for pragma annotations (authored by sepavloff).
[Parser] Use special definition for pragma annotations
Thu, Aug 1, 8:17 AM
sepavloff committed rL367575: [Parser] Use special definition for pragma annotations.
[Parser] Use special definition for pragma annotations
Thu, Aug 1, 8:14 AM
sepavloff closed D65405: [Parser] Use special definition for pragma annotations.
Thu, Aug 1, 8:14 AM · Restricted Project, Restricted Project
sepavloff committed rG0c50319927b5: [Parser] Change parameter type from int to enum (authored by sepavloff).
[Parser] Change parameter type from int to enum
Thu, Aug 1, 4:50 AM
sepavloff committed rL367545: [Parser] Change parameter type from int to enum.
[Parser] Change parameter type from int to enum
Thu, Aug 1, 4:46 AM
sepavloff closed D65406: [Parser] Change parameter type from int to enum.
Thu, Aug 1, 4:46 AM · Restricted Project, Restricted Project

Mon, Jul 29

sepavloff added parent revisions for D64932: [Parser] Emit descriptive diagnostic for misplaced pragma: D65406: [Parser] Change parameter type from int to enum, D65405: [Parser] Use special definition for pragma annotations.
Mon, Jul 29, 10:09 AM · Restricted Project, Restricted Project
sepavloff added a child revision for D65405: [Parser] Use special definition for pragma annotations: D64932: [Parser] Emit descriptive diagnostic for misplaced pragma.
Mon, Jul 29, 10:09 AM · Restricted Project, Restricted Project
sepavloff added a child revision for D65406: [Parser] Change parameter type from int to enum: D64932: [Parser] Emit descriptive diagnostic for misplaced pragma.
Mon, Jul 29, 10:09 AM · Restricted Project, Restricted Project
sepavloff updated the diff for D64932: [Parser] Emit descriptive diagnostic for misplaced pragma.

Updated patch

Mon, Jul 29, 10:09 AM · Restricted Project, Restricted Project
sepavloff created D65406: [Parser] Change parameter type from int to enum.
Mon, Jul 29, 10:04 AM · Restricted Project, Restricted Project
sepavloff created D65405: [Parser] Use special definition for pragma annotations.
Mon, Jul 29, 10:01 AM · Restricted Project, Restricted Project

Fri, Jul 26

sepavloff added a comment to D64932: [Parser] Emit descriptive diagnostic for misplaced pragma.

Ping.

Fri, Jul 26, 10:14 AM · Restricted Project, Restricted Project

Jul 18 2019

sepavloff created D64932: [Parser] Emit descriptive diagnostic for misplaced pragma.
Jul 18 2019, 9:47 AM · Restricted Project, Restricted Project

Jul 9 2019

Herald updated subscribers of D51372: FENV_ACCESS support for libm-style constrained intrinsics.
Jul 9 2019, 10:10 AM

May 23 2019

sepavloff committed rGed595e8627b3: [AArch64] Add nvcast patterns for v2f32 -> v1f64 (authored by sepavloff).
[AArch64] Add nvcast patterns for v2f32 -> v1f64
May 23 2019, 6:19 PM
sepavloff committed rL361584: [AArch64] Add nvcast patterns for v2f32 -> v1f64.
[AArch64] Add nvcast patterns for v2f32 -> v1f64
May 23 2019, 6:18 PM
sepavloff closed D62285: [AArch64] Add nvcast patterns for v2f32 -> v1f64.
May 23 2019, 6:17 PM · Restricted Project

May 22 2019

sepavloff created D62285: [AArch64] Add nvcast patterns for v2f32 -> v1f64.
May 22 2019, 10:27 PM · Restricted Project

Dec 6 2018

sepavloff committed rC348473: Diagnose friend function template redefinitions..
Diagnose friend function template redefinitions.
Dec 6 2018, 1:39 AM
sepavloff committed rL348473: Diagnose friend function template redefinitions..
Diagnose friend function template redefinitions.
Dec 6 2018, 1:39 AM
sepavloff closed D21508: Diagnose friend function template redefinitions.
Dec 6 2018, 1:39 AM

Dec 4 2018

sepavloff updated the diff for D21508: Diagnose friend function template redefinitions.

Updated patch

Dec 4 2018, 10:40 PM

Aug 14 2018

sepavloff added a comment to D21767: Fix instantiation of friend function templates.

Shouldn't there just be a link in the AST from the instantiated FunctionTemplateDecl back to the original pattern? Maybe a generalization of InstantiatedFromMember in RedeclarablableTemplateDecl?

Aug 14 2018, 10:31 AM

Aug 13 2018

sepavloff updated the diff for D21508: Diagnose friend function template redefinitions.

Rebased the patch

Aug 13 2018, 1:09 AM

Aug 12 2018

sepavloff added reviewers for D21767: Fix instantiation of friend function templates: rjmccall, faisalv, fpichet.
Aug 12 2018, 11:32 PM
sepavloff updated the diff for D21767: Fix instantiation of friend function templates.

Rebased the patch, it is still actual.

Aug 12 2018, 11:31 PM

Aug 8 2018

sepavloff abandoned D24649: Treat instantiations of variable templates as definitions.

Fixed in r319605.

Aug 8 2018, 12:03 AM

Aug 7 2018

sepavloff removed a reviewer for D24649: Treat instantiations of variable templates as definitions: rsmith.
Aug 7 2018, 10:06 PM

Jul 28 2018

sepavloff committed rC338199: [UBSan] Strengthen pointer checks in 'new' expressions.
[UBSan] Strengthen pointer checks in 'new' expressions
Jul 28 2018, 8:33 AM
sepavloff committed rL338199: [UBSan] Strengthen pointer checks in 'new' expressions.
[UBSan] Strengthen pointer checks in 'new' expressions
Jul 28 2018, 8:33 AM
sepavloff closed D49589: [UBSan] Strengthen pointer checks in 'new' expressions.
Jul 28 2018, 8:33 AM

Jul 27 2018

sepavloff added a comment to D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

@rjmccall Thank you!

Jul 27 2018, 10:36 AM
sepavloff updated the diff for D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Updated patch

Jul 27 2018, 6:05 AM

Jul 26 2018

sepavloff updated the diff for D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Updated patch

Jul 26 2018, 9:50 PM
sepavloff added a comment to D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Also, please remember that your analysis is not the only thing happening in the compiler. isChecked is not a meaningful name taken out of context.

Jul 26 2018, 10:13 AM
sepavloff updated the diff for D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Updated patch

Jul 26 2018, 10:04 AM

Jul 25 2018

sepavloff updated the diff for D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Updated patch

Jul 25 2018, 10:29 AM

Jul 24 2018

sepavloff added inline comments to D49589: [UBSan] Strengthen pointer checks in 'new' expressions.
Jul 24 2018, 12:25 PM
sepavloff updated the diff for D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Updated patch

Jul 24 2018, 12:09 PM

Jul 23 2018

sepavloff added a comment to D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Did you consider dividing the patch into two separate changes to solve the two described issues independently?

Jul 23 2018, 1:48 AM

Jul 19 2018

sepavloff created D49589: [UBSan] Strengthen pointer checks in 'new' expressions.
Jul 19 2018, 10:24 PM

Jul 4 2018

sepavloff committed rCXXA336312: [demangler] Avoid alignment warning.
[demangler] Avoid alignment warning
Jul 4 2018, 11:31 PM
sepavloff committed rL336312: [demangler] Avoid alignment warning.
[demangler] Avoid alignment warning
Jul 4 2018, 11:29 PM
sepavloff committed rL336311: [demangler] Avoid alignment warning.
[demangler] Avoid alignment warning
Jul 4 2018, 11:27 PM
sepavloff closed D48889: [demangler] Ensure proper alignment in BumpPointerAllocator.
Jul 4 2018, 11:27 PM
sepavloff added inline comments to D48889: [demangler] Ensure proper alignment in BumpPointerAllocator.
Jul 4 2018, 11:25 PM
sepavloff updated the diff for D48889: [demangler] Ensure proper alignment in BumpPointerAllocator.

Updated patch

Jul 4 2018, 7:18 AM
sepavloff added a comment to D48889: [demangler] Ensure proper alignment in BumpPointerAllocator.

We don't need 16-byte alignment on MSVC, we only need 8 because alignof(max_align_t) is 8 on that platform, and malloc is required to provide memory that's aligned to that boundary.

Jul 4 2018, 7:17 AM

Jul 3 2018

sepavloff created D48889: [demangler] Ensure proper alignment in BumpPointerAllocator.
Jul 3 2018, 11:51 AM

Jun 8 2018

sepavloff committed rL334344: Use uniform mechanism for OOM errors handling.
Use uniform mechanism for OOM errors handling
Jun 8 2018, 10:24 PM

May 30 2018

sepavloff added a reverting change for rL333506: Use uniform mechanism for OOM errors handling: rL333518: Revert commit 333506.
May 30 2018, 2:05 AM
sepavloff committed rL333518: Revert commit 333506.
Revert commit 333506
May 30 2018, 2:05 AM

May 29 2018

sepavloff committed rL333506: Use uniform mechanism for OOM errors handling.
Use uniform mechanism for OOM errors handling
May 29 2018, 10:17 PM
sepavloff added a reverting change for rL333390: Use uniform mechanism for OOM errors handling: rL333395: Reverted commits 333390, 333391 and 333394.
May 29 2018, 12:10 AM
sepavloff committed rL333395: Reverted commits 333390, 333391 and 333394.
Reverted commits 333390, 333391 and 333394
May 29 2018, 12:10 AM
sepavloff added a reverting change for rL333391: Added system header cstdlib to MemAlloc.h: rL333395: Reverted commits 333390, 333391 and 333394.
May 29 2018, 12:10 AM
sepavloff added a reverting change for rL333394: Added library LLVMSupport to dependencies of LLVMDemangle: rL333395: Reverted commits 333390, 333391 and 333394.
May 29 2018, 12:10 AM

May 28 2018

sepavloff committed rL333394: Added library LLVMSupport to dependencies of LLVMDemangle.
Added library LLVMSupport to dependencies of LLVMDemangle
May 28 2018, 11:53 PM
sepavloff committed rL333391: Added system header cstdlib to MemAlloc.h.
Added system header cstdlib to MemAlloc.h
May 28 2018, 11:08 PM
sepavloff committed rL333390: Use uniform mechanism for OOM errors handling.
Use uniform mechanism for OOM errors handling
May 28 2018, 10:43 PM