Compiler microopt - #24
Open
adienes wants to merge 24 commits into
Open
Conversation
Invoke deferred work with the interpreter already stored in the inference state to avoid boxing a specialized interpreter. Co-authored-by: OpenAI Codex <codex@openai.com>
Expose proof stream container invariants to inference during edge materialization. Co-authored-by: OpenAI Codex <codex@openai.com>
Avoid reconstructing immutable IR nodes when SSA renumbering leaves an operand unchanged. Co-authored-by: OpenAI Codex <codex@openai.com>
Pre-scan for an enter node before allocating try and catch analysis state. Co-authored-by: OpenAI Codex <codex@openai.com>
Keep the first signature directly and allocate a vector only when a target has multiple distinct signatures. Co-authored-by: OpenAI Codex <codex@openai.com>
Use the allocation-free singleton query in optimizer and escape-analysis consumers. Co-authored-by: OpenAI Codex <codex@openai.com>
Retain heap, worklist, and bit-set storage across slot dominance-frontier queries. Co-authored-by: OpenAI Codex <codex@openai.com>
Reuse the consumed incoming-value vector for one CFG successor and copy it only for additional successors. Co-authored-by: OpenAI Codex <codex@openai.com>
Bind call arguments once and isolate delayed TypeVar callback locals to avoid captured mutable boxes. Co-authored-by: OpenAI Codex <codex@openai.com>
Pass the interpreter already stored in the inference state to the dynamic method-match query. Co-authored-by: OpenAI Codex <codex@openai.com>
Retain block vectors, predecessor worklist, and live-in bit set across slot liveness queries. Co-authored-by: OpenAI Codex <codex@openai.com>
Create assign-once result storage only when generic-call inference actually yields. Co-authored-by: OpenAI Codex <codex@openai.com>
Replace nested restartable closures with explicit task state and top-level step functions. Co-authored-by: OpenAI Codex <codex@openai.com>
Use the callable default form of get so successful cache lookups do not construct an unused empty index vector. Co-authored-by: OpenAI Codex <codex@openai.com>
Represent all-zero basic-block alias tables with a sentinel and materialize vectors only for entry states that carry aliases. Co-authored-by: OpenAI Codex <codex@openai.com>
Use MethodMatchInfo as the source of truth for simple lookups and reconstruct MethodMatchTarget values on indexed access, while retaining flattened union-split storage. Co-authored-by: OpenAI Codex <codex@openai.com>
Count inline bodies nested in union splits during CFG planning and reuse that traversal for the existing result-size estimate. Co-authored-by: OpenAI Codex <codex@openai.com>
Defer construction of the lifted-leaf map until a value can be recorded, while preserving the empty successful result. Co-authored-by: OpenAI Codex <codex@openai.com>
Use shared read-only buffers for empty new-node streams and promote them to owned storage before the first insertion. Co-authored-by: OpenAI Codex <codex@openai.com>
Route mutable expression operands through a small inline helper while keeping immutable IR-node reconstruction out of line. This avoids the generic setter cascade on the dominant UseRef mutation path. Co-authored-by: OpenAI Codex <codex@openai.com>
Reserve the reusable DFS stack from the CFG block count to avoid geometric growth during fresh dominator-tree construction. Co-authored-by: OpenAI Codex <codex@openai.com>
Construct one-shot DFS map storage at its target size without clearing entries that DFS immediately overwrites. Keep zero-initialized construction unchanged for reusable trees. Co-authored-by: OpenAI Codex <codex@openai.com>
Route expression-backed UseRef reads through a compact inline helper while retaining the generic node cascade for immutable IR nodes. This avoids repeated operand splitting and type checks on the dominant SSA-use read path. Co-authored-by: OpenAI Codex <codex@openai.com>
Advance expression-backed use iterators directly through argument vectors while retaining generic token handling for immutable nodes and phi holes. Co-authored-by: OpenAI Codex <codex@openai.com>
adienes
force-pushed
the
compiler_microopt
branch
from
August 14, 2026 18:12
65e68ab to
21b360b
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.