12#ifndef FORTRAN_OPTIMIZER_PASSES_COMMANDLINEOPTS_H
13#define FORTRAN_OPTIMIZER_PASSES_COMMANDLINEOPTS_H
15#include "llvm/Frontend/Debug/Options.h"
16#include "llvm/Passes/OptimizationLevel.h"
17#include "llvm/Support/CommandLine.h"
21extern llvm::cl::opt<bool> dynamicArrayStackToHeapAllocation;
25extern llvm::cl::opt<std::size_t> arrayStackAllocationThreshold;
33extern llvm::cl::opt<bool> ignoreMissingTypeDescriptors;
46extern llvm::cl::opt<bool> skipExternalRttiDefinition;
49extern llvm::OptimizationLevel defaultOptLevel;
51extern llvm::codegenoptions::DebugInfoKind noDebugInfo;
54extern llvm::cl::opt<bool> disableCfgConversion;
55extern llvm::cl::opt<bool> disableFirAliasTags;
56extern llvm::cl::opt<bool> disableFirMao;
57extern llvm::cl::opt<bool> enableFirLICM;
58extern llvm::cl::opt<bool> useOldAliasTags;
62extern llvm::cl::opt<bool> enableAllocationPlacement;
66extern llvm::cl::opt<std::size_t> allocationPlacementSmallArraySize;
70extern llvm::cl::opt<std::size_t> allocationPlacementStackLimit;
73extern llvm::cl::opt<bool> disableCodeGenRewrite;
74extern llvm::cl::opt<bool> disableTargetRewrite;
75extern llvm::cl::opt<bool> disableDebugInfo;
76extern llvm::cl::opt<bool> disableFirToLlvmIr;
77extern llvm::cl::opt<bool> disableLlvmIrToLlvm;
78extern llvm::cl::opt<bool> disableBoxedProcedureRewrite;
79extern llvm::cl::opt<bool> enableSafeTrampoline;
81extern llvm::cl::opt<bool> disableExternalNameConversion;
82extern llvm::cl::opt<bool> enableConstantArgumentGlobalisation;
83extern llvm::cl::opt<bool> disableCompilerGeneratedNamesConversion;