summaryrefslogtreecommitdiff
path: root/include/llvm/Transforms/IPO/GlobalDCE.h
blob: 497416cbce3d516b9254ddfec857e70d947284bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//===-- Transforms/IPO/GlobalDCE.h - DCE global values -----------*- C++ -*--=//
//
// This transform is designed to eliminate unreachable internal globals
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_TRANSFORM_IPO_GLOBALDCE_H
#define LLVM_TRANSFORM_IPO_GLOBALDCE_H

#include "llvm/Pass.h"

namespace cfg { class CallGraph; }
class Module;

struct GlobalDCE : public Pass {

  // run - Do the GlobalDCE pass on the specified module, optionally updating
  // the specified callgraph to reflect the changes.
  //
  bool run(Module *M);

  // getAnalysisUsageInfo - This function works on the call graph of a module.
  // It is capable of updating the call graph to reflect the new state of the
  // module.
  //
  virtual void getAnalysisUsageInfo(Pass::AnalysisSet &Required,
                                    Pass::AnalysisSet &Destroyed,
                                    Pass::AnalysisSet &Provided);
};

#endif