Skip to content

Fix build warning caused by mixed signed/unsigned compare #69797

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Oct 20, 2023

Conversation

andykaylor
Copy link
Contributor

No description provided.

Andy Kaylor added 3 commits October 20, 2023 12:33
In SimplifyIndvar::replaceFloatIVWithIntegerIV() the return value of getFPMantissaWidth() was being cast as an unsigned integer and then compared with the number of bits needed to represent an integer that was cast to and from a floating-point type. This is a problem because getFPMantissaWidth() returns -1 if the type does not have a stable mantissa.

Currently the only type that returns -1 is ppc_fp128, so you'd need a pretty big induction variable to cause a problem. However, this problem will be more likely to be exposed when we implement support for decimal floating-point types.

Strictly speaking, what we want to know here is the size of the biggest integer that can be represented exactly. We could get that information even with an unstable mantissa width, but getFPMantissaWidth() won't do it.
This fixes a build warning caused by mixed signed/unsigned compare
@andykaylor andykaylor requested review from nikic and vfdff October 20, 2023 23:41
@andykaylor andykaylor merged commit 4e0c6d3 into llvm:main Oct 20, 2023
Guzhu-AMD pushed a commit to GPUOpen-Drivers/llvm-project that referenced this pull request Oct 26, 2023
Local branch amd-gfx cda2378 Merged main:28ae42e66251 into amd-gfx:b6fe60a67eed
Remote branch main 4e0c6d3 Fix build warning caused by mixed signed/unsigned compare (llvm#69797)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants