kpneal wrote:
A recap of the history of the strictfp attribute.
Originally we needed a way to prevent the Inliner from inlining a non-strictfp
function into a strictfp function. We added the `strictfp` attribute to the
function definition for this. Then we found that basic blocks were being
o
kpneal wrote:
No, this is the wrong approach
https://github.com/llvm/llvm-project/pull/122735
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
kpneal wrote:
D146845 wasn't committed because it would have caused test failures. The tests
are wrong, the new checks reveal this, but the new checks cannot be committed
until all broken tests are fixed. Otherwise we get failures from the bots and
the Verifier checks would have been reverted.
kpneal wrote:
I do think that before we start adding in code like this ticket we need to add
IR Verifier code to check for proper use of the strictfp attribute. This code
never made it into the tree because there are too many broken tests already in
the tree.
Verifier code could be written th
@@ -86,6 +86,43 @@ IRBuilderBase::createCallHelper(Function *Callee,
ArrayRef Ops,
return CI;
}
+CallInst *IRBuilderBase::CreateCall(FunctionType *FTy, Value *Callee,
+ArrayRef Args,
+ArrayRef OpBundles
@@ -86,6 +86,43 @@ IRBuilderBase::createCallHelper(Function *Callee,
ArrayRef Ops,
return CI;
}
+CallInst *IRBuilderBase::CreateCall(FunctionType *FTy, Value *Callee,
+ArrayRef Args,
+ArrayRef OpBundles
@@ -251,10 +251,12 @@ static bool markTails(Function &F,
OptimizationRemarkEmitter *ORE) {
// Special-case operand bundles "clang.arc.attachedcall", "ptrauth", and
// "kcfi".
kpneal wrote:
This comment needs to be updated. I suggest removing the
@@ -273,29 +306,6 @@ void InstrProfCallsite::setCallee(Value *Callee) {
setArgOperand(4, Callee);
}
-std::optional ConstrainedFPIntrinsic::getRoundingMode() const {
- unsigned NumOperands = arg_size();
- Metadata *MD = nullptr;
- auto *MAV = dyn_cast(getArgOperand(NumOper
kpneal wrote:
> > I do have a ticket open to change the IRBuilder to check the function
> > definition and set the strictfp mode automatically. But I pooched the
> > branch on my end so I'll need to open a new ticket, hopefully this year.
> > That still leaves hundreds of cases that need to be
kpneal wrote:
> > This sounds like a rejection of safe-by-default.
>
> What do you mean by "safe-by-default"? Implementation must be correct, and
> produce the code that executes in accordance to standards and documentation.
> Any deviation from them is an error and should be fixed. Does it me
kpneal wrote:
> > WRT eliminating the constrained intrinsics completely, I thought that
> > operand bundles could only be attached to function calls and not regular
> > instructions? If I'm wrong, we _still_ have a problem because there are so
> > many uses of the regular FP instructions that
kpneal wrote:
> It does not look as a good base for safety. Many users want the code in
> non-default FP modes to be more efficient, Now any any deviation from the
> default mode requires use of constrained intrinsics in the entire function,
> but now such solution exhibits poor performance, u
kpneal wrote:
> > If we can't keep the constrained semantics and near-100% guarantee that no
> > new exceptions will be introduced then operand bundles are not a
> > replacement for the constrained intrinsics.
>
> We would still need a call / function attribute to indicate strictfp calls,
> a
kpneal wrote:
Since you asked about "=strict", I don't think the strict model should change
handling of excess precision. The rounding part of the constrained intrinsics
shouldn't have any effect at all on excess precision. Eliminating excess
precision also shouldn't happen with exception hand
kpneal wrote:
OK, I'll head in the direction you've pointed. Thanks for your time!
https://github.com/llvm/llvm-project/pull/74883
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kpneal closed https://github.com/llvm/llvm-project/pull/74883
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kpneal updated
https://github.com/llvm/llvm-project/pull/74883
>From eb43ba5adbf57988fdd5f490a74dc59d72f495e5 Mon Sep 17 00:00:00 2001
From: "Kevin P. Neal"
Date: Fri, 8 Dec 2023 14:43:50 -0500
Subject: [PATCH 1/5] [FPEnv] Add strictfp in some C++ constructors lacking a
Func
@@ -6,14 +7,80 @@ float z();
#pragma float_control(except, on)
class ON {
float w = 2 + y() * z();
- // CHECK-LABEL: define {{.*}} @_ZN2ONC2Ev{{.*}}
- // CHECK: llvm.experimental.constrained.fmul{{.*}}tonearest{{.*}}strict
};
ON on;
#pragma float_control(except, off)
cl
@@ -5587,10 +5593,12 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo
&CallInfo,
!isa_and_nonnull(TargetDecl))
EmitKCFIOperandBundle(ConcreteCallee, BundleList);
+#if 0 // XXX Why is this here? Duplicate!
if (const FunctionDecl *FD = dyn_cast_or_null(CurF
https://github.com/kpneal updated
https://github.com/llvm/llvm-project/pull/74883
>From eb43ba5adbf57988fdd5f490a74dc59d72f495e5 Mon Sep 17 00:00:00 2001
From: "Kevin P. Neal"
Date: Fri, 8 Dec 2023 14:43:50 -0500
Subject: [PATCH 1/3] [FPEnv] Add strictfp in some C++ constructors lacking a
Func
https://github.com/kpneal created
https://github.com/llvm/llvm-project/pull/74883
Some C++ constructors require the strictfp attribute on all function calls but
don't get it because the comstructor lacks a FunctionDecl. Use the IRBuilder's
strictfp mode to communicate that the strictfp attribu
https://github.com/kpneal approved this pull request.
The rest LGTM.
https://github.com/llvm/llvm-project/pull/69041
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Kevin P. Neal
Date: 2023-07-12T09:55:53-04:00
New Revision: 91f886a40d3fbabfc539c2bd8977a1ccb45aa450
URL:
https://github.com/llvm/llvm-project/commit/91f886a40d3fbabfc539c2bd8977a1ccb45aa450
DIFF:
https://github.com/llvm/llvm-project/commit/91f886a40d3fbabfc539c2bd8977a1ccb45aa450.diff
Author: Kevin P. Neal
Date: 2022-10-28T11:40:42-04:00
New Revision: 5eb1fbd109734771554465aa307e8205c2a2632e
URL:
https://github.com/llvm/llvm-project/commit/5eb1fbd109734771554465aa307e8205c2a2632e
DIFF:
https://github.com/llvm/llvm-project/commit/5eb1fbd109734771554465aa307e8205c2a2632e.diff
Author: Kevin P. Neal
Date: 2021-02-03T11:49:17-05:00
New Revision: 81b69879c946533c71cc484bd8d9202bf1e34bfe
URL:
https://github.com/llvm/llvm-project/commit/81b69879c946533c71cc484bd8d9202bf1e34bfe
DIFF:
https://github.com/llvm/llvm-project/commit/81b69879c946533c71cc484bd8d9202bf1e34bfe.diff
Author: Kevin P. Neal
Date: 2020-12-18T12:42:06-05:00
New Revision: 7fef551cb123d9f1956f8ec7a142bd8a63d25fa9
URL:
https://github.com/llvm/llvm-project/commit/7fef551cb123d9f1956f8ec7a142bd8a63d25fa9
DIFF:
https://github.com/llvm/llvm-project/commit/7fef551cb123d9f1956f8ec7a142bd8a63d25fa9.diff
Author: Kevin P. Neal
Date: 2020-12-15T12:58:47-05:00
New Revision: 2ec5973fddb07e66ae0df7d0aac2cda55387b0bd
URL:
https://github.com/llvm/llvm-project/commit/2ec5973fddb07e66ae0df7d0aac2cda55387b0bd
DIFF:
https://github.com/llvm/llvm-project/commit/2ec5973fddb07e66ae0df7d0aac2cda55387b0bd.diff
Author: Kevin P. Neal
Date: 2020-12-15T12:38:10-05:00
New Revision: 67a1ffd88ac08526bb6cfc7b3f607e6668ba1c70
URL:
https://github.com/llvm/llvm-project/commit/67a1ffd88ac08526bb6cfc7b3f607e6668ba1c70
DIFF:
https://github.com/llvm/llvm-project/commit/67a1ffd88ac08526bb6cfc7b3f607e6668ba1c70.diff
Author: Kevin P. Neal
Date: 2020-12-08T10:18:32-05:00
New Revision: acd4950d4f1e4ef5375a8a894a5b359caf7e844b
URL:
https://github.com/llvm/llvm-project/commit/acd4950d4f1e4ef5375a8a894a5b359caf7e844b
DIFF:
https://github.com/llvm/llvm-project/commit/acd4950d4f1e4ef5375a8a894a5b359caf7e844b.diff
Author: Kevin P. Neal
Date: 2020-11-30T11:59:37-05:00
New Revision: abfbc5579bd4507ae286d4f29f8a157de0629372
URL:
https://github.com/llvm/llvm-project/commit/abfbc5579bd4507ae286d4f29f8a157de0629372
DIFF:
https://github.com/llvm/llvm-project/commit/abfbc5579bd4507ae286d4f29f8a157de0629372.diff
Author: Kevin P. Neal
Date: 2020-11-12T12:51:35-05:00
New Revision: ac523d2de51c4119ae6233200af07599d61de1fc
URL:
https://github.com/llvm/llvm-project/commit/ac523d2de51c4119ae6233200af07599d61de1fc
DIFF:
https://github.com/llvm/llvm-project/commit/ac523d2de51c4119ae6233200af07599d61de1fc.diff
Author: Kevin P. Neal
Date: 2020-07-10T10:34:15-04:00
New Revision: 523a8513f8ba4d6b111496c541b9ba9f4d5f0261
URL:
https://github.com/llvm/llvm-project/commit/523a8513f8ba4d6b111496c541b9ba9f4d5f0261
DIFF:
https://github.com/llvm/llvm-project/commit/523a8513f8ba4d6b111496c541b9ba9f4d5f0261.diff
Author: Kevin P. Neal
Date: 2020-07-10T08:49:45-04:00
New Revision: d4ce862f2aa8b7e4b11462bd72014b08ab9468b3
URL:
https://github.com/llvm/llvm-project/commit/d4ce862f2aa8b7e4b11462bd72014b08ab9468b3
DIFF:
https://github.com/llvm/llvm-project/commit/d4ce862f2aa8b7e4b11462bd72014b08ab9468b3.diff
Author: Kevin P. Neal
Date: 2020-07-06T14:57:45-04:00
New Revision: 916e2ca99785d34db73945940923a487efad32ad
URL:
https://github.com/llvm/llvm-project/commit/916e2ca99785d34db73945940923a487efad32ad
DIFF:
https://github.com/llvm/llvm-project/commit/916e2ca99785d34db73945940923a487efad32ad.diff
Author: Kevin P. Neal
Date: 2020-07-06T14:44:06-04:00
New Revision: 2b35511350454dd22997f129ee529e3fdb129ac2
URL:
https://github.com/llvm/llvm-project/commit/2b35511350454dd22997f129ee529e3fdb129ac2
DIFF:
https://github.com/llvm/llvm-project/commit/2b35511350454dd22997f129ee529e3fdb129ac2.diff
Author: Kevin P. Neal
Date: 2020-07-06T14:20:49-04:00
New Revision: bfdafa32a0fa4b2745627fe57dd253db10ac3fcf
URL:
https://github.com/llvm/llvm-project/commit/bfdafa32a0fa4b2745627fe57dd253db10ac3fcf
DIFF:
https://github.com/llvm/llvm-project/commit/bfdafa32a0fa4b2745627fe57dd253db10ac3fcf.diff
Author: Kevin P. Neal
Date: 2020-07-06T13:32:49-04:00
New Revision: 39d2ae0afb2312a15e4d15a0855b35b4e1c49fc4
URL:
https://github.com/llvm/llvm-project/commit/39d2ae0afb2312a15e4d15a0855b35b4e1c49fc4
DIFF:
https://github.com/llvm/llvm-project/commit/39d2ae0afb2312a15e4d15a0855b35b4e1c49fc4.diff
Author: Kevin P. Neal
Date: 2020-06-26T11:09:16-04:00
New Revision: e91c4b2af2c03ef599623243e625f347e166673d
URL:
https://github.com/llvm/llvm-project/commit/e91c4b2af2c03ef599623243e625f347e166673d
DIFF:
https://github.com/llvm/llvm-project/commit/e91c4b2af2c03ef599623243e625f347e166673d.diff
Author: Andrew Wock
Date: 2020-06-25T11:42:58-04:00
New Revision: 15edd7aaa7142e5db2a6cf9b81e4514967431824
URL:
https://github.com/llvm/llvm-project/commit/15edd7aaa7142e5db2a6cf9b81e4514967431824
DIFF:
https://github.com/llvm/llvm-project/commit/15edd7aaa7142e5db2a6cf9b81e4514967431824.diff
L
Author: Andrew Wock
Date: 2020-06-03T09:45:27-04:00
New Revision: 15a1780a10e3ba4573b8c1e02e24d3f0a785e199
URL:
https://github.com/llvm/llvm-project/commit/15a1780a10e3ba4573b8c1e02e24d3f0a785e199
DIFF:
https://github.com/llvm/llvm-project/commit/15a1780a10e3ba4573b8c1e02e24d3f0a785e199.diff
L
Author: Kevin P. Neal
Date: 2020-04-03T15:47:19-04:00
New Revision: 9f1c35d8b14f026b7bc4b21b9eecafbbb42c42a2
URL:
https://github.com/llvm/llvm-project/commit/9f1c35d8b14f026b7bc4b21b9eecafbbb42c42a2
DIFF:
https://github.com/llvm/llvm-project/commit/9f1c35d8b14f026b7bc4b21b9eecafbbb42c42a2.diff
Author: Kevin P. Neal
Date: 2020-04-03T15:23:49-04:00
New Revision: d7a0516ddcfe373bb780d6fc19d76fe74ecc0061
URL:
https://github.com/llvm/llvm-project/commit/d7a0516ddcfe373bb780d6fc19d76fe74ecc0061
DIFF:
https://github.com/llvm/llvm-project/commit/d7a0516ddcfe373bb780d6fc19d76fe74ecc0061.diff
Author: Andrew Wock
Date: 2020-04-03T14:59:33-04:00
New Revision: ba87430cadb2d5d0ee8e4b75101d7abcf6b321bf
URL:
https://github.com/llvm/llvm-project/commit/ba87430cadb2d5d0ee8e4b75101d7abcf6b321bf
DIFF:
https://github.com/llvm/llvm-project/commit/ba87430cadb2d5d0ee8e4b75101d7abcf6b321bf.diff
L
Author: Kevin P. Neal
Date: 2020-02-06T19:17:14-05:00
New Revision: ad0e03fd4c8066843f4138e44661ee0287ceb631
URL:
https://github.com/llvm/llvm-project/commit/ad0e03fd4c8066843f4138e44661ee0287ceb631
DIFF:
https://github.com/llvm/llvm-project/commit/ad0e03fd4c8066843f4138e44661ee0287ceb631.diff
Author: Kevin P. Neal
Date: 2020-02-06T15:28:36-05:00
New Revision: 80e17e5fcc09dc5baa940022e6988fcb08c5d92d
URL:
https://github.com/llvm/llvm-project/commit/80e17e5fcc09dc5baa940022e6988fcb08c5d92d
DIFF:
https://github.com/llvm/llvm-project/commit/80e17e5fcc09dc5baa940022e6988fcb08c5d92d.diff
Author: Kevin P. Neal
Date: 2020-02-06T14:20:44-05:00
New Revision: 208470dd5d0a46bc3c24b66489b687eda4954262
URL:
https://github.com/llvm/llvm-project/commit/208470dd5d0a46bc3c24b66489b687eda4954262
DIFF:
https://github.com/llvm/llvm-project/commit/208470dd5d0a46bc3c24b66489b687eda4954262.diff
Author: Kevin P. Neal
Date: 2020-01-21T12:44:39-05:00
New Revision: 2e667d07c773f684ea893b9ce5d9b73e9f23b438
URL:
https://github.com/llvm/llvm-project/commit/2e667d07c773f684ea893b9ce5d9b73e9f23b438
DIFF:
https://github.com/llvm/llvm-project/commit/2e667d07c773f684ea893b9ce5d9b73e9f23b438.diff
Author: Kevin P. Neal
Date: 2020-01-02T12:14:43-05:00
New Revision: 89d6c288ba5adb20d92142e9425f7ab79b8f159e
URL:
https://github.com/llvm/llvm-project/commit/89d6c288ba5adb20d92142e9425f7ab79b8f159e
DIFF:
https://github.com/llvm/llvm-project/commit/89d6c288ba5adb20d92142e9425f7ab79b8f159e.diff
Author: Kevin P. Neal
Date: 2019-12-24T09:38:34-05:00
New Revision: 0293b5d67123786daf80528af9ef356b7bd9d2f6
URL:
https://github.com/llvm/llvm-project/commit/0293b5d67123786daf80528af9ef356b7bd9d2f6
DIFF:
https://github.com/llvm/llvm-project/commit/0293b5d67123786daf80528af9ef356b7bd9d2f6.diff
Author: Kevin P. Neal
Date: 2019-12-10T13:09:12-05:00
New Revision: 6515c524b0ae50dd5bb052558afa8c81d3a75780
URL:
https://github.com/llvm/llvm-project/commit/6515c524b0ae50dd5bb052558afa8c81d3a75780
DIFF:
https://github.com/llvm/llvm-project/commit/6515c524b0ae50dd5bb052558afa8c81d3a75780.diff
Author: kpn
Date: Tue Aug 14 10:06:56 2018
New Revision: 339693
URL: http://llvm.org/viewvc/llvm-project?rev=339693&view=rev
Log:
We have in place support for parsing #pragma FENV_ACCESS, but that
information is then discarded with a warning to the user that we don't
support it.
This patch get
Author: kpn
Date: Tue Aug 14 09:57:10 2018
New Revision: 339691
URL: http://llvm.org/viewvc/llvm-project?rev=339691&view=rev
Log:
Revert test commit
Modified:
cfe/trunk/lib/Parse/ParseAST.cpp
Modified: cfe/trunk/lib/Parse/ParseAST.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/
Author: kpn
Date: Tue Aug 14 09:56:25 2018
New Revision: 339690
URL: http://llvm.org/viewvc/llvm-project?rev=339690&view=rev
Log:
Test commit
Modified:
cfe/trunk/lib/Parse/ParseAST.cpp
Modified: cfe/trunk/lib/Parse/ParseAST.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/P
53 matches
Mail list logo