For the user action recording feature: always record events (so that the recording is sensible), but only save the recording if the user has enabled user action recording.
Use llvm::sys::fs::createTemporaryFile rather than llvm::sys::fs::createUniqueFile so that we do not need to worry about the directory in which temporary graph files will be created.
Move printing of Clang-Mapped and Unmapped trace information into separate source files.
Correctly handle empty source files in Clang-Mapped traces.
Merge upstream development into lab development.
Correct implementation of moveForwardUntilMemoryChanges() and moveBackwardUntilMemoryChanges().
Don't use "constraint=false" because it makes dot fail to correctly connect the edges to ports.
When checking if a Stmt is top-level, if the parent is a top-level ParenExpr then treat the child as top-level, because the parent won't exist in the IR.
Update type matching between different ASTContexts to handle types with cyclical references.
Fix function interception in the presence of custom interceptors.

Allow intercepting functions defined by the user's program if the user's program also provides an interceptor.

Don't redirect calls that are within an intercepted function or an interceptor function.
Add additional functions to the runtime library for use in interceptor functions.

IsKnownMemoryCovering : calls the active thread listener's isKnownMemoryRegionCovering.
RemoveKnownMemory : calls the active thread listener's removeKnownMemoryRegion.
AddKnownMemory : calls the active thread listener's addKnownMemoryRegion.
SetPointerTargetNewValid : set the pointer target of the intercepted function's returned pointer to be a new, valid pointer target.
SetPointerTargetFromArgument : set the pointer target of the intercepted function's returned pointer to be a copy of the specified argument's pointer target.
CheckCStringRead : update to allow specifying the argument number of the C string parameter.
Ensure that PHI nodes remain grouped together.

When adding instrumentation for a PHI node, add it in the first available position after the entire group of PHI nodes.