Skip to content
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

Address issue 4369 "as best we can" #4441

Merged
merged 1 commit into from
Sep 12, 2023
Merged

Address issue 4369 "as best we can" #4441

merged 1 commit into from
Sep 12, 2023

Conversation

SeanTAllen
Copy link
Member

After extensive investigation of the weirdness that is #4369, Joe and I believe the issue is most likely an LLVM bug. However, we don't have time to pursue further.

During the investigation, I came to believe that the change to use CodeGenOpt::Default instead of CodeGenOpt::None for target optimizations would be prudent.

It prevents the known instances of bugs like #4369 which is nice but not key to this change. Changes things because they make symptoms go away isn't a good strategy if you don't understand why. We do not "fully" understand the impact of this change on bugs like #4369. However, it appears that CodeGenOpt::None is a code path that sees little use or testing and is more prone to bugs/regression.

Given that we have seen more than 1 bug that "smells like" #4369, we felt it was wise to switch to Default from None at least until such time as we understand #4369 and #3874. LLVM is a complicated beast and using code paths that are little used can be a dangerous proposition.

This commit doesn't include release notes as we addresses to user facing instance of #4369 already.

After extensive investigation of the weirdness that is #4369, Joe
and I believe the issue is most likely an LLVM bug. However, we
don't have time to pursue further.

During the investigation, I came to believe that the change to use
CodeGenOpt::Default instead of CodeGenOpt::None for target optimizations
would be prudent.

It prevents the known instances of bugs like #4369 which is nice but
not key to this change. Changes things because they make symptoms
go away isn't a good strategy if you don't understand why. We do not
"fully" understand the impact of this change on bugs like #4369. However,
it appears that CodeGenOpt::None is a code path that sees little use
or testing and is more prone to bugs/regression.

Given that we have seen more than 1 bug that "smells like" #4369, we felt
it was wise to switch to Default from None at least until such time as we
understand #4369 and #3874. LLVM is a complicated beast and using code paths
that are little used can be a dangerous proposition.

This commit doesn't include release notes as we addresses to user facing
instance of #4369 already.
@SeanTAllen SeanTAllen requested a review from a team September 12, 2023 13:50
@ponylang-main ponylang-main added the discuss during sync Should be discussed during an upcoming sync label Sep 12, 2023
@SeanTAllen SeanTAllen merged commit 9d7360b into main Sep 12, 2023
21 checks passed
@SeanTAllen SeanTAllen deleted the 4369-patch branch September 12, 2023 18:11
@ponylang-main ponylang-main removed the discuss during sync Should be discussed during an upcoming sync label Sep 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants