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
There are three obvious sub-graphs whose results are not used a lot of the time:
The entire ALU result is unused on every @ instruction, which is 9.5k out of 27.5k (35%).
Only one of the + and & ALU ops is ever used.
The JMP condition is unused unless not an @and one of the three bits is set.
I tried converting each of these into if instr & 0x8000: by hand, and got ~25% speedup overall.
To automate that would involve analyzing the node graph to determine what parts of the graph need to be evaluated when. Something like: "what subgraphs are referenced only on one side of a conditional (i.e. Mux16), and what is the condition?" but it's tricky because the ALU output is referenced many times, with various conditions, all of which include the same bit of the instruction in some way.
Turns out CS is hard.
The text was updated successfully, but these errors were encountered:
There are three obvious sub-graphs whose results are not used a lot of the time:
@
instruction, which is 9.5k out of 27.5k (35%).+
and&
ALU ops is ever used.@
and one of the three bits is set.I tried converting each of these into
if instr & 0x8000:
by hand, and got ~25% speedup overall.To automate that would involve analyzing the node graph to determine what parts of the graph need to be evaluated when. Something like: "what subgraphs are referenced only on one side of a conditional (i.e. Mux16), and what is the condition?" but it's tricky because the ALU output is referenced many times, with various conditions, all of which include the same bit of the instruction in some way.
Turns out CS is hard.
The text was updated successfully, but these errors were encountered: