1 //===- ReduceDbgRecords.cpp - Specialized Delta Pass ----------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // This file implements a function which calls the Generic Delta pass in order
10 // to reduce uninteresting DbgVariableRecords from defined functions.
12 // DbgVariableRecords store variable-location debug-info and are attached to
13 // instructions. This information used to be represented by intrinsics such as
14 // dbg.value, and would naturally get reduced by llvm-reduce like any other
15 // instruction. As DbgVariableRecords get stored elsewhere, they need to be
16 // enumerated and eliminated like any other data structure in LLVM.
18 //===----------------------------------------------------------------------===//
20 #include "ReduceDbgRecords.h"
22 #include "llvm/ADT/STLExtras.h"
26 static void extractDbgRecordsFromModule(Oracle
&O
, ReducerWorkItem
&WorkItem
) {
27 Module
&M
= WorkItem
.getModule();
32 for (DbgRecord
&DR
: llvm::make_early_inc_range(I
.getDbgRecordRange()))
37 void llvm::reduceDbgRecordDeltaPass(TestRunner
&Test
) {
38 runDeltaPass(Test
, extractDbgRecordsFromModule
, "Reducing DbgRecords");