
On Tuesday 17 March 2009 14:13:39 Kumar Gala wrote:
if C code is doing ptr checks, the compiler should make sure that pointer is not dereferenced at all if the hardware cannot suffer the consequences, even speculatively.
There is no reasonable way for the compiler to prevent such speculative accesses. Non-memory-like mappings must have the guarded bit set. That is what the bit is there for.
if the hardware doesnt have a way of preventing it, then the compiler must nop bad accesses that are unknown.
i'm not sure your example proves your position. if you have a region that cannot stand speculative access, how do you handle bad pointer checking if the compiler may generate code that'll speculatively hit it at any time ?
This has nothing to do w/the compiler but how HW speculation actually works.
If you don't understand that say so and ask about it.. Dont try and claim Scott's example and patch aren't valid because they are.
i never said Scott's proposed change was wrong -mike