-
Notifications
You must be signed in to change notification settings - Fork 8
pre-commit: PR143677 #2421
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
pre-commit: PR143677 #2421
Conversation
Diff moderunner: ariselab-64c-docker 1077 files changed, 680566 insertions(+), 681038 deletions(-) 4 4 bench/actix-rs/optimized/14bh10sj718x2c7a.ll |
|
Here is a brief summary of the most significant changes in the provided LLVM IR diff:
High-Level OverviewThe patch primarily consists of cleanup and optimization of switch statements, including removal of XOR idioms that previously transformed values for switch labels. There's also a focus on better lifetime management, PHI node reordering, and explicit use of poison to model undefined behavior safely. Many changes affect error handling and unwinding paths, particularly in Rust crates, by removing unreachable blocks and simplifying resume points. The overall goal seems to be improving codegen quality, reducing redundancy, and making undefined control flow safer and clearer to the optimizer. model: qwen-plus-latest |
| tail call void @_ZN6brotli3enc17compress_fragment30BrotliCompressFragmentFastImpl17h24e109efb8be68e4E.llvm.2002727345234535996(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2, i64 noundef %3, i32 noundef %4, ptr noalias noundef nonnull align 4 %5, i64 noundef %6, i64 noundef %23, ptr noalias noundef nonnull align 1 %8, i64 noundef %9, ptr noalias noundef nonnull align 2 %10, i64 noundef %11, ptr noalias noundef nonnull align 8 dereferenceable(8) %12, ptr noalias noundef nonnull align 1 %13, i64 noundef %14, ptr noalias noundef nonnull align 8 dereferenceable(8) %15, ptr noalias noundef nonnull align 1 %16, i64 noundef %17) | ||
| .sink.split2: ; preds = %21 | ||
| %switch.gep = getelementptr inbounds nuw [7 x i64], ptr @switch.table._ZN6brotli3enc17compress_fragment26BrotliCompressFragmentFast17hcd5548c609f0d180E, i64 0, i64 %switch.tableidx | ||
| %switch.load = load i64, ptr %switch.gep, align 8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regression
| i64 -9223372036854775803, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" | ||
| i64 -9223372036854775798, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" | ||
| i64 -9223372036854775797, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" | ||
| i64 -9223372036854775792, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Creating unfortunately large immediates here.
Link: llvm/llvm-project#143677
Requested by: @nikic