Static
-
-
- End of conversation
New conversation -
-
-
Did you also check for instruction sequences? We did this for OpenRISC many years ago to get input about useful instructions to add to a future or2k ISA. Never got to do a or2k though as
@risc_v came and implemented basically everything we had planned to do (and likely better) -
I did look at sequences in this experiment from last year: http://svn.clifford.at/handicraft/2017/bitcode/ …
- Show replies
New conversation -
-
-
macro-op fusion pattern matching would be useful. i.e. pairs where the temporary in the first instruction overwrites the second. However there is a chicken and egg problem because to properly exploit macro-op fusion, the compiler needs rules to emit the pairs.
-
What’s worse is that the instruction scheduling you should do for simple macro-op fusion is the exact *opposite* of what you should do for a simple in-order superscalar processor. I.e. deliberately put dependent instructions together instead of deliberately separating them.
- Show replies
New conversation -
-
-
GCC also uses different strategies for different ISAs. Because RISC-V lacks scaled indexes loads, GCC appears to emit multiple copies of the loop induction variable for access to arrays of different strides. GCC would need rules to take advantage of macro-op fusion.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
The x86 register-memory for example creates LOAD-OP ; ALU-OP pairs where the implicit temporary would be overwritten if there were macro-op fusion rules (AGU ALU bypassing into the Load Store Unit). Dependent or temporal parallelism vs Independent or spatial parallelism.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.