[PATCH] D26955: Fix bitwidth for x87 extended-precision floating-point type
Eli Friedman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Nov 28 13:53:44 PST 2016
efriedma added inline comments.
================
Comment at: lib/Basic/TargetInfo.cpp:229
switch (BitWidth) {
- case 96:
+ case 80:
if (&getLongDoubleFormat() == &llvm::APFloat::x87DoubleExtended)
----------------
ddcc wrote:
> bruno wrote:
> > The change makes sense but I believe there's some historical reason why this is 96 instead of 80? What problem have you found in practice? Do you have a testcase or unittest that exercise the issue (and that could be added to the patch)?
> I'd be curious why it was historically set to 96; I dug up rL190044 as the original commit, but it doesn't mention 80 vs 96 for this at all.
>
> I've been implementing an alternative symbolic constraint solver backend for the static analyzer, including floating-point support, which performs some type conversion and needs to reason about bitwidth. I'm still working on those patches, since they touch a lot of code and currently break some tests. I can write up a testcase for this issue, though I've only written IR testcases before and I'm not sure how I'd directly call a clang internal function?
It was set to 96 because that's what the only caller (handleModeAttr) expects; see https://reviews.llvm.org/rL65935 and https://reviews.llvm.org/rL190926. It's arbitrary as far as I know.
https://reviews.llvm.org/D26955
More information about the cfe-commits
mailing list