1. A computer-readable storage medium having computer-executable instructions for causing a computer to perform a method, comprising: analyzing source code associated with a transactional memory system to identify operations that create one or more unmanaged pointers; providing a static analysis that tracks targets of unmanaged pointer values and associates a respective descriptor for each of the one or more unmanaged pointers; and using the targets to determine how accesses through the one or more unmanaged pointers are to be transacted, wherein if an unmanaged pointer of the one or more unmanaged pointers points to a location that comprises a local variable, then the respective descriptor associated with the unmanaged pointer indicates that accesses via the unmanaged pointer do not need to be transacted, wherein if the unmanaged pointer points to a location that comprises a static variable, then the respective descriptor names the static variable, wherein if the unmanaged pointer points to a location that comprises a heap allocated object or array, then the respective descriptor references a corresponding local variable allocated to store an object reference for the heap allocated object or array.