As discussed on RFC (http://lists.llvm.org/pipermail/llvm-dev/2019-February/130094.html), this is set of patches that introduce debug information about call site and call site parameters. Since LLVM has portion of this support (dumping DWARF 5 symbols for tail calls), we generate all this information as GNU extensions for now. All of that will be restricted under an option, until we do all necessary testing and patching.
This is first patch in the set and it introduces IR level debug information about call sites and call site parameters. It follows the way of the LLVM guidelines for introducing DI metadata in the front end and carrying in through IR and MIR.
DICallSite wraps all information about call sites.
DICallSiteParam represents debug information about call site parameter. It provides backup location once primary location that is loaded into parameter forwarding register is lost, but with providing DICallSiteParam we also provide ability to look two or more frames behind in order to search for called function entry values.