On 11/05/13 05:02, Ilya Enkovich wrote:
If I just set abnormal phi flag for SSA_NAME, SSA verifier should fail
because it does not used in abnormal phi, shouldn't it?
Well, we can also change the verifier to not fail when it finds that
flag set on a pointer when bounds checking is enabled.
Also it would
prevent all optimizations for these SSA_NAMEs right? Instrumentation
is performed on the earlier stage, right after we build SSA. I think
using abnormal phi flag and binding pointers with bounds via calls
would prevent some useful optimizations.
It certainly prevents some optimizations, but it's main purpose is to
avoid certain copy propagation and coalescing. If you don't set that
flag, there's probably all kinds places you're going to have to hack up
to keep the properties you desire for bounded pointers.
I would rather be a bit conservative and miss some optimizations by
setting SSA_NAME_OCCURS_IN_ABNORMAL_PHI than be continually hacking up
passes to special case bounded pointers. We can obviously revisit this
decision later.
Jeff