|
|
|
|
|
by cgrand-net
2805 days ago
|
|
"Now I understand that rdi, rsi, etc. are nothing but compressed node identifiers in an interference graph. Ideally we'd have infinite registers: each instruction would read from previous registers and output to a new register. And so we would never reuse any register, and there'd be no data hazards" I'm under the impression that we don't see the causality flowing in the same direction. To me we first had a limited set of registers (imposed by the ISA), then to get better perf through out of order execution, cpus had to infer a deps graph and use register renaming. Ironically all this silicon is spent to recover information that was known to the compiler (eg through SSA) and lost during codegen (register allocation). |
|