1//===--- XRayArgs.h - Arguments for XRay ------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9#ifndef LLVM_CLANG_DRIVER_XRAYARGS_H
10#define LLVM_CLANG_DRIVER_XRAYARGS_H
11
12#include "clang/Driver/Types.h"
13#include "llvm/Option/Arg.h"
14#include "llvm/Option/ArgList.h"
15
16namespace clang {
17namespace driver {
18
19class ToolChain;
20
21class XRayArgs {
22  std::vector<std::string> AlwaysInstrumentFiles;
23  std::vector<std::string> NeverInstrumentFiles;
24  std::vector<std::string> ExtraDeps;
25  bool XRayInstrument = false;
26  int InstructionThreshold = 200;
27
28public:
29  /// Parses the XRay arguments from an argument list.
30  XRayArgs(const ToolChain &TC, const llvm::opt::ArgList &Args);
31  void addArgs(const ToolChain &TC, const llvm::opt::ArgList &Args,
32               llvm::opt::ArgStringList &CmdArgs, types::ID InputType) const;
33};
34
35} // namespace driver
36} // namespace clang
37
38#endif // LLVM_CLANG_DRIVER_XRAYARGS_H
39