|
From: Florian K. <br...@ac...> - 2012-06-02 17:47:21
|
On 06/02/2012 11:22 AM, John Reiser wrote: > > While the reduction in size is welcome (especially to "nice" sizes > such as 32 and 16 bytes), the cost of the additional indirection > could be large due to memory latency, fragmentation of additional allocation, > cache pressure or direct cache misses. In general, yes. But probably not in our case. VEX memory allocation is banked, and the two memory blocks we allocate for, e.g. a quarternary IR op (one IRExpr and one IRQop) are next to each other in a contiguous piece of memory. So the extra memory access due to the additional indirection goes to memory very close by. I wouldn't expect any difference due to extra cache misses here. Also, keep in mind, that IRQops are extremely rare and only for those you incur the extra indirection, double allocation etc. Likewise, IRTriops are mostly used for floating point, which means we wouldn't see these much in typical applications. perf/f[f]bench are probably the best testcases we have at hand that would exercise this. Florian |