DWARF defines DW_TAG_constant for "languages that have true named constants" (DWARF v5 section 4.1). This patch adds LLVM IR metadata and DWARF AsmPrinter support for this feature. The primary motivation behind this addition is for representing "let"-bindings in Swift, to communicate to the debugger that these may not be modified. It is very likely also useful for many other programming languages that have named constants.
rdar://problem/16042546