This patch adds support in IR verifier and Bitcode for DW_OP_implicit_pointer
The test case having IR with DW_OP_LLVM_implicit_pointer, will be compiled successfully (without generating DW_OP_implicit_pointer)
Note: To generate DW_OP_implicit_pointer in dwarf info, rest part of D69787 is needed.
Class DwarfCompileUnit has been modified to add member ImplicitVars of vector type. Below is the usage of it. First operand of DW_OP_implicit_pointer operation is a reference to a debugging information entry that describes the dereferenced object’s value. when this operation is created, The debugging information entry is not yet formed. To solve this problem, we maintain a vector of dereferenced objects. We keep index of dereferenced object's at first operand of DW_OP_implicit_pointer operation temporarily. This temporary value is later replaced by actual value when available.
If a variable has only single DBG_VALUE then currently location list is not created instead value is used to initialized the var. In case of DW_OP_implicit_pointer, now location list will still be created.
- Added unit test for validation thru llvm-dwarfdump
- check-debuginfo (the debug info integration tests)