Landing: c53325ef2276

Project / Subsystem

binutils / x86

Date

2026-08-14

Author

Jan Beulich <jbeulich@sourceware.org>

Commit

c53325ef22766ba2369e6e5563f870ebb4ea7553

Source

public_inbox

Perf win

No

Breaking

No

All attributes

project
binutils
subsystem
x86
patch_id
—
commit_hash
c53325ef22766ba2369e6e5563f870ebb4ea7553
source_type
public_inbox
headline
x86: Optimize instruction template operand type storage
tldr
Reduces memory usage in x86 instruction parsing by sharing operand type combinations.
author
Jan Beulich <jbeulich@sourceware.org>
outcome
committed
performance_win
false
breaking_change
false
series_id
—
series_parts
[]
tags
  • • x86
  • • assembler
  • • optimization
  • • memory usage
discussion_id_link
—
bugzilla_pr
—
date
2026-08-14T00:00:00.000Z

This commit optimizes the x86 instruction parser by moving the operand_types array out of struct insn_template. Instead, a global array i386_operand_types now stores all unique operand combinations, and struct insn_template stores an index to this array. This significantly reduces memory usage and redundancy, especially for instructions with common operand patterns, decreasing the number of stored operand types from over 10,000 to 770.