Extends the pass for removing unused instructions so that it can remove global declarations (such as types and variables) that are only used by decorations with which they are intimately connected, such as descriptor set and binding decorations.