Page MenuHomePhabricator
Feed Advanced Search

Jun 14 2021

mibintc reopened D102861: Suppress FP_CONTRACT due to planned command line changes.
Jun 14 2021, 7:17 AM
mibintc added a comment to D102861: Suppress FP_CONTRACT due to planned command line changes.

After this change, building the LLVM test-suite for X86_64h seems to fail http://green.lab.llvm.org/green/job/test-suite-verify-machineinstrs-x86_64h-O3/9586/ :

Thanks so much, I have reverted.

Jun 14 2021, 7:17 AM
mibintc added a reverting change for rTa52cf9f13240: [test-suite] Suppress FP_CONTRACT due to command line changes planned in D74436: rT19325b49638b: Revert "[test-suite] Suppress FP_CONTRACT due to command line changes planned….
Jun 14 2021, 7:14 AM
mibintc committed rT19325b49638b: Revert "[test-suite] Suppress FP_CONTRACT due to command line changes planned… (authored by mibintc).
Revert "[test-suite] Suppress FP_CONTRACT due to command line changes planned…
Jun 14 2021, 7:14 AM
mibintc added a reverting change for D102861: Suppress FP_CONTRACT due to planned command line changes: rT19325b49638b: Revert "[test-suite] Suppress FP_CONTRACT due to command line changes planned….
Jun 14 2021, 7:14 AM
mibintc committed rTa52cf9f13240: [test-suite] Suppress FP_CONTRACT due to command line changes planned in D74436 (authored by mibintc).
[test-suite] Suppress FP_CONTRACT due to command line changes planned in D74436
Jun 14 2021, 6:18 AM
mibintc closed D102861: Suppress FP_CONTRACT due to planned command line changes.
Jun 14 2021, 6:18 AM

Jun 13 2021

mibintc updated the diff for D102861: Suppress FP_CONTRACT due to planned command line changes.

I'm hoping this revision will work well for all architectures @LuoYuanke

Jun 13 2021, 3:55 AM
mibintc reopened D102861: Suppress FP_CONTRACT due to planned command line changes.

I will submit an updated patch which unconditionally adds ffp-contract=off to the failing tests (versus checking ARCH)

Jun 13 2021, 3:51 AM

Jun 11 2021

mibintc added a reverting change for rTccc86f938839: [test-suite] Suppress FP_CONTRACT due to command line changes planned in D74436: rTfa3daaf3ee14: Revert "[test-suite] Suppress FP_CONTRACT due to command line changes planned….
Jun 11 2021, 6:40 AM
mibintc committed rTfa3daaf3ee14: Revert "[test-suite] Suppress FP_CONTRACT due to command line changes planned… (authored by mibintc).
Revert "[test-suite] Suppress FP_CONTRACT due to command line changes planned…
Jun 11 2021, 6:40 AM
mibintc added a reverting change for D102861: Suppress FP_CONTRACT due to planned command line changes: rTfa3daaf3ee14: Revert "[test-suite] Suppress FP_CONTRACT due to command line changes planned….
Jun 11 2021, 6:40 AM
mibintc added a comment to D104055: Override ffp-contract to fast due to command line changes planned in D74436.

Probably cleaner to revert, let the bots calm down, then reapply the right patch.

Jun 11 2021, 6:27 AM · Restricted Project
mibintc added a comment to D104055: Override ffp-contract to fast due to command line changes planned in D74436.

I would like to submit this patch as well as the dependent clang patch, hopefully over this weekend when it would be less disruptive.

Jun 11 2021, 6:23 AM · Restricted Project
mibintc added a comment to D104055: Override ffp-contract to fast due to command line changes planned in D74436.

In llorg currently, with ffp-model=precise, the option ffp-contract=fast is implied. My patch to clang is to change this to ffp-contract=on. My patch to LNT hopes to achieve merely "do what you did before so the test has expected behavior".

Jun 11 2021, 6:20 AM · Restricted Project

Jun 10 2021

mibintc requested review of D104055: Override ffp-contract to fast due to command line changes planned in D74436.
Jun 10 2021, 1:18 PM · Restricted Project
mibintc added a comment to D102861: Suppress FP_CONTRACT due to planned command line changes.

No I'm wrong, the LNT bot was updated with my patch, but the Broadwell tests failed for execution_time versus the previous run where they failed for hash code not matching.

Jun 10 2021, 12:20 PM
mibintc added a reverting change for rG8daac3714083: [clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp…: rGc3cc14f87f78: Revert "[clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp….
Jun 10 2021, 9:19 AM
mibintc committed rGc3cc14f87f78: Revert "[clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp… (authored by mibintc).
Revert "[clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp…
Jun 10 2021, 9:19 AM
mibintc added a reverting change for D74436: Change clang option -ffp-model=precise to select ffp-contract=on: rGc3cc14f87f78: Revert "[clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp….
Jun 10 2021, 9:19 AM · Restricted Project
mibintc added a comment to D102861: Suppress FP_CONTRACT due to planned command line changes.

When I committed the clang patch, the same tests are also failing on arm. I'd like to disable contract on those tests unconditionally not just architecture specific
Plus I'm not sure if my architecture test is working right because my patch didn't "work" for broadwell. Confused: is my patch incorrect for x86 or my patch didn't get to the bot?

Jun 10 2021, 8:53 AM
mibintc added a comment to D74436: Change clang option -ffp-model=precise to select ffp-contract=on.

The bot is showing a fail due to this patch, see https://lab.llvm.org/buildbot#builders/110/builds/4007

Jun 10 2021, 7:23 AM · Restricted Project
mibintc added inline comments to D74436: Change clang option -ffp-model=precise to select ffp-contract=on.
Jun 10 2021, 6:40 AM · Restricted Project
mibintc committed rG8daac3714083: [clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp… (authored by mibintc).
[clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp…
Jun 10 2021, 6:31 AM
mibintc closed D74436: Change clang option -ffp-model=precise to select ffp-contract=on.
Jun 10 2021, 6:31 AM · Restricted Project

Jun 9 2021

mibintc updated the diff for D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.

Correct small formatting issue in LangRef.rst thanks @pengfei

Jun 9 2021, 8:48 AM · Restricted Project

Jun 8 2021

mibintc updated the diff for D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.

I corrected error in LangRef documentation that @pengfei pointed out.

Jun 8 2021, 1:04 PM · Restricted Project

Jun 7 2021

mibintc updated the diff for D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.

This patch addresses all of @craig.topper comments and adds documentation for the new intrinsic to the language reference as requested by @LuoYuanke nke

Jun 7 2021, 8:26 AM · Restricted Project
mibintc closed D102861: Suppress FP_CONTRACT due to planned command line changes.
Jun 7 2021, 6:44 AM
mibintc committed rTccc86f938839: [test-suite] Suppress FP_CONTRACT due to command line changes planned in D74436 (authored by mibintc).
[test-suite] Suppress FP_CONTRACT due to command line changes planned in D74436
Jun 7 2021, 6:44 AM

Jun 4 2021

mibintc added a comment to D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.

question for @aaron.ballman

Jun 4 2021, 7:02 AM · Restricted Project, Restricted Project

Jun 3 2021

mibintc added a comment to D102861: Suppress FP_CONTRACT due to planned command line changes.

I plan to push this in a couple days. Do the LNT bots pull the source from latest or is a special action needed to feed the updated tests into the bots?

Jun 3 2021, 12:18 PM
mibintc updated the diff for D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.

I made a change to ActOnParenExpr to check that the parenthesized expression is not an lvalue before inserting the call to builtin __arithmetic_fence

Jun 3 2021, 12:16 PM · Restricted Project, Restricted Project
mibintc added a reviewer for D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens: jyu2.
Jun 3 2021, 8:32 AM · Restricted Project, Restricted Project

Jun 1 2021

mibintc updated the diff for D102861: Suppress FP_CONTRACT due to planned command line changes.

I corrected the test output and the tests are passing now. This patch defines FMA_DISABLED=1 and ffp-contract=off for the 20 polybench test cases that are failing with D74436 applied. The remaining polybench test cases are run without those additional options, and so the additional kernel invocation with StrictFP does occur. These are the 20 tests
SingleSource/Benchmarks/Linpack
SingleSource/Benchmarks/Misc-C++/Large
SingleSource/Benchmarks/Polybench/datamining/covariance
SingleSource/Benchmarks/Polybench/datamining/correlation
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trisolv
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gemver
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gesummv
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/symm
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/bicg
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trmm
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/atax
SingleSource/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt
SingleSource/Benchmarks/Polybench/stencils/adi
MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR
MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG
MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE
MultiSource/Benchmarks/Rodinia/srad
MultiSource/Applications/oggenc
MicroBenchmarks/ImageProcessing/BilateralFiltering
MicroBenchmarks/ImageProcessing/Blur

Jun 1 2021, 8:25 AM

May 27 2021

mibintc updated subscribers of D74436: Change clang option -ffp-model=precise to select ffp-contract=on.

No real comments from me.
I assume, the errors are because -ffp-contract=on actually results in *less* error?

May 27 2021, 1:55 PM · Restricted Project
mibintc added a comment to D74436: Change clang option -ffp-model=precise to select ffp-contract=on.

Hoping @lebedev.ri will take a look since he requested changes, thanks!

May 27 2021, 1:38 PM · Restricted Project
mibintc updated the diff for D102861: Suppress FP_CONTRACT due to planned command line changes.

Here's the patch with ffp-contract=off for the 20 tests that failed with X86 and modifications to the test source to suppress the 2nd kernel execution #if !FMA_DISABLED

May 27 2021, 1:37 PM
mibintc updated the diff for D102861: Suppress FP_CONTRACT due to planned command line changes.

In response to the review comments, I'm updating the patch like this. It's not complete just showing you the idea.
In addition to adding -ffp-contract=off to the failing tests, add -DFMA_DISABLED=1
Then in the test itself, if FMA is disabled, don't do the duplicate run of the kernel.

May 27 2021, 10:02 AM

May 26 2021

mibintc updated the diff for D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.

Rebased the patch. The parent patch is updated and corrected as well, and tests can run end-to-end.

May 26 2021, 12:14 PM · Restricted Project, Restricted Project
mibintc updated the diff for D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.

Rebased to ToT. It fixes the previous illegal type lowering problems. It also updates the tests to show the functionality in a better way as well as fixes a newly found problem.

May 26 2021, 11:58 AM · Restricted Project
mibintc added a comment to D102861: Suppress FP_CONTRACT due to planned command line changes.

@rengolin
Thanks I appreciate the issues you raise.

May 26 2021, 8:24 AM

May 24 2021

mibintc updated subscribers of D102861: Suppress FP_CONTRACT due to planned command line changes.
May 24 2021, 11:46 AM
mibintc updated the diff for D102861: Suppress FP_CONTRACT due to planned command line changes.

This revision of the patch adds ffp-contract=off into the build line for the 20 tests which are failing on X86 due to the dependent clang patch.

May 24 2021, 11:44 AM
mibintc added a comment to D102861: Suppress FP_CONTRACT due to planned command line changes.

This seems OK as a short term solution, but it is also problematic in that it prevents FMA from being used in these performance measurements. I understand that it's not trivial to allow FP-related error tolerance in the test, but (as a future patch) it would be nice to at least have a way to turn off the exact result checking on FP tests so that the performance could be measured with fast-math and fp-contract enabled, and that would require having a way to re-enable FMA for these tests.

Would it be better to add "-ffp-contract=off" to the test build lines for these cases (and any others that are already using the pragma)?

May 24 2021, 8:29 AM

May 20 2021

mibintc added a comment to D102861: Suppress FP_CONTRACT due to planned command line changes.

I think this is generally reasonable, haven't looked at all benchmarks and I would prefer some other opinions.

May 20 2021, 12:58 PM
mibintc added a comment to D74436: Change clang option -ffp-model=precise to select ffp-contract=on.

I created https://reviews.llvm.org/D102861 to make changes to the failing LNT tests. Hoping to push this commit after the test changes in D102862 are approved.

May 20 2021, 12:18 PM · Restricted Project
mibintc added a comment to D74436: Change clang option -ffp-model=precise to select ffp-contract=on.

<...>

And by codegen changes i mostly mean newly-set/now-unset fp fast-math instruction flags.

May 20 2021, 12:13 PM · Restricted Project
mibintc requested review of D102861: Suppress FP_CONTRACT due to planned command line changes.
May 20 2021, 11:56 AM

May 19 2021

mibintc committed rGd30dfa86760c: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer… (authored by mibintc).
[clang][patch] Add support for option -fextend-arguments={32,64}: widen integer…
May 19 2021, 8:00 AM
mibintc closed D101640: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer arguments to int64 in unprototyped function calls.
May 19 2021, 8:00 AM · Restricted Project, Restricted Project

May 17 2021

mibintc accepted D101192: Add support for #elifdef and #elifndef.

let 'er rip

May 17 2021, 7:19 AM · Restricted Project

May 14 2021

mibintc added a comment to D74436: Change clang option -ffp-model=precise to select ffp-contract=on.

There are 3 clang settings for ffp-contract (on, off, fast) but the FMF bits have only "allow contract". Clang sets the "allow contract" bit in the IRBuilder only when ffp-contract=fast

May 14 2021, 12:20 PM · Restricted Project
mibintc updated the diff for D74436: Change clang option -ffp-model=precise to select ffp-contract=on.

I rebased and enhanced the test case clang/test/CodeGen/ffp-contract-option.c to show the effect of various ffp-contract={on,fast,off} * ffast-math=on,off in response to the request from @lebedev.ri ; sorry for leaving this hanging for so long, I wasn't sure what to do about the optimization discrepancies but I have a plan now. We think it could be caused by a particular nuance on Broadwell.

May 14 2021, 12:17 PM · Restricted Project
mibintc added a comment to D94376: [MemCpyOpt] Enable MemorySSA by default.

In my premerge testing, I see this fail which looks like the check string is incorrect:

May 14 2021, 5:57 AM · Restricted Project, Restricted Project

May 13 2021

mibintc updated the diff for D101640: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer arguments to int64 in unprototyped function calls.

Corrected the failing lit test and applied the clang-format patch

May 13 2021, 1:50 PM · Restricted Project, Restricted Project
mibintc added a comment to D101640: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer arguments to int64 in unprototyped function calls.

Thanks! The last remaining question to me is whether this should be a target-specific option or whether it makes sense to allow it as an option for any target.

I thought the patch may be more acceptable to the community if we restricted it.

I think we usually prefer more general solutions to target-specific ones, typically. Given that the functionality is generally useful for easing porting projects from 32- to 64-bits and that the code is simpler without the target-specific bits, my preference is to go with the general solution unless someone else has objections.

May 13 2021, 12:25 PM · Restricted Project, Restricted Project
mibintc added a comment to D101640: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer arguments to int64 in unprototyped function calls.

Thanks! The last remaining question to me is whether this should be a target-specific option or whether it makes sense to allow it as an option for any target.

May 13 2021, 9:22 AM · Restricted Project, Restricted Project
mibintc updated the diff for D101640: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer arguments to int64 in unprototyped function calls.

I responded to most all @aaron.ballman 's review comments, may need a little more wordsmithing

May 13 2021, 8:07 AM · Restricted Project, Restricted Project

May 12 2021

mibintc added inline comments to D101640: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer arguments to int64 in unprototyped function calls.
May 12 2021, 1:33 PM · Restricted Project, Restricted Project
mibintc added inline comments to D102343: [clang][patch][FPEnv] Make Initialization of C++ globals strictfp aware.
May 12 2021, 11:13 AM · Restricted Project
mibintc requested review of D102343: [clang][patch][FPEnv] Make Initialization of C++ globals strictfp aware.
May 12 2021, 11:08 AM · Restricted Project

May 7 2021

mibintc added inline comments to D93769: [clang] Add support for option -ffp-eval-method and extend #pragma float_control similarly.
May 7 2021, 6:52 AM · Restricted Project
mibintc updated the diff for D93769: [clang] Add support for option -ffp-eval-method and extend #pragma float_control similarly.

Respond to @aaron.ballman 's review

May 7 2021, 6:40 AM · Restricted Project

May 4 2021

mibintc added inline comments to D93769: [clang] Add support for option -ffp-eval-method and extend #pragma float_control similarly.
May 4 2021, 10:23 AM · Restricted Project
mibintc updated the diff for D93769: [clang] Add support for option -ffp-eval-method and extend #pragma float_control similarly.

I rebased the patch and responded to review comments from @aaron.ballman and @jansvoboda11

May 4 2021, 10:17 AM · Restricted Project
mibintc updated the diff for D101640: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer arguments to int64 in unprototyped function calls.

Responded to suggestions from @jansvoboda11

May 4 2021, 8:28 AM · Restricted Project, Restricted Project

May 3 2021

mibintc updated the summary of D101640: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer arguments to int64 in unprototyped function calls.
May 3 2021, 11:32 AM · Restricted Project, Restricted Project
mibintc updated the diff for D101640: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer arguments to int64 in unprototyped function calls.

Respond to review comments from @jansvoboda11

May 3 2021, 11:30 AM · Restricted Project, Restricted Project

Apr 30 2021

mibintc added a comment to D101640: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer arguments to int64 in unprototyped function calls.

@erichkeane Can you suggest reviewers for this patch?

Apr 30 2021, 8:20 AM · Restricted Project, Restricted Project
mibintc requested review of D101640: [clang][patch] Add support for option -fextend-arguments={32,64}: widen integer arguments to int64 in unprototyped function calls.
Apr 30 2021, 8:19 AM · Restricted Project, Restricted Project

Apr 27 2021

mibintc abandoned D96203: [clang][patch] Modify sanitizer options names: renaming blacklist to blocklist.

There was no resolution about what option name would be acceptable

Apr 27 2021, 5:01 AM · Restricted Project

Apr 26 2021

mibintc added a comment to D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.

some inline comments for reviewers

Apr 26 2021, 11:45 AM · Restricted Project, Restricted Project
mibintc updated the diff for D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.

I think this patch is complete except it needs to wait until the parent patch is finished. Also some re-factoring may be desireable, I'll add some inline comments about that.

Apr 26 2021, 11:35 AM · Restricted Project, Restricted Project
mibintc added a comment to D101192: Add support for #elifdef and #elifndef.

Wow thanks for doing this! I worked on it a couple days a while ago but I abandoned the effort and went back to my day job. It seems like preprocessing ought to be something like a "state machine" but I couldn't figure out the mechanism. Would it make sense to add some kind of high level description of the components, now that you've gone to the [presumably massive] effort of understanding it? Just a couple small comments above.

Apr 26 2021, 6:45 AM · Restricted Project

Apr 21 2021

mibintc added inline comments to D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.
Apr 21 2021, 11:25 AM · Restricted Project, Restricted Project

Apr 20 2021

mibintc accepted D100834: Bug 49739 - [Matrix] Support #pragma clang fp.
Apr 20 2021, 12:27 PM · Restricted Project
mibintc added inline comments to D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.
Apr 20 2021, 11:30 AM · Restricted Project, Restricted Project
mibintc added inline comments to D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.
Apr 20 2021, 11:19 AM · Restricted Project, Restricted Project
mibintc added a reviewer for D100834: Bug 49739 - [Matrix] Support #pragma clang fp: kpn.
Apr 20 2021, 7:07 AM · Restricted Project
mibintc added a comment to D100834: Bug 49739 - [Matrix] Support #pragma clang fp.

The diff appears to be 2 separate commits, so on first glance this is only patching the test files. Usually if I am working on a patch and have responded to comments, I compress the patch+updates into a single commit (git rebase -i) before creating a diff to upload to Phabricator.

Apr 20 2021, 7:07 AM · Restricted Project

Apr 16 2021

mibintc added a comment to D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.
In D99675#2695424, @kpn wrote:

What changes are needed for a backend, and what happens if they aren't done?

Apr 16 2021, 11:34 AM · Restricted Project
mibintc updated the diff for D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.

I accidentally dropped the test case in previous commit. Just adding it back in -- under the llvm/test directory (previously it was in the wrong location).

Apr 16 2021, 7:04 AM · Restricted Project

Apr 15 2021

mibintc updated the diff for D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.

This is a minor change with only formatting changes, this patch is not yet ready for review, only discussion.
Together with the llvm parent patch, this simple program can now run end-to-end

Apr 15 2021, 1:19 PM · Restricted Project, Restricted Project
mibintc updated the diff for D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.

This is a minor update from @pengfei which allows simple tests cases to run end-to-end with clang.
Also I changed the "summary" to reflect the review discussion around the FMA optimization, to choose "FMA is not allowed across a fence".

Apr 15 2021, 1:12 PM · Restricted Project
mibintc committed rG938b863bb53f: [clang][patch] Modify diagnostic level from err to warn… (authored by mibintc).
[clang][patch] Modify diagnostic level from err to warn…
Apr 15 2021, 10:12 AM
mibintc closed D100511: [clang] Modify diagnostic level from err to warn: anyx86_interrupt_regsave.
Apr 15 2021, 10:12 AM · Restricted Project
mibintc updated the diff for D100511: [clang] Modify diagnostic level from err to warn: anyx86_interrupt_regsave.

I added the InGroup rule for the new warning diagnostic like Aaron requested

Apr 15 2021, 9:23 AM · Restricted Project
mibintc added inline comments to D100511: [clang] Modify diagnostic level from err to warn: anyx86_interrupt_regsave.
Apr 15 2021, 5:57 AM · Restricted Project
mibintc updated the diff for D100511: [clang] Modify diagnostic level from err to warn: anyx86_interrupt_regsave.

I removed the diagnostic from InGroup<Extra>, that's the only change from previous revision

Apr 15 2021, 5:49 AM · Restricted Project

Apr 14 2021

mibintc requested review of D100511: [clang] Modify diagnostic level from err to warn: anyx86_interrupt_regsave.
Apr 14 2021, 2:20 PM · Restricted Project

Apr 13 2021

mibintc added a comment to D97764: [clang][patch] To solve PR26413, x86 interrupt routines may only call routines with no_saved_reg.

I received a bug report that this patch creates error diagnostics for calls to a builtin, like calling 'abort', 'exit' or one of the target builtins like __builtin_ia32_packssw then that call should be allowed without remark but this patch causes the compilation to fail. We could require that all builtin's be declared with "no caller saved reg" but that's a big modification. I'm planning to make a change which igores builtin calls, but continue to error on any implicitly declared or user declared functions without the "no caller saved reg" attribute.

Builtins like __builtin_ia32_packssw aren't usually called directly. The user should be calling the always_inline wrapper functions in x86intrin.h. Would that also fail?

Apr 13 2021, 7:53 AM · Restricted Project
mibintc added a comment to D97764: [clang][patch] To solve PR26413, x86 interrupt routines may only call routines with no_saved_reg.

I received a bug report that this patch creates error diagnostics for calls to a builtin, like calling 'abort', 'exit' or one of the target builtins like __builtin_ia32_packssw then that call should be allowed without remark but this patch causes the compilation to fail. We could require that all builtin's be declared with "no caller saved reg" but that's a big modification. I'm planning to make a change which igores builtin calls, but continue to error on any implicitly declared or user declared functions without the "no caller saved reg" attribute.

Apr 13 2021, 6:49 AM · Restricted Project

Apr 8 2021

mibintc retitled D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens from [clang] RFC Support new arithmetic __fence builtin to control floating point optiization to [clang] RFC Support new builtin __arithmetic_fence to control floating point optiization.
Apr 8 2021, 8:48 AM · Restricted Project, Restricted Project
mibintc requested review of D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.
Apr 8 2021, 8:45 AM · Restricted Project, Restricted Project

Apr 6 2021

mibintc added a comment to D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.

The expression “llvm.arith.fence(a * b) + c” means that “a * b” must happen before “+ c” and FMA guarantees that, but to prevent later optimizations from unpacking the FMA the correct transformation needs to be:

llvm.arith.fence(a * b) + c → llvm.arith.fence(FMA(a, b, c))

Does this actually block later transforms from unpacking the FMA? Maybe if the FMA isn't marked "fast"...

I'd like @pengfei to reply to this question. I think the overall idea is that many of the optimizations are pattern based, and the existing pattern wouldn't match the new intrinsic.


How is llvm.arith.fence() different from using "freeze" on a floating-point value? The goal isn't really the same, sure, but the effects seem similar at first glance.

Initially we thought the intrinsic "ssa.copy" could serve. However ssa.copy is for a different purpose and it gets optimized away. We want arith.fence to survive through codegen, that's one reason why we think a new intrinsic is needed.

Apr 6 2021, 11:49 AM · Restricted Project

Mar 31 2021

mibintc updated the summary of D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.
Mar 31 2021, 2:32 PM · Restricted Project
mibintc updated the summary of D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.
Mar 31 2021, 2:29 PM · Restricted Project
mibintc updated the summary of D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.
Mar 31 2021, 2:26 PM · Restricted Project
mibintc requested review of D99675: [llvm][clang] Create new intrinsic llvm.arithmetic.fence to control FP optimization at expression level.
Mar 31 2021, 11:26 AM · Restricted Project