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