// Generated from compilers/ibm_xl.yaml -- DO NOT EDIT
static IBM_XL_FLAGS: [FlagRule; 225] = [
    FlagRule::new(FlagPattern::Exactly("-iwithprefixbefore", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-allowable_client", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("--analyzer-output"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-index-header-map", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Prefix("-multiply_defined", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("--gcc-install-dir"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-ffile-prefix-map"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-Xopenmp-target=", 1), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("--profile-blocks", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("--cuda-host-only", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-current_version"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-dependency-file", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-gcodeview-ghash", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-analyzer-config", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-pass-exit-codes", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-Xopenmp-target", 1), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-dependency-dot", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithEq("--gcc-toolchain"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("--cuda-gpu-arch"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-flinker-output"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithEq("--autocomplete"), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-bundle_loader", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-single_module", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-Xpreprocessor", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-nodefaultlibs", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-bind_at_load", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("--dyld-prefix"), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::ExactlyWithEq("-faligned-new"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEq("--hip-version"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-install_name", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("--traditional", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-resource-dir", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-dumpbase-ext", 1), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("--target-help", 0), ArgumentKind::Other(PassEffect::InfoAndExit)),
    FlagRule::new(FlagPattern::Prefix("-fplugin-arg-", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-nostartfiles", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("--precompile", 0), ArgumentKind::Other(PassEffect::StopsAt(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-client_name", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-dumpmachine", 0), ArgumentKind::Other(PassEffect::InfoAndExit)),
    FlagRule::new(FlagPattern::Exactly("-dumpversion", 0), ArgumentKind::Other(PassEffect::InfoAndExit)),
    FlagRule::new(FlagPattern::Exactly("-ibuiltininc", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-seglinkedit", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-traditional", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Prefix("-plugin-arg-", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-iwithprefix", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-qnoaltivec", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-dead_strip", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-dylib_file", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-dynamiclib", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-force_load", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-image_base", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithEq("--unwindlib"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-Xassembler", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Assembling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("--cuda-path"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-iplugindir"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-static-pie", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-qnostrict", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qnoreport", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qnoinline", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qnounroll", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-Xanalyzer", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-arch_only", 1), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-framework", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-gcodeview", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("--hip-link", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-segcreate", 3), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-unwindlib"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("--language"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-emit-llvm", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("--hip-path"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-trigraphs", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-idirafter", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-imultilib", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-qaltivec", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-all_load", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("--analyze", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-dsym-dir"), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-dylinker", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-emit-ast", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("--migrate", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("--profile", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-seg1addr"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("--sysroot"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Prefix("-twolevel", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-umbrella", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-dumpbase", 1), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("--version", 0), ArgumentKind::Other(PassEffect::InfoAndExit)),
    FlagRule::new(FlagPattern::Exactly("-isysroot", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithEq("--sysroot"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-nostdlib", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-rdynamic", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-symbolic", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-aux-info", 1), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-qstrict", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("-qmaxmem"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qnosimd", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qreport", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qnolist", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("-qinline"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("-qunroll"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEq("--prefix"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("--config", 1), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-dynamic", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("--output"), ArgumentKind::Output),
    FlagRule::new(FlagPattern::Exactly("-segaddr", 2), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-segprot", 3), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("--target"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-dumpdir", 1), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-wrapper", 1), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::ExactlyWithEq("-fplugin"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-include"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-imacros", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-pthread", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-isystem", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-iprefix", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-fuse-ld"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-Xlinker", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-fmodule", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qnohot", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qnosmp", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qnoipa", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qnopdf", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-ObjC++", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-bundle", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-objcmt", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-object", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-target", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-Xclang", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-triple", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-plugin", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-iquote", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-nolibc", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-no-pie", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-static", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-shared", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("-qtune"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("-qarch"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qpdf1", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qpdf2", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("-qsimd"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-qlist", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-Xarch", 1), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-Xcuda", 1), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("-mllvm"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("--pipe", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Prefix("--save", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Prefix("--help", 0), ArgumentKind::Other(PassEffect::InfoAndExit)),
    FlagRule::new(FlagPattern::ExactlyWithEq("-specs"), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-undef", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-remap", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-entry"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-qhot", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("-qsmp"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("-qipa"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-ObjC", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-arch", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-cuid"), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-init", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-lazy", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-sect", 3), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-seg_", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-sub_", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-time", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-load", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-pipe", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-ansi", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-save", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-###", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-MMD", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Prefix("-Wp,", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-pie", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-Wl,", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-Wa,", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Assembling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("-std"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-tno", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-EB", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-MJ", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MM", 0), ArgumentKind::Other(PassEffect::StopsAt(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MG", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MP", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MD", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MF", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MT", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MQ", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-CC", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Prefix("-no", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-F", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-Z", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-a", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-r", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-x", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-c", 0), ArgumentKind::Other(PassEffect::StopsAt(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-S", 0), ArgumentKind::Other(PassEffect::StopsAt(CompilerPass::Assembling))),
    FlagRule::new(FlagPattern::Exactly("-E", 0), ArgumentKind::Other(PassEffect::StopsAt(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-o"), ArgumentKind::Output),
    FlagRule::new(FlagPattern::Exactly("-v", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-A"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-D"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-U"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-M", 0), ArgumentKind::Other(PassEffect::StopsAt(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-C", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-P", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-H", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-I"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-L"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-B"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-l"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-e", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-r", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-s", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-T", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-u", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-z", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-O", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-g", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-f", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-m", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-p", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-W", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-d", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-Q", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-X", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-Y", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("--", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("@", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
];
static IBM_XL_IGNORE_EXECUTABLES: [&str; 7] = ["cc1", "cc1plus", "cc1obj", "cc1objplus", "f951", "collect2", "lto1", ];
static IBM_XL_IGNORE_FLAGS: [&str; 1] = ["-cc1", ];
static IBM_XL_SLASH_PREFIX: bool = false;
static IBM_XL_ENV_RULES: [EnvRule; 5] = [
    EnvRule::new("CPATH", EnvMapping::Flag { flag: "-I", separator: EnvSeparator::Path }, ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    EnvRule::new("C_INCLUDE_PATH", EnvMapping::Flag { flag: "-isystem", separator: EnvSeparator::Path }, ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    EnvRule::new("CPLUS_INCLUDE_PATH", EnvMapping::Flag { flag: "-isystem", separator: EnvSeparator::Path }, ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    EnvRule::new("OBJC_INCLUDE_PATH", EnvMapping::Flag { flag: "-isystem", separator: EnvSeparator::Path }, ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    EnvRule::new("LIBRARY_PATH", EnvMapping::Flag { flag: "-L", separator: EnvSeparator::Path }, ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
];
