llvm-project
85f5953f - [LLVM][MC] Unique per-hw mode field encoding code in CodeEmitterGen (#172764)

Commit
37 days ago
[LLVM][MC] Unique per-hw mode field encoding code in CodeEmitterGen (#172764) Change CodeEmitterGen to de-duplicate case statements emitted for encoding instruction fields for different HW modes when they contain the same code. When 2 or more HW modes share the same code for encoding the fields of an instruction, we currently generate a case statement for each mode and emit the same code in each case body. Instead, unique the case statement bodies and emit each body just once. Some minor refactor to help with this: 1. Make `emitCaseMap` a standalone static function and use `ListSeparator` to emit the case statements. 2. Add a type-alias for the map of cases. No upstream target seems to use this feature (`EncodingInfos`) but this results in ~3% code size reduction in a downstream target.
Author
Parents
Loading