[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Question about direct block chaining
From: |
Taylor Simpson |
Subject: |
Question about direct block chaining |
Date: |
Mon, 18 Apr 2022 14:54:46 +0000 |
I've been working on speeding up the Hexagon target by using direct block
chaining. Due to Hexagon's VLIW packet semantics (possibly multiple branches
in a packet, not processing change-of-flow until packet commit), we have
historically treated all change-of-flow as indirect.
I looked at the documentation here
https://qemu.readthedocs.io/en/latest/devel/tcg.html#direct-block-chaining
I implemented both approaches for inner loops and didn't see speedup in my
benchmark. So, I have a couple of questions
1) What are the pros and cons of the two approaches (lookup_and_goto_ptr and
goto_tb + exit_tb)?
2) How can I verify that direct block chaining is working properly?
With -d exec, I see lines like the following with goto_tb + exit_tb but
NOT lookup_and_goto_ptr
Linking TBs 0x7fda44172e00 [0050ac38] index 1 -> 0x7fda44173b40 [0050ac6c]
Thanks,
Taylor
- Question about direct block chaining,
Taylor Simpson <=