1dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines//===-- MCTargetOptionsCommandFlags.h --------------------------*- C++ -*-===// 2dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// 3dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// The LLVM Compiler Infrastructure 4dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// 5dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// This file is distributed under the University of Illinois Open Source 6dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// License. See LICENSE.TXT for details. 7dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// 8dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines//===----------------------------------------------------------------------===// 9dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// 10dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// This file contains machine code-specific flags that are shared between 11dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// different command line tools. 12dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// 13dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines//===----------------------------------------------------------------------===// 14dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 15dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines#ifndef LLVM_MC_MCTARGETOPTIONSCOMMANDFLAGS_H 16dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines#define LLVM_MC_MCTARGETOPTIONSCOMMANDFLAGS_H 17dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 18dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines#include "llvm/Support/CommandLine.h" 19dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines#include "llvm/MC/MCTargetOptions.h" 20dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hinesusing namespace llvm; 21dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 22dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hinescl::opt<MCTargetOptions::AsmInstrumentation> AsmInstrumentation( 23dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines "asm-instrumentation", cl::desc("Instrumentation of inline assembly and " 24dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines "assembly source files"), 25dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines cl::init(MCTargetOptions::AsmInstrumentationNone), 26dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines cl::values(clEnumValN(MCTargetOptions::AsmInstrumentationNone, "none", 27dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines "no instrumentation at all"), 28dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines clEnumValN(MCTargetOptions::AsmInstrumentationAddress, "address", 29dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines "instrument instructions with memory arguments"), 30dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines clEnumValEnd)); 31dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 32dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hinescl::opt<bool> RelaxAll("mc-relax-all", 33dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines cl::desc("When used with filetype=obj, " 34dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines "relax all fixups in the emitted object file")); 35dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 36cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hinescl::opt<int> DwarfVersion("dwarf-version", cl::desc("Dwarf version"), 37cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines cl::init(0)); 38cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines 39cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hinescl::opt<bool> ShowMCInst("asm-show-inst", 40cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines cl::desc("Emit internal instruction representation to " 41cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines "assembly file")); 42cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines 43dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hinesstatic inline MCTargetOptions InitMCTargetOptionsFromFlags() { 44dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines MCTargetOptions Options; 45dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines Options.SanitizeAddress = 46dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines (AsmInstrumentation == MCTargetOptions::AsmInstrumentationAddress); 47dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines Options.MCRelaxAll = RelaxAll; 48cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines Options.DwarfVersion = DwarfVersion; 49cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines Options.ShowMCInst = ShowMCInst; 50dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines return Options; 51dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines} 52dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 53dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines#endif 54