When debugging it is usefull to be able to look at the content of containers.
But many containers are templated so there member functions are not emitted if they are not used.
this patch adds the used attribute to some member functions of SmallVector, DenseMap and PointerIntPair
when asserts are enabled and the host complier supports it. this way interacting with thoses type
from the debugger is easier.
in this patch, I only updated the containers I most frequently have this issue with.
but many other could get the same treatment.
We'd want to use LLVM_USED_FOR_DEBUG instead of LLVM_ATTRIBUTE_USED here too?