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

[SR-9573] [QoI] IRGen doesn't fold dead BBs #52020

Open
compnerd opened this issue Dec 24, 2018 · 0 comments
Open

[SR-9573] [QoI] IRGen doesn't fold dead BBs #52020

compnerd opened this issue Dec 24, 2018 · 0 comments
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself IRGen LLVM IR generation performance

Comments

@compnerd
Copy link
Collaborator

Previous ID SR-9573
Radar None
Original Reporter @compnerd
Type Bug
Additional Detail from JIRA
Votes 0
Component/s Compiler
Labels Bug, IRGen, Performance
Assignee None
Priority Medium

md5: fc926d4189f88886ee9fc53d5c8709fc

Issue Description:

Noted when debugging SILOptimizer.let_properties_opts_runtime which compiles with optimization ({{-O}}). I noticed that at multiple sites, we do not collapse the dead paths:

{{ retq}}
.LBB0_10:
{{ #APP}}
{{ #NO_APP}}
{{ ud2}}
{{ ud2}}
.LBB0_11:
{{ #APP}}
{{ #NO_APP}}
{{ ud2}}
{{ ud2}}
.LBB0_12:
{{ #APP}}
{{ #NO_APP}}
{{ ud2}}
{{ ud2}}
.LBB0_13:
{{ #APP}}
{{ #NO_APP}}
{{ ud2}}
{{ ud2}}
.LBB0_14:
{{ #APP}}
{{ #NO_APP}}
{{ ud2}}
{{ ud2}}
.LBB0_15:
{{ #APP}}
{{ #NO_APP}}
{{ ud2}}
{{ ud2}}

While this can be helpful in normal debugging for recovering code flow, it seems that in optimized mode, we should be collapsing the dead paths.

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself IRGen LLVM IR generation performance
Projects
None yet
Development

No branches or pull requests

1 participant