You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 17, 2026. It is now read-only.
Here is a concise summary of the major changes in this LLVM IR diff:
Reordering of bit manipulation operations: In multiple files (e.g., amapUniq.ll, mapperTree.ll, satSolver.ll, folly/*.ll), sequences of and, shr, and add operations were reordered — typically moving and after arithmetic or combining shifts with masks — preserving semantics while improving instruction scheduling or enabling later optimizations.
Refinement of pointer arithmetic and memory alignment logic: Several benchmarks (cmake/System.ll, eastl/EACallback.ll, bdwgc/gc.ll, duckdb/...ll) replaced naive pointer subtraction/addition with explicit masking (e.g., and i64 ..., -8 or -16) to compute aligned offsets, improving safety and clarity of buffer size calculations and memmove/memcpy bounds.
Fixes and simplifications in phi node operand matching: Across many files (mpmPre.ll, graphviz/emit.ll, libphonenumber/...ll, llvm/InstructionCombining.ll), phi node incoming value blocks were corrected to reference the actual predecessor basic blocks, not stale or mislabeled ones (e.g., %20 → %19, %98 → %97). This ensures correct SSA form and dataflow.
Optimization of color/alpha channel arithmetic: In image-processing code (dvbsubdec.ll, image-rs/...ll, webp.ll, libwebp/lossless_sse2.ll), RGB/ARGB bitfield extraction and blending was restructured — e.g., replacing lshr + and pairs with direct and-then-add patterns — to reduce instruction count and better expose vectorization opportunities (notably shifting from /2 to /4 in averaging).
Cleanup of dead or redundant control flow: Several functions (aspect_ratio.ll, harfbuzz/...ll, icu/ucnv_bld.ll) removed unnecessary basic blocks (e.g., 132:, 154:), merged switch cases, or simplified conditionals (e.g., replacing icmp ult with icmp eq after masking), reducing CFG complexity without altering behavior.
These changes reflect ongoing compiler-driven optimization passes (e.g., InstCombine, SimplifyCFG, LoopVectorizer) and manual tuning for correctness, performance, and maintainability — especially around low-level bit manipulation, memory layout, and SSA integrity.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link: llvm/llvm-project#165975
Requested by: @dtcxzyw