Page MenuHomePhabricator

mibintc (Melanie Blower)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 14 2016, 12:37 PM (209 w, 6 d)

Recent Activity

Sat, Nov 7

mibintc committed rGc511963d5adb: [clang] Fix length threshold for MicrosoftMangle md5 hash (authored by mibintc).
[clang] Fix length threshold for MicrosoftMangle md5 hash
Sat, Nov 7, 7:44 AM
mibintc closed D90714: [clang]Fix length threshold for MicrosoftMangle md5 hash.
Sat, Nov 7, 7:44 AM · Restricted Project
mibintc updated the diff for D90714: [clang]Fix length threshold for MicrosoftMangle md5 hash.

I submitted the test improvements separately, i'm going to push this version, thanks all

Sat, Nov 7, 7:44 AM · Restricted Project
mibintc committed rGb0de3f67874a: [clang] Improve Microsoft mangling lit test with dblaikie's suggestions (authored by mibintc).
[clang] Improve Microsoft mangling lit test with dblaikie's suggestions
Sat, Nov 7, 7:34 AM

Fri, Nov 6

mibintc added a comment to D90714: [clang]Fix length threshold for MicrosoftMangle md5 hash.

you're right about the regex syntax. i think the 4088 is over the max repetition count and there's also a problem with balanced. not sure what i did wrong here. if you have a chance to look at this otherwise i'll toil over the weekend, i'm off for the day--cheers. here's what i'm trying now just to see if it would work. can i nest repetition counts?

Fri, Nov 6, 12:35 PM · Restricted Project
mibintc updated the diff for D90714: [clang]Fix length threshold for MicrosoftMangle md5 hash.

Fixed test case according to @dblaikie 's suggestion and input, thanks a lot David, the test case is certainly a lot easier to read and understand now. Anything else?

Fri, Nov 6, 9:00 AM · Restricted Project

Thu, Nov 5

mibintc added a comment to D90714: [clang]Fix length threshold for MicrosoftMangle md5 hash.

I'm sorry, I don't see how to build up an identifier with an arbitrary number of characters using the token pasting, for example an ident with 4095 characters is not a power of 2. I tried pasting together X2048 X1024 X512 etc but that doesn't work
fu.cpp:12:18: error: pasting ")" and "X16" does not give a valid preprocessing token
#define FUN X32(x) ## X16(x)

^

fu.cpp:13:1: note: in expansion of macro ‘FUN’
I want the test case to show the transition between when md5 is not needed and when it's needed, i want to build strings that might not be power of root string. I could add more comments to the test case, perhaps, "the strlen of the Microsoft mangled name is X" for the one case, and "the strlen of ... is X+1" for the other.

Thu, Nov 5, 1:16 PM · Restricted Project
mibintc added a comment to D90714: [clang]Fix length threshold for MicrosoftMangle md5 hash.

Since the same code is used to mangle all these things, probably just test one of them?

Could use macros to stamp out longer names without having to write them out manually?

Thu, Nov 5, 5:22 AM · Restricted Project

Wed, Nov 4

mibintc added a reviewer for D90714: [clang]Fix length threshold for MicrosoftMangle md5 hash: dblaikie.
Wed, Nov 4, 10:48 AM · Restricted Project
mibintc added a comment to D90714: [clang]Fix length threshold for MicrosoftMangle md5 hash.

Test case?

Wed, Nov 4, 10:39 AM · Restricted Project
mibintc updated the diff for D90714: [clang]Fix length threshold for MicrosoftMangle md5 hash.

Add lit test case, based on test case in bug report

Wed, Nov 4, 10:38 AM · Restricted Project

Tue, Nov 3

mibintc requested review of D90714: [clang]Fix length threshold for MicrosoftMangle md5 hash.
Tue, Nov 3, 1:45 PM · Restricted Project

Fri, Oct 30

mibintc committed rG71bf9f07d514: [clang] add fexperimental-strict-floating-point to test cases that fail on arm… (authored by mibintc).
[clang] add fexperimental-strict-floating-point to test cases that fail on arm…
Fri, Oct 30, 7:30 AM
mibintc committed rG13bfd89c4962: [clang][FPEnv] Diagnose Strict FP pragmas if target does not support StrictFP (authored by mibintc).
[clang][FPEnv] Diagnose Strict FP pragmas if target does not support StrictFP
Fri, Oct 30, 6:13 AM
mibintc closed D90316: [FPEnv] Diagnose pragmas FENV_ROUND,_ACCESS and float_control if target does not support StrictFP.
Fri, Oct 30, 6:13 AM · Restricted Project

Thu, Oct 29

mibintc added inline comments to D90316: [FPEnv] Diagnose pragmas FENV_ROUND,_ACCESS and float_control if target does not support StrictFP.
Thu, Oct 29, 12:23 PM · Restricted Project
mibintc updated the diff for D90316: [FPEnv] Diagnose pragmas FENV_ROUND,_ACCESS and float_control if target does not support StrictFP.

respond to @aaron.ballman 's review

Thu, Oct 29, 12:21 PM · Restricted Project

Wed, Oct 28

mibintc accepted D89849: Add option 'exceptions' to pragma clang fp.
Wed, Oct 28, 1:03 PM · Restricted Project
mibintc accepted D90026: [FPEnv] Tests for rounding properties of constant evalution.

The failing unit test reported above, sizes.cpp, looks like it should be an Expected Fail

Wed, Oct 28, 12:43 PM · Restricted Project
mibintc added a comment to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

I agreed with Craig. Emitting constrained intrinsics on an unsupported target may result in problems. It's better to check if it is supported and prevent from the front end.

Wed, Oct 28, 10:16 AM · Restricted Project
mibintc added a comment to D90316: [FPEnv] Diagnose pragmas FENV_ROUND,_ACCESS and float_control if target does not support StrictFP.
In D90316#2359366, @kpn wrote:

I also added "-fexperimental-strict-floating-point" which makes it possible to write tests for a target when bringing up the support on that target. I think it would be confusing for that flag to work on command line arguments but not pragmas.

Wed, Oct 28, 10:14 AM · Restricted Project
mibintc updated the diff for D90316: [FPEnv] Diagnose pragmas FENV_ROUND,_ACCESS and float_control if target does not support StrictFP.

Modified according to @kpn suggestion: if the command line has option fexperimental-strict-floating-point, the float pragmas will not be ignored.

Wed, Oct 28, 10:13 AM · Restricted Project
mibintc requested review of D90316: [FPEnv] Diagnose pragmas FENV_ROUND,_ACCESS and float_control if target does not support StrictFP.
Wed, Oct 28, 9:32 AM · Restricted Project

Tue, Oct 27

mibintc added a comment to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

Actually kludging it by just removing the assert isn't going to work. I'll ping Pengfei to see about developing a patch for this problem.

Tue, Oct 27, 10:37 AM · Restricted Project
mibintc added a comment to D70582: [FPEnv][X86] Constrained FCmp intrinsics enabling on X86.

bug report

Tue, Oct 27, 10:26 AM · Restricted Project
mibintc updated subscribers of D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

Thank you. I don't know the solution but I can remove the assert and create a bug report to have it resolved.

Tue, Oct 27, 9:07 AM · Restricted Project

Sun, Oct 25

mibintc committed rG576d436c828f: Correct LIT test failure detected on buildbot after mibintc committed… (authored by mibintc).
Correct LIT test failure detected on buildbot after mibintc committed…
Sun, Oct 25, 8:11 AM
mibintc committed rG2e204e23911b: [clang] Enable support for #pragma STDC FENV_ACCESS (authored by mibintc).
[clang] Enable support for #pragma STDC FENV_ACCESS
Sun, Oct 25, 7:10 AM
mibintc closed D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.
Sun, Oct 25, 7:10 AM · Restricted Project

Sat, Oct 24

mibintc updated the diff for D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

I updated the test cases, added documentation about constant folding to the UserManual. I'll push the patch tomorrow if I don't hear to the contrary thanks everybody!

Sat, Oct 24, 10:54 AM · Restricted Project

Oct 22 2020

mibintc added inline comments to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.
Oct 22 2020, 2:43 PM · Restricted Project
mibintc added inline comments to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.
Oct 22 2020, 12:27 PM · Restricted Project

Oct 21 2020

mibintc added inline comments to D89849: Add option 'exceptions' to pragma clang fp.
Oct 21 2020, 2:16 PM · Restricted Project
mibintc added inline comments to D89849: Add option 'exceptions' to pragma clang fp.
Oct 21 2020, 5:54 AM · Restricted Project

Oct 20 2020

mibintc updated the diff for D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

I made the change requested by @rsmith to HandleIntToFloatCast, avoiding the check if Info.InConstantContext, then I corrected 2 tests so that -verify matches.

clang/test/CXX/expr/expr.const/p2-0x.cpp
clang/test/Parser/pragma-fenv_access.c
Oct 20 2020, 11:22 AM · Restricted Project
mibintc added a comment to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

@rsmith asked "I don't see changes to the constant evaluator". The semantic rules for enabling this pragma require that strict or precise semantics be in effect., see SemaAttr.cpp And the floating point constant evaluation doesn't occur when strict or precise

What do you mean "the floating point constant evaluation doesn't occur when strict or precise"? I don't see any code to do that in ExprConstant.cpp, neither in trunk nor in this patch. The constant evaluator certainly is still invoked when we're in strict or precise mode. I would expect the evaluator would need to check for FP strictness whenever it encounters a floating-point operator (eg, here: https://github.com/llvm/llvm-project/blob/master/clang/lib/AST/ExprConstant.cpp#L13340), and treat such cases as non-constant.

1.0/3.0 is now static folded. @rsmith Did you change your mind about this? Is static folding what you want here?

I'd like to see a C++ test for something like this:

float myAdd() {
#pragma STDC FENV_ACCESS ON
    static double v = 1.0 / 3.0;
    return v;
}

If that generates a runtime guarded initialization for v, then I'd be a bit more convinced we're getting this right.

Oct 20 2020, 10:20 AM · Restricted Project
mibintc updated the diff for D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

I added StrictFPAttr clang function attribute accroding to @rjmccall 's suggestion instead of using a boolean on the function decl, rebased, and responded to other code review comments. will add replies inline

Oct 20 2020, 9:56 AM · Restricted Project

Oct 9 2020

mibintc added a comment to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

In D88498 @rsmith wrote,
s far from clear to me that this is correct in C++. In principle, for a dynamic initializer, the rounding mode could have been set by an earlier initializer.

Oct 9 2020, 9:48 AM · Restricted Project
mibintc updated the diff for D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

I rebased the patch
I added documentation to UserManual showing that -ffp-model=strict enables FENV_ACCESS
I removed ActOnAfterCompoundStatementLeadingPragmas since it was redundant with work being done in ActOnCompoundStmt

Oct 9 2020, 9:42 AM · Restricted Project

Oct 7 2020

mibintc added a comment to D88498: [FPEnv] Apply dynamic rounding to function body only.

ping!

Oct 7 2020, 1:48 PM · Restricted Project

Oct 6 2020

mibintc updated the diff for D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

I added a sentence in the clang UserManual pointing out that ffp-model=strict automatically enables FENV_ACCESS. I changed checkFloatingPointResult the way @sepavloff suggested to solve the LIT failure in clang/test/AST/const-fpfeatures.cpp, as long as the ExceptionBehavior is Ignore, the FENV_ACCESS is Off and RoundingMode isn't Dynamic, it's OK to fold even if the Status isn't OK. Now check-clang is running clean.

Oct 6 2020, 12:36 PM · Restricted Project

Oct 5 2020

mibintc added a comment to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

For the LIT test clang/test/AST/const-fpfeatures.cpp, currently failing in this patch, the variables V1 and others are initialized via call to "global var init" which performs the rounding at execution time, I think that's correct not certain.

Oct 5 2020, 10:46 AM · Restricted Project
mibintc updated the diff for D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

In the previous version of this patch, I enabled FENV_ACCESS if frounding-math, but @sepavloff commented that this deduction is not correct. I changed the logic to check for the "ffp-model=strict" settings, and if those settings are in effect from the command line, then I also enable fenv_access. To repeat what I've said elsewhere, this is the documented behavior of the "/fp:strict" Microsoft command line option.

Oct 5 2020, 10:34 AM · Restricted Project
mibintc added inline comments to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.
Oct 5 2020, 8:37 AM · Restricted Project
mibintc added a comment to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

I neglected to hit the "submit" button last week, these are the inline questions I have.

Oct 5 2020, 8:36 AM · Restricted Project

Oct 2 2020

mibintc updated the diff for D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

I patched my workspace with D88498 from Sept 29. I fixed some nits and also enabled FENV_ACCESS when the command line option specifies frounding-math. This corresponds to Microsoft's documentation of their option /fp:strict https://docs.microsoft.com/en-us/cpp/preprocessor/fenv-access?view=vs-2019 "The [/fp:strict] command-line option automatically enables fenv_access." Also if #pragma to enable fenv_access is seen, RoundingMode is set to Dynamic
I have some questions I'll add them as inline comments

Oct 2 2020, 11:30 AM · Restricted Project

Sep 29 2020

mibintc added inline comments to D88498: [FPEnv] Apply dynamic rounding to function body only.
Sep 29 2020, 1:15 PM · Restricted Project
mibintc abandoned D88462: FP math settings for static duration initialization - work in progress.

refer to https://reviews.llvm.org/D88498

Sep 29 2020, 9:47 AM · Restricted Project
mibintc accepted D88498: [FPEnv] Apply dynamic rounding to function body only.

thanks for this!

Sep 29 2020, 9:44 AM · Restricted Project

Sep 28 2020

mibintc requested review of D88462: FP math settings for static duration initialization - work in progress.
Sep 28 2020, 7:14 PM · Restricted Project
mibintc added a comment to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

I tried using the 0924 version of the patch on an internal workload SPEC "cpu2017" and found that a few files failed to compile because of an error message on static initializer, like this: struct s { float f; }; static struct s x = {0.63}; Compiled with ffp-model=strict "initializer..is not a compile-time constant"

Thank you for trying this.

The error happens because static variable initializer gets rounding mode calculated from command-line options (dynamic), but this is wrong because such initializers must be calculated using constant rounding mode (tonearest in this case). Either we must force default FP mode in such initializers, or we are wrong when using FPOptions::defaultWithoutTrailingStorage. Need to analyze this problem more.

Sep 28 2020, 4:47 PM · Restricted Project
mibintc added a comment to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

I tried using the 0924 version of the patch on an internal workload SPEC "cpu2017" and found that a few files failed to compile because of an error message on static initializer, like this: struct s { float f; }; static struct s x = {0.63}; Compiled with ffp-model=strict "initializer..is not a compile-time constant"

Thank you for trying this.

The error happens because static variable initializer gets rounding mode calculated from command-line options (dynamic), but this is wrong because such initializers must be calculated using constant rounding mode (tonearest in this case). Either we must force default FP mode in such initializers, or we are wrong when using FPOptions::defaultWithoutTrailingStorage. Need to analyze this problem more.

Sep 28 2020, 5:51 AM · Restricted Project

Sep 25 2020

mibintc added inline comments to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.
Sep 25 2020, 9:33 AM · Restricted Project
mibintc added a comment to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

@sepavloff Is it OK if I continue work on this item? Not sure about the protocol when continuing someone else's patch.

It is OK for me. There is also an action in Phabricator "Commandeer Revision" to transfer ownership on a revision item.

I don't think however that the implementation in frontend is the main obstacle for enabling the pragma. It is the part of the standard and is user visible, so clang must provide satisfactory support so that users could try this feature in real applications. This support mainly depends on the support of constrained intrinsics in IR and codegen.

One of the probable ways to confirm the support is to build some pretty large project that uses floating point operations extensively, build it with option -fp-model=strict and check if it works. A good choice could be SPEC benchmarks. It would provide us with not only evidence of support but also with number how strict operations slow down execution. Maybe other projects may be used for this purpose, but I don't know such.

Sep 25 2020, 8:09 AM · Restricted Project
mibintc accepted D87822: [FPEnv] Evaluate constant expressions under non-default rounding modes.
Sep 25 2020, 8:02 AM · Restricted Project

Sep 24 2020

mibintc added inline comments to D87822: [FPEnv] Evaluate constant expressions under non-default rounding modes.
Sep 24 2020, 10:58 AM · Restricted Project
mibintc added inline comments to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.
Sep 24 2020, 8:51 AM · Restricted Project
mibintc added a comment to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

Note, @sepavloff is working on overlapping concerns here, D87822: [FPEnv] Evaluate constant expressions under non-default rounding modes

Sep 24 2020, 8:43 AM · Restricted Project
mibintc updated the diff for D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

Responded to @rsmith's review

Sep 24 2020, 8:42 AM · Restricted Project

Sep 17 2020

mibintc abandoned D78305: [NFC] Rename Sema.FPFeatures to CurFPFeatures and accessor to getCurFPFeatures.

not needed

Sep 17 2020, 7:27 AM · Restricted Project
mibintc accepted D87812: [FPEnv] Use typed accessors in FPOptions.

LGTM - thanks

Sep 17 2020, 7:21 AM · Restricted Project, Restricted Project

Sep 16 2020

mibintc added inline comments to D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.
Sep 16 2020, 2:29 PM · Restricted Project
mibintc updated the diff for D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

I pulled out the isStrictFP boolean from EvalInfo and used the FPOptions when visiting floating point BinaryOperator, CastExpr and builtin CallExpr. I created the diagnostic note explaining why constant evaluation failed. Not certain about the language rules C vs C++.

Sep 16 2020, 2:27 PM · Restricted Project

Sep 14 2020

mibintc updated the diff for D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.

This update uses context information from Expr->getFPFeaturesInEffect() to disable fp constant folding in ExprConstant.cpp

Sep 14 2020, 4:53 PM · Restricted Project
mibintc added a comment to D69272: Enable '#pragma STDC FENV_ACCESS' in frontend.

I am working on a task to ensure that clang is doing floating point constant folding correctly.

Could you please share your plans on it? I recently also started implementing constant folding in ExprConstant.cpp. I have not made anything substantial yet, so I can easily switch to another task. Do you have any estimation when you could prepare the first version of the patch?

I've been given a vague assignment, something along the lines "investigate floating point constant folding and make sure that the semantics are correct. " In the Intel ICL compiler, there were some circumstances of the semantics not being correct. I saw Richard's comments in this review, and Intel also needs FENV_ACCESS implemented so I thought I'd start here. I'm not a floating point expert, but of course some of my colleagues at Intel are! I am pretty slow but it's my area of focus.

But sometimes, if the floating point semantics are set to 'strict', even tho' folding has occurred successfully in ExprConstant.cpp, when i look at emit-llvm, there is arithmetic emitted for the floating point expression;

I used a bit different approach, may be it could be useful for you too. An initializer for global variable must be a constant, so things like const xxx = 1.0 + 2.0 are evaluated. No llvm arithmetic occurs in the resulting ll file. Using pragma STDC FENV_ROUND floating point environment may be set to non-default state, which constant evaluator must use.

When I implemented clang #pragma float_control, I noticed that initialization expressions in classes were not subject to the pragma's that are active in the source file. Those expressions are pulled out and processed differently than the function bodies. I'll upload later today a patch that uses Expr->getFPFeaturesInEffect() to inhibit constant folding in ExprConstant.cpp.

In D69272#2268387, @kpn wrote:

Say, in D80952 I added support for disabling strictfp support when a target doesn't support it. But it only applies to command line arguments.

Is there any chance at all that relevant pragmas can also be disabled with the warning in the same cases?

This is definitely a good idea.

I'll look into it, thank you

Sep 14 2020, 11:03 AM · Restricted Project

Sep 11 2020

mibintc added a comment to D69272: Enable '#pragma STDC FENV_ACCESS' in frontend.

Hello, I rebased this and made a few changes here, https://reviews.llvm.org/D87528 ; I added a question about floating point constant folding in that review, I'm going to duplicate it here,

Sep 11 2020, 10:12 AM · Restricted Project
mibintc requested review of D87528: Enable '#pragma STDC FENV_ACCESS' in frontend.
Sep 11 2020, 10:09 AM · Restricted Project

Sep 2 2020

mibintc added a comment to D87049: Exploratory patch - capture DebugInfo for constexpr variables used within lambda.

I think it'd be helpful to discuss what the DWARF does and should look like in this case (I wonder if, maybe, the better solution is in the DWARF consumer - to do name lookup out through the lambda) - could you provide some summarized llvm-dwarfdump output comparisons between Clang (with/without the patch applied) and GCC's output?

Sep 2 2020, 2:11 PM · Restricted Project
mibintc requested review of D87049: Exploratory patch - capture DebugInfo for constexpr variables used within lambda.
Sep 2 2020, 11:54 AM · Restricted Project

Jun 27 2020

mibintc committed rGf4aaed3bf16b: Reland D81869 "Modify FPFeatures to use delta not absolute settings" This… (authored by mibintc).
Reland D81869 "Modify FPFeatures to use delta not absolute settings" This…
Jun 27 2020, 1:35 AM
mibintc added a reverting change for rGdefd43a5b393: Revert "Revert "Revert "Modify FPFeatures to use delta not absolute settings""": rGf4aaed3bf16b: Reland D81869 "Modify FPFeatures to use delta not absolute settings" This….
Jun 27 2020, 1:35 AM

Jun 26 2020

mibintc committed rG467ba4c92f5b: More corrections to documented spelling of ffinite-math to ffinite-math-only (authored by mibintc).
More corrections to documented spelling of ffinite-math to ffinite-math-only
Jun 26 2020, 1:42 PM
mibintc committed rG7cc5307c73ca: Correct documented spelling of ffinite-math to ffinite-math-only (authored by mibintc).
Correct documented spelling of ffinite-math to ffinite-math-only
Jun 26 2020, 1:09 PM
mibintc committed rGdefd43a5b393: Revert "Revert "Revert "Modify FPFeatures to use delta not absolute settings""" (authored by mibintc).
Revert "Revert "Revert "Modify FPFeatures to use delta not absolute settings"""
Jun 26 2020, 9:18 AM
mibintc added a reverting change for rG9518763d710b: Revert "Revert "Modify FPFeatures to use delta not absolute settings"": rGdefd43a5b393: Revert "Revert "Revert "Modify FPFeatures to use delta not absolute settings""".
Jun 26 2020, 9:18 AM
mibintc committed rG9518763d710b: Revert "Revert "Modify FPFeatures to use delta not absolute settings"" (authored by mibintc).
Revert "Revert "Modify FPFeatures to use delta not absolute settings""
Jun 26 2020, 8:12 AM
mibintc added a reverting change for rGb55d723ed610: Revert "Modify FPFeatures to use delta not absolute settings": rG9518763d710b: Revert "Revert "Modify FPFeatures to use delta not absolute settings"".
Jun 26 2020, 8:12 AM
mibintc closed D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.
Jun 26 2020, 8:11 AM · Restricted Project, Restricted Project
mibintc committed rGb55d723ed610: Revert "Modify FPFeatures to use delta not absolute settings" (authored by mibintc).
Revert "Modify FPFeatures to use delta not absolute settings"
Jun 26 2020, 8:11 AM
mibintc added a reverting change for rG3a748cbf86ce: Modify FPFeatures to use delta not absolute settings: rGb55d723ed610: Revert "Modify FPFeatures to use delta not absolute settings".
Jun 26 2020, 8:11 AM
mibintc committed rG3a748cbf86ce: Modify FPFeatures to use delta not absolute settings (authored by mibintc).
Modify FPFeatures to use delta not absolute settings
Jun 26 2020, 8:11 AM
mibintc updated the diff for D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.

with updates from @yaxunl , i'm planning to push this

Jun 26 2020, 7:37 AM · Restricted Project, Restricted Project
mibintc added a comment to D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.

Would you please add the following lit test

If you change FastMath, FiniteMathOnly and UnsafeFPMath to COMPATIBLE_LANGOPT, the test should pass.

Jun 26 2020, 6:30 AM · Restricted Project, Restricted Project

Jun 24 2020

mibintc updated the diff for D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.

I decided that I shouldn't make float options that define a macro, like -ffast-math, as BENIGN_LANGOPT, I made ffp-contract= , fp-exception-behavior and rounding-mode BENIGN, I modified the pch test case to test that the benign command line floating options on the pch-create don't affect compilations that use the pch file.

Jun 24 2020, 1:01 PM · Restricted Project, Restricted Project

Jun 23 2020

mibintc added a comment to D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.

I need to make another revision that makes a couple more of the fp options, like ffp-contract, "benign" and add a test case that demonstrates fp options don't carry over from pch-create to pch-use

Jun 23 2020, 2:31 PM · Restricted Project, Restricted Project
mibintc updated the diff for D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.

The difference between this patch and the earlier one today is that I modified the new test case

Jun 23 2020, 1:26 PM · Restricted Project, Restricted Project
mibintc updated the summary of D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.
Jun 23 2020, 1:26 PM · Restricted Project, Restricted Project
mibintc updated the diff for D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.

I responded to review from @riccibruno and @rjmccall : I put the dump() routines into the .cpp file and changed them to use the x-macros. I moved CXXOperatorCall.FPOptionsOverride from the Expr bits into the OperatorCall itself. I added the operator call test case suggested by John. I must be mistaken about the bug, the operator call addition does account for the FPFeatures in both the unmodified compiler and the patched compiler.

Jun 23 2020, 12:54 PM · Restricted Project, Restricted Project

Jun 22 2020

mibintc updated subscribers of D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.

@rjmccall I added some inline questions and comments for you. Thanks a lot for your review.

Jun 22 2020, 2:31 PM · Restricted Project, Restricted Project
mibintc updated the diff for D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.

This revision rewrites FPOptionsOverride like @rjmccall suggests. There are a couple problems, i'll add inline comments in the trouble areas

Jun 22 2020, 1:59 PM · Restricted Project, Restricted Project

Jun 16 2020

mibintc updated the diff for D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.

This version passes all the lit tests, i believe it's functional tho' maybe not elegant.
I still need to add a test case that PCH behaves as desired, and that the floating point command line options from PCH create do not clobber command line options from compilations that use a pch

Jun 16 2020, 2:18 PM · Restricted Project, Restricted Project
mibintc updated subscribers of D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.
Jun 16 2020, 6:37 AM · Restricted Project, Restricted Project

Jun 15 2020

mibintc added a comment to D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.

@rjmccall You suggested that the FPFeatures could be delta instead of absolute settings, I think this is approximately what you mean. This is a rough patch employing that idea, would welcome your early comments. There are 2 clang tests that are failing with this patch, I need to dig into those.

Jun 15 2020, 1:14 PM · Restricted Project, Restricted Project
mibintc created D81869: Modify FPFeatures to use delta not absolute settings to solve PCH compatibility problems.
Jun 15 2020, 1:14 PM · Restricted Project, Restricted Project

Jun 1 2020

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

I documented the issue reported by @yaxunl here, https://bugs.llvm.org/show_bug.cgi?id=46166, and take ownership of the bug. Thanks for the report.

Jun 1 2020, 2:05 PM · Restricted Project, Restricted Project

May 20 2020

mibintc added a comment to D80315: Fix CC1 command line options mapping into fast-math flags..

Thanks for cleaning this up!

May 20 2020, 2:18 PM · Restricted Project
mibintc committed rG827be690dce1: [clang] FastMathFlags.allowContract should be initialized only from FPFeatures. (authored by mibintc).
[clang] FastMathFlags.allowContract should be initialized only from FPFeatures.
May 20 2020, 6:30 AM
mibintc closed D79903: FastMathFlags.allowContract should be init from FPFeatures.allowFPContractAcrossStatement.
May 20 2020, 6:30 AM · Restricted Project

May 15 2020

mibintc updated subscribers of D79903: FastMathFlags.allowContract should be init from FPFeatures.allowFPContractAcrossStatement.
May 15 2020, 8:06 AM · Restricted Project
mibintc updated subscribers of D79903: FastMathFlags.allowContract should be init from FPFeatures.allowFPContractAcrossStatement.
May 15 2020, 8:06 AM · Restricted Project