I disassembled all libraries and binaries in all riscv64 debian packages and counted how often each individual instruction is used: http://svn.clifford.at/handicraft/2018/rvinsfreq/combined.txt … (The most frequently used instruction is "http://c.mv ", followed by "auipc", "addi", and "jal".)
-
-
Replying to @oe1cxw
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.
1 reply 0 retweets 0 likes -
Replying to @contramork @oe1cxw
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.
3 replies 0 retweets 1 like -
Replying to @BruceHoult @oe1cxw
There is also a debate as to whether macro-op fusion pairs should be represented by assembler pseudo ops or whether they are handled with macro-op fusion aware instruction selection and instruction scheduling.
3 replies 0 retweets 0 likes -
Replying to @contramork @oe1cxw
I note that Intel only does their limited fusion (of cmp/jcc pairs) with adjacent instructions. Different situation though, as almost everything modifies the condition codes that are the link between the cmp and jcc so non-adjacent opportunities would be rare anyway.
3 replies 0 retweets 1 like -
Replying to @BruceHoult @oe1cxw
However, Intel also has fused and unfused micro-op domains. i.e. ADD rax, [rbx] in the unfused domain is LOAD-OP + ALU-OP and x86 has the AGU (address generation unit) on the LSU. Look at this: https://cx.rv8.io/g/RofU4t (RISC-V has 3 copies of the loop induction variable).
3 replies 0 retweets 1 like
The a3/a5 thing is weird. I wonder why the compiler is doing that..
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.