1 /*========================== begin_copyright_notice ============================ 2 3 Copyright (C) 2017-2021 Intel Corporation 4 5 SPDX-License-Identifier: MIT 6 7 ============================= end_copyright_notice ===========================*/ 8 9 #ifndef NULLSTR 10 #define NULLSTR "" 11 #endif 12 #ifndef UNUSED 13 #define UNUSED "" 14 #endif 15 16 // There are 4 available types: ET_BOOL, ET_INT32, ET_INT64 and ET_CSTR. 17 // DEF_VISA_OPTION(ENUM, ET_BOOL, STRING, UNUSED, DEFAULT_VAL) 18 // DEF_VISA_OPTION(ENUM, ET_INT32, STRING, ERROR_MSG, DEFAULT_VAL) 19 // DEF_VISA_OPTION(ENUM, ET_INT64, STRING, ERROR_MSG, DEFAULT_VAL) 20 // DEF_VISA_OPTION(ENUM, ET_CSTR, STRING, ERROR_MSG, DEFAULT_VAL) 21 // Note: ET_2xINT32 is a 64 bit value set using 2 int32 Hi32 Lo32 22 // DEF_VISA_OPTION(ENUM, ET_2xINT32, STRING, ERROR_MSG, DEFAULT_VAL) 23 24 25 //=== Debugging options === 26 DEF_VISA_OPTION(vISA_DumpPasses, ET_BOOL, "-dumpPassesAll", UNUSED, false) 27 // subsumes the above (should replace; 0 = none, 1 = only when modifications are present, 2 = all) 28 DEF_VISA_OPTION(vISA_DumpPassesSubset, ET_INT32, "-dumpPassesSubset", 29 "0 means none; 1 means only when modifications happen; 2 means all passes", 0) 30 // dump out dot file for debugging 31 DEF_VISA_OPTION(vISA_DumpDot, ET_BOOL, "-dot", UNUSED, false) 32 DEF_VISA_OPTION(vISA_DumpDotAll, ET_BOOL, "-dotAll", UNUSED, false) 33 DEF_VISA_OPTION(VISA_FullIRVerify, ET_BOOL, "-fullIRVerify", UNUSED, false) 34 // dump each option while it is being set by setOption() 35 DEF_VISA_OPTION(vISA_dumpVISAOptions, ET_BOOL, "-dumpVisaOptions", UNUSED, false) 36 // dump all options after we have finished parsing 37 DEF_VISA_OPTION(vISA_dumpVISAOptionsAll, ET_BOOL, "-dumpVisaOptionsAll", UNUSED, false) 38 DEF_VISA_OPTION(vISA_Debug, ET_BOOL, "-debug", UNUSED, false) 39 DEF_VISA_OPTION(vISA_DebugParse, ET_BOOL, "-debugParse", UNUSED, false) 40 DEF_VISA_OPTION(vISA_DebugConsoleDump, ET_BOOL, "-dumpDebugConsoleOutput", UNUSED, false) 41 DEF_VISA_OPTION(vISA_EmitLocation, ET_BOOL, "-emitLocation", UNUSED, false) 42 DEF_VISA_OPTION(vISA_dumpRPE, ET_BOOL, "-dumpRPE", UNUSED, false) 43 DEF_VISA_OPTION(vISA_dumpLiveness, ET_BOOL, "-dumpLiveness", UNUSED, false) 44 DEF_VISA_OPTION(vISA_disableInstDebugInfo, ET_BOOL, "-disableInstDebugInfo", UNUSED, false) 45 DEF_VISA_OPTION(vISA_analyzeMove, ET_BOOL, "-analyzeMove", UNUSED, false) 46 DEF_VISA_OPTION(vISA_skipFDE, ET_BOOL, "-skipFDE", UNUSED, false) 47 // setting this flag makes VISA emit matching name for variable wrt visaasm file 48 // but this makes it impossible to emit correct elf, so this is strictly for debugging 49 DEF_VISA_OPTION(vISA_UseFriendlyNameInDbg, ET_BOOL, "-useFriendlyNameInDbg", UNUSED, false) 50 DEF_VISA_OPTION(vISA_removeInstrinsics, ET_BOOL, "-removeInstrinsics", UNUSED, true) 51 DEF_VISA_OPTION(vISA_addSWSBInfo, ET_BOOL, "-addSWSBInfo", UNUSED, true) 52 DEF_VISA_OPTION(vISA_DumpRAIntfGraph, ET_BOOL, "-dumpintf", UNUSED, false) 53 DEF_VISA_OPTION(vISA_DumpGenOffset, ET_BOOL, "-dumpgenoffset", UNUSED, false) 54 55 //=== Optimization options === 56 DEF_VISA_OPTION(vISA_EnableAlways, ET_BOOL, NULLSTR, UNUSED, true) 57 DEF_VISA_OPTION(vISA_EnableSendFusion, ET_BOOL, "-enableSendFusion", UNUSED, false) 58 DEF_VISA_OPTION(vISA_EnableWriteFusion, ET_BOOL, "-enableWriteFusion", UNUSED, false) 59 DEF_VISA_OPTION(vISA_EnableAtomicFusion, ET_BOOL, "-enableAtomicFusion", UNUSED, false) 60 DEF_VISA_OPTION(vISA_RemovePartialMovs, ET_BOOL, "-partialMovsProp", UNUSED, false) 61 DEF_VISA_OPTION(vISA_LocalCopyProp, ET_BOOL, "-nocopyprop", UNUSED, true) 62 DEF_VISA_OPTION(vISA_LocalInstCombine, ET_BOOL, "-noinstcombine", UNUSED, true) 63 DEF_VISA_OPTION(vISA_LocalFlagOpt, ET_BOOL, "-noflagopt", UNUSED, true) 64 DEF_VISA_OPTION(vISA_LocalMACopt, ET_BOOL, "-nomacopt", UNUSED, true) 65 DEF_VISA_OPTION(vISA_LocalCleanMessageHeader, ET_BOOL, "-nomsgheaderopt", UNUSED, true) 66 DEF_VISA_OPTION(vISA_LocalRenameRegister, ET_BOOL, "-noregrenaming", UNUSED, true) 67 DEF_VISA_OPTION(vISA_LocalDefHoist, ET_BOOL, "-nodefhoist", UNUSED, true) 68 DEF_VISA_OPTION(vISA_FoldAddrImmed, ET_BOOL, "-nofoldaddrimmed", UNUSED, true) 69 DEF_VISA_OPTION(vISA_enableCSEL, ET_BOOL, "-disablecsel", UNUSED, true) 70 DEF_VISA_OPTION(vISA_OptReport, ET_BOOL, "-optreport", UNUSED, false) 71 DEF_VISA_OPTION(vISA_MergeScalar, ET_BOOL, "-nomergescalar", UNUSED, true) 72 DEF_VISA_OPTION(vISA_EnableMACOpt, ET_BOOL, "-nomac", UNUSED, true) 73 DEF_VISA_OPTION(vISA_EnableDCE, ET_BOOL, "-dce", UNUSED, false) 74 DEF_VISA_OPTION(vISA_DisableleHFOpt, ET_BOOL, "-disableHFOpt", UNUSED, false) 75 DEF_VISA_OPTION(vISA_enableUnsafeCP_DF, ET_BOOL, "-enableUnsafeCP_DF", UNUSED, false) 76 DEF_VISA_OPTION(vISA_EnableStructurizer, ET_BOOL, "-enableStructurizer", UNUSED, false) 77 DEF_VISA_OPTION(vISA_StructurizerCF, ET_BOOL, "-noSCF", "-noSCF: structurizer generates UCF only", true) 78 DEF_VISA_OPTION(vISA_EnableScalarJmp, ET_BOOL, "-noScalarJmp", UNUSED, true) 79 DEF_VISA_OPTION(vISA_enableCleanupBindless, ET_BOOL, "-cleanBindless", UNUSED, true) 80 DEF_VISA_OPTION(vISA_EnableSplitVariables, ET_BOOL, "-noSplitVariables", UNUSED, false) 81 DEF_VISA_OPTION(vISA_ChangeMoveType, ET_BOOL, "-ALTMode", UNUSED, true) 82 DEF_VISA_OPTION(vISA_accSubstitution, ET_BOOL, "-noAccSub", UNUSED, true) 83 DEF_VISA_OPTION(vISA_accSubBeforeRA, ET_BOOL, "-noAccSubBRA", UNUSED, false) 84 DEF_VISA_OPTION(vISA_EnableGatherWithImm, ET_BOOL, "-gatherWithImm", UNUSED, 0) 85 DEF_VISA_OPTION(vISA_doAccSubAfterSchedule, ET_BOOL, "-accSubPostSchedule", UNUSED, true) 86 DEF_VISA_OPTION(vISA_localizationForAccSub, ET_BOOL, "-localizeForACC", UNUSED, false) 87 DEF_VISA_OPTION(vISA_mathAccSub, ET_BOOL, "-mathAccSub", UNUSED, false) 88 DEF_VISA_OPTION(vISA_src2AccSub, ET_BOOL, "-src2AccSub", UNUSED, false) 89 DEF_VISA_OPTION(vISA_hasDoubleAcc, ET_BOOL, "-hasDoubleAcc", UNUSED, false) 90 DEF_VISA_OPTION(vISA_ifCvt, ET_BOOL, "-noifcvt", UNUSED, true) 91 DEF_VISA_OPTION(vISA_RegSharingHeuristics, ET_BOOL, "-regSharingHeuristics", UNUSED, false) 92 DEF_VISA_OPTION(vISA_LVN, ET_BOOL, "-nolvn", UNUSED, true) 93 // only affects acc substitution for now 94 DEF_VISA_OPTION(vISA_numGeneralAcc, ET_INT32, "-numGeneralAcc", "USAGE: -numGeneralAcc <accNum>\n", 0) 95 DEF_VISA_OPTION(vISA_reassociate, ET_BOOL, "-noreassoc", UNUSED, true) 96 DEF_VISA_OPTION(vISA_split4GRFVar, ET_BOOL, "-no4GRFSplit", UNUSED, true) 97 DEF_VISA_OPTION(vISA_divergentBB, ET_BOOL, "-divergentBB", UNUSED, true) 98 DEF_VISA_OPTION(vISA_splitInstructions, ET_BOOL, "-noSplitInstructions", UNUSED, true) 99 DEF_VISA_OPTION(vISA_ignoreBFRounding, ET_BOOL, "-ignoreBFRounding", UNUSED, false) 100 DEF_VISA_OPTION(vISA_scheduleFenceCommit, ET_BOOL, "-fenceCommit", UNUSED, true) 101 DEF_VISA_OPTION(vISA_SkipRedundantFillInRMW,ET_BOOL, "-normwopt", UNUSED, true) 102 DEF_VISA_OPTION(vISA_ALTMode, ET_BOOL, "-nonALTMode", UNUSED, false) 103 104 //=== code gen options === 105 DEF_VISA_OPTION(vISA_noSrc1Byte, ET_BOOL, "-nosrc1byte", UNUSED, false) 106 DEF_VISA_OPTION(vISA_expandPlane, ET_BOOL, "-expandPlane", UNUSED, false) 107 DEF_VISA_OPTION(vISA_FImmToHFImm, ET_BOOL, "-fiTohfi", UNUSED, false) 108 DEF_VISA_OPTION(vISA_cacheSamplerHeader, ET_BOOL, "-noSamplerHeaderCache", UNUSED, true) 109 DEF_VISA_OPTION(vISA_forceSamplerHeader, ET_BOOL, "-forceSamplerHeader", UNUSED, false) 110 DEF_VISA_OPTION(vISA_markSamplerMoves, ET_BOOL, "-markSamplerMoves", UNUSED, false) 111 DEF_VISA_OPTION(vISA_noncoherentStateless, ET_BOOL, "-ncstateless", UNUSED, false) 112 DEF_VISA_OPTION(vISA_enablePreemption, ET_BOOL, "-enablePreemption", UNUSED, false) 113 DEF_VISA_OPTION(VISA_EnableBarrierInstCounterBits, ET_BOOL, "-enableBarrierInstCounterBits", UNUSED, false) 114 DEF_VISA_OPTION(vISA_forceFPMAD, ET_BOOL, "-forcefmad", UNUSED, true) 115 DEF_VISA_OPTION(vISA_DisableMixMode, ET_BOOL, "-disableMixMode", UNUSED, false) 116 DEF_VISA_OPTION(vISA_DisableHFMath, ET_BOOL, "-disableHFMath", UNUSED, false) 117 DEF_VISA_OPTION(vISA_ForceMixMode, ET_BOOL, "-forceMixMode", UNUSED, false) 118 DEF_VISA_OPTION(vISA_UseSends, ET_BOOL, "-nosends", UNUSED, true) 119 DEF_VISA_OPTION(vISA_doAlign1Ternary, ET_BOOL, "-noalign1ternary", UNUSED, true) 120 DEF_VISA_OPTION(vISA_loadThreadPayload, ET_BOOL, "-noLoadPayload", UNUSED, true) 121 DEF_VISA_OPTION(vISA_foldEOTtoPrevSend, ET_BOOL, "-foldEOT", UNUSED, false) 122 DEF_VISA_OPTION(vISA_hasRNEandDenorm, ET_BOOL, "-hasRNEandDenorm", UNUSED, false) 123 DEF_VISA_OPTION(vISA_forceNoFP64bRegioning, ET_BOOL, "-noFP64bRegion", UNUSED, false) 124 DEF_VISA_OPTION(vISA_noStitchExternFunc, ET_BOOL, "-noStitchExternFunc", UNUSED, true) 125 DEF_VISA_OPTION(vISA_autoLoadLocalID, ET_BOOL, "-autoLocalId", UNUSED, false) 126 DEF_VISA_OPTION(vISA_loadCrossThreadConstantData, ET_BOOL, "-loadCTCD", UNUSED, true) 127 DEF_VISA_OPTION(vISA_useInlineData, ET_BOOL, "-useInlineData", UNUSED, false) 128 DEF_VISA_OPTION(vISA_loadThreadPayloadStartReg, ET_INT32, "-setStartReg",UNUSED, 1) 129 DEF_VISA_OPTION(vISA_emitCrossThreadOffR0Reloc, ET_BOOL, "-emitCrossThreadOffR0Reloc", UNUSED, false) 130 DEF_VISA_OPTION(vISA_CodePatch, ET_INT32, "-codePatch", UNUSED, 0) 131 DEF_VISA_OPTION(vISA_Linker, ET_INT32, "-linker", UNUSED, 0) 132 133 //=== RA options === 134 DEF_VISA_OPTION(vISA_RoundRobin, ET_BOOL, "-noroundrobin", UNUSED, true) 135 DEF_VISA_OPTION(vISA_PrintRegUsage, ET_BOOL, "-printregusage", UNUSED, false) 136 DEF_VISA_OPTION(vISA_IPA, ET_BOOL, "-noipa", UNUSED, true) 137 DEF_VISA_OPTION(vISA_LocalRA, ET_BOOL, "-nolocalra", UNUSED, true) 138 DEF_VISA_OPTION(vISA_LocalRARoundRobin, ET_BOOL, "-nolocalraroundrobin", UNUSED, true) 139 DEF_VISA_OPTION(vISA_ForceSpills, ET_BOOL, "-forcespills", UNUSED, false) 140 DEF_VISA_OPTION(vISA_NoIndirectForceSpills, ET_BOOL, "-noindirectforcespills", UNUSED, false) 141 DEF_VISA_OPTION(vISA_AbortOnSpill, ET_BOOL, "-abortonspill", UNUSED, false) 142 DEF_VISA_OPTION(vISA_VerifyRA, ET_BOOL, "-verifyra", UNUSED, false) 143 DEF_VISA_OPTION(vISA_LocalBankConflictReduction, ET_BOOL, "-nolocalBCR", UNUSED, true) 144 DEF_VISA_OPTION(vISA_FailSafeRA, ET_BOOL, "-nofailsafera", UNUSED, true) 145 DEF_VISA_OPTION(vISA_FlagSpillCodeCleanup, ET_BOOL, "-disableFlagSpillClean", UNUSED, true) 146 DEF_VISA_OPTION(vISA_GRFSpillCodeCleanup, ET_BOOL, "-spillCleanup", UNUSED, true) 147 DEF_VISA_OPTION(vISA_SpillSpaceCompression, ET_BOOL, "-nospillcompression", UNUSED, true) 148 DEF_VISA_OPTION(vISA_ConsiderLoopInfoInRA, ET_BOOL, "-noloopra", UNUSED, true) 149 DEF_VISA_OPTION(vISA_ReserveR0, ET_BOOL, "-reserveR0", UNUSED, false) 150 DEF_VISA_OPTION(vISA_SpiltLLR, ET_BOOL, "-nosplitllr", UNUSED, true) 151 DEF_VISA_OPTION(vISA_EnableGlobalScopeAnalysis, ET_BOOL, "-enableGlobalScopeAnalysis", UNUSED, false) 152 DEF_VISA_OPTION(vISA_LocalDeclareSplitInGlobalRA, ET_BOOL, "-noLocalSplit", UNUSED, true) 153 DEF_VISA_OPTION(vISA_DisableSpillCoalescing, ET_BOOL, "-nospillcleanup", UNUSED, false) 154 DEF_VISA_OPTION(vISA_GlobalSendVarSplit, ET_BOOL, "-globalSendVarSplit", UNUSED, false) 155 DEF_VISA_OPTION(vISA_NoRemat, ET_BOOL, "-noremat", UNUSED, false) 156 DEF_VISA_OPTION(vISA_ForceRemat, ET_BOOL, "-forceremat", UNUSED, false) 157 DEF_VISA_OPTION(vISA_SpillMemOffset, ET_INT32, "-spilloffset", "USAGE: -spilloffset <offset>\n", 0) 158 DEF_VISA_OPTION(vISA_ReservedGRFNum, ET_INT32, "-reservedGRFNum", "USAGE: -reservedGRFNum <regNum>\n", 0) 159 DEF_VISA_OPTION(vISA_TotalGRFNum, ET_INT32, "-TotalGRFNum", "USAGE: -TotalGRFNum <regNum>\n", 128) 160 DEF_VISA_OPTION(vISA_GRFNumToUse, ET_INT32, "-GRFNumToUse", "USAGE: -GRFNumToUse <regNum>\n", 0) 161 DEF_VISA_OPTION(vISA_RATrace, ET_BOOL, "-ratrace", UNUSED, false) 162 DEF_VISA_OPTION(vISA_FastSpill, ET_BOOL, "-fasterRA", UNUSED, false) 163 DEF_VISA_OPTION(vISA_AbortOnSpillThreshold, ET_INT32, "-abortOnSpill", UNUSED, 0) 164 DEF_VISA_OPTION(vISA_enableBCR, ET_BOOL, "-enableBCR", UNUSED, false) 165 DEF_VISA_OPTION(vISA_forceBCR, ET_BOOL, "-forceBCR", UNUSED, false) 166 DEF_VISA_OPTION(vISA_enableBundleCR, ET_BOOL, "-enableBundleCR", UNUSED, true) 167 DEF_VISA_OPTION(vISA_IntrinsicSplit, ET_BOOL, "-doSplit", UNUSED, false) 168 DEF_VISA_OPTION(vISA_LraFFWindowSize, ET_INT32, "-lraFFWindowSize", UNUSED, 12) 169 DEF_VISA_OPTION(vISA_SplitGRFAlignedScalar, ET_BOOL, "-nosplitGRFalignedscalar", UNUSED, true) 170 DEF_VISA_OPTION(vISA_DoSplitOnSpill, ET_BOOL, "-splitonspill", UNUSED, false) 171 172 DEF_VISA_OPTION(vISA_VerifyAugmentation, ET_BOOL, "-verifyaugmentation", UNUSED, false) 173 DEF_VISA_OPTION(vISA_VerifyExplicitSplit, ET_BOOL, "-verifysplit", UNUSED, false) 174 DEF_VISA_OPTION(vISA_DumpRegChart, ET_BOOL, "-dumpregchart", UNUSED, false) 175 DEF_VISA_OPTION(vISA_SpillAnalysis, ET_BOOL, "-spillanalysis", UNUSED, false) 176 DEF_VISA_OPTION(vISA_DumpAllBCInfo, ET_BOOL, "-dumpAllBCInfo", UNUSED, false) 177 DEF_VISA_OPTION(vISA_LinearScan, ET_BOOL, "-linearScan", UNUSED, false) 178 DEF_VISA_OPTION(vISA_LSFristFit, ET_BOOL, "-lsFirstFit", UNUSED, true) 179 DEF_VISA_OPTION(vISA_verifyLinearScan, ET_BOOL, "-verifyLinearScan", UNUSED, false) 180 181 //=== scheduler options === 182 DEF_VISA_OPTION(vISA_LocalScheduling, ET_BOOL, "-noschedule", UNUSED, true) 183 DEF_VISA_OPTION(vISA_preRA_Schedule, ET_BOOL, "-nopresched", UNUSED, true) 184 DEF_VISA_OPTION(vISA_preRA_ScheduleForce, ET_BOOL, "-presched", UNUSED, false) 185 DEF_VISA_OPTION(vISA_preRA_ScheduleCtrl, ET_INT32, "-presched-ctrl", "USAGE: -presched-ctrl <ctrl>\n", 4) 186 DEF_VISA_OPTION(vISA_preRA_ScheduleRPThreshold, ET_INT32, "-presched-rp", "USAGE: -presched-rp <threshold>\n", 0) 187 DEF_VISA_OPTION(vISA_ScheduleStartBBID, ET_INT32, "-sched-start", "USAGE: -sched-start <BB ID>\n", 0) 188 DEF_VISA_OPTION(vISA_ScheduleEndBBID, ET_INT32, "-sched-end", "USAGE: -sched-end <BB ID>\n", 0) 189 DEF_VISA_OPTION(vISA_DumpSchedule, ET_BOOL, "-dumpSchedule", UNUSED, false) 190 DEF_VISA_OPTION(vISA_DumpDagDot, ET_BOOL, "-dumpDagDot", UNUSED, false) 191 DEF_VISA_OPTION(vISA_EnableNoDD, ET_BOOL, "-enable-noDD", UNUSED, false) 192 DEF_VISA_OPTION(vISA_DebugNoDD, ET_BOOL, "-debug-noDD", UNUSED, false) 193 DEF_VISA_OPTION(vISA_NoDDLookBack, ET_INT32, "-noDD-lookback", "USAGE: -noDD-lookback <NUM>\n", 3) 194 DEF_VISA_OPTION(vISA_EnableNoSrcDep, ET_BOOL, "-enable-noSrcDep", UNUSED, false) 195 DEF_VISA_OPTION(vISA_EnableNoSrcDepScen1, ET_BOOL, "-disable-noSrcDep-scen1", UNUSED, true) 196 DEF_VISA_OPTION(vISA_EnableNoSrcDepScen2, ET_BOOL, "-disable-noSrcDep-scen2", UNUSED, true) 197 DEF_VISA_OPTION(vISA_DumpNoSrcDep, ET_BOOL, "-dump-noSrcDep", UNUSED, false) 198 DEF_VISA_OPTION(vISA_stopNoSrcDepSetAt, ET_INT32, "-stop-noSrcDep-at", "Usage: -stop-noSrcDep-at <NUMBER>\n", UINT_MAX) 199 DEF_VISA_OPTION(vISA_FuseTypedWrites, ET_BOOL, "-nofuse-typedWrites", UNUSED, false) 200 DEF_VISA_OPTION(vISA_ReorderDPSendToDifferentBti, ET_BOOL, "-nodpsendreorder", UNUSED, true) 201 DEF_VISA_OPTION(vISA_WAWSubregHazardAvoidance, ET_BOOL, "-noWAWSubregHazardAvoidance", UNUSED, true) 202 DEF_VISA_OPTION(vISA_useMultiThreadedLatencies, ET_BOOL, "-dontUseMultiThreadedLatencies", UNUSED, true) 203 DEF_VISA_OPTION(vISA_SchedulerWindowSize, ET_INT32, "-schedulerwindow", "USAGE: -schedulerwindow <window-size>\n", 4096) 204 DEF_VISA_OPTION(vISA_HWThreadNumberPerEU, ET_INT32, "-HWThreadNumberPerEU", "USAGE: -HWThreadNumberPerEU <num>\n", 0) 205 DEF_VISA_OPTION(vISA_ForceHWThreadNumberPerEU, ET_INT32, "-forceHWThreadNumberPerEU", "USAGE: -forceHWThreadNumberPerEU <num>\n", 0) 206 DEF_VISA_OPTION(vISA_NoAtomicSend, ET_BOOL, "-noAtomicSend", UNUSED, false) 207 DEF_VISA_OPTION(vISA_ReadSuppressionDepth, ET_INT32, "-readSuppressionDepth", UNUSED, 0) 208 DEF_VISA_OPTION(vISA_ScheduleForReadSuppression, ET_BOOL, "-scheduleForReadSuppression", UNUSED, false) 209 DEF_VISA_OPTION(vISA_ScheduleFor2xSP, ET_BOOL, "-scheduleFor2xSP", UNUSED, false) 210 DEF_VISA_OPTION(vISA_SWSBBlockFor2xSP, ET_BOOL, "-SWSBBlockFor2xSP", UNUSED, false) 211 DEF_VISA_OPTION(vISA_LocalSchedulingStartBB, ET_INT32, "-scheduleStartBB", UNUSED, 0) 212 DEF_VISA_OPTION(vISA_LocalSchedulingEndBB, ET_INT32, "-scheduleEndBB", UNUSED, UINT_MAX) 213 DEF_VISA_OPTION(vISA_assumeL1Hit, ET_BOOL, "-assumeL1Hit", UNUSED, false) 214 DEF_VISA_OPTION(vISA_writeCombine, ET_BOOL, "-writeCombine", UNUSED, true) 215 DEF_VISA_OPTION(vISA_Q2FInIntegerPipe, ET_BOOL, "-Q2FInteger", UNUSED, false) 216 217 //=== SWSB options === 218 DEF_VISA_OPTION(vISA_USEL3HIT, ET_BOOL, "-SBIDL3Hit", UNUSED, false) 219 DEF_VISA_OPTION(vISA_EnableIGASWSB, ET_BOOL, "-IGASWSB", UNUSED, false) 220 DEF_VISA_OPTION(vISA_SWSBDepReduction, ET_BOOL, "-SWSBDepReduction", UNUSED, false) 221 DEF_VISA_OPTION(vISA_forceDebugSWSB, ET_BOOL, "-forceDebugSWSB", UNUSED, false) 222 DEF_VISA_OPTION(vISA_SWSBInstStall, ET_INT32, "-SWSBInstStall", UNUSED, 0) 223 DEF_VISA_OPTION(vISA_SWSBInstStallEnd, ET_INT32, "-SWSBInstStallEnd", UNUSED, 0) 224 DEF_VISA_OPTION(vISA_SWSBTokenBarrier, ET_INT32, "-SWSBTokenBarrier", UNUSED, 0) 225 DEF_VISA_OPTION(vISA_EnableSwitch, ET_BOOL, "-enableSwitch", UNUSED, false) 226 DEF_VISA_OPTION(vISA_EnableISBIDBUNDLE, ET_BOOL, "-SBIDBundle", UNUSED, false) 227 DEF_VISA_OPTION(vISA_EnableGroupScheduleForBC, ET_BOOL, "-groupScheduleForBC", UNUSED, true) 228 DEF_VISA_OPTION(vISA_SWSBTokenNum, ET_INT32, "-SWSBTokenNum", "USAGE: -SWSBTokenNum <tokenNum>\n", 0) 229 DEF_VISA_OPTION(vISA_EnableSendTokenReduction, ET_BOOL, "-SendTokenReduction", UNUSED, false) 230 DEF_VISA_OPTION(vISA_GlobalTokenAllocation, ET_BOOL, "-globalTokenAllocation", UNUSED, false) 231 DEF_VISA_OPTION(vISA_QuickTokenAllocation, ET_BOOL, "-quickTokenAllocation", UNUSED, false) 232 DEF_VISA_OPTION(vISA_DistPropTokenAllocation, ET_BOOL, "-distPropTokenAllocation", UNUSED, false) 233 DEF_VISA_OPTION(vISA_SWSBStitch, ET_BOOL, "-SWSBStitch", UNUSED, false) 234 DEF_VISA_OPTION(vISA_SBIDDepLoc, ET_BOOL, "-SBIDDepLoc", UNUSED, false) 235 DEF_VISA_OPTION(vISA_DumpSBID, ET_BOOL, "-dumpSBID", UNUSED, false) 236 237 DEF_VISA_OPTION(vISA_EnableALUThreePipes, ET_BOOL, "-threeALUPipes", UNUSED, true) 238 DEF_VISA_OPTION(vISA_EnableDPASTokenReduction, ET_BOOL, "-DPASTokenReduction", UNUSED, false) 239 DEF_VISA_OPTION(vISA_EnableDPASBundleConflictReduction, ET_BOOL, "-DPASBundleReduction", UNUSED, true) 240 DEF_VISA_OPTION(vISA_NoDPASMacro, ET_BOOL, "-noDPASMacro", UNUSED, false) 241 DEF_VISA_OPTION(vISA_forceDPASMacro, ET_BOOL, "-forceDPASMacro", UNUSED, false) 242 DEF_VISA_OPTION(vISA_TrueDepOnly, ET_BOOL, "-trueDepOnly", UNUSED, false) 243 DEF_VISA_OPTION(vISA_SplitMov64, ET_INT32,"-SplitMov64", "USAGE: -SplitMov64 (0|1|2)\n", 0) 244 DEF_VISA_OPTION(vISA_UseOldSubRoutineAugIntf, ET_BOOL, "-useOldSubRoutineAugIntf", UNUSED, false) 245 DEF_VISA_OPTION(vISA_FastCompileRA, ET_BOOL, "-fastCompileRA", UNUSED, false) 246 DEF_VISA_OPTION(vISA_HybridRAWithSpill, ET_BOOL, "-hybridRAWithSpill", UNUSED, false) 247 248 //=== binary emission options === 249 DEF_VISA_OPTION(vISA_Compaction, ET_BOOL, "-nocompaction", UNUSED, true) 250 DEF_VISA_OPTION(vISA_BXMLEncoder, ET_BOOL, "-nobxmlencoder", UNUSED, true) 251 DEF_VISA_OPTION(vISA_IGAEncoder, ET_BOOL, "-IGAEncoder", UNUSED, false) 252 253 //=== asm/isaasm/isa emission options === 254 DEF_VISA_OPTION(vISA_outputToFile, ET_BOOL, "-output", UNUSED, false) 255 DEF_VISA_OPTION(vISA_SymbolReg, ET_BOOL, "-symbolreg", UNUSED, false) 256 DEF_VISA_OPTION(vISA_PrintASMCount, ET_BOOL, "-printasmcount", UNUSED, false) 257 DEF_VISA_OPTION(vISA_GenerateBinary, ET_BOOL, "-binary", UNUSED, false) 258 DEF_VISA_OPTION(vISA_GenerateISAASM, ET_BOOL, "-dumpcommonisa", UNUSED, false) 259 DEF_VISA_OPTION(vISA_DumpIsaVarNames, ET_BOOL, "-dumpisavarnames", UNUSED, true) 260 DEF_VISA_OPTION(vISA_GenIsaAsmList, ET_BOOL, "-genIsaasmList", UNUSED, false) 261 DEF_VISA_OPTION(vISA_UniqueLabels, ET_BOOL, "-uniqueLabel", UNUSED, false) 262 DEF_VISA_OPTION(vISA_ShaderDumpFilter, ET_CSTR, "-shaderDumpFilter", "USAGE: -shaderDumpFilter <regex>\n", NULL) 263 // specifies a file containing isaasm paths/names to parse 264 DEF_VISA_OPTION(vISA_IsaasmNamesFileUsed, ET_BOOL, NULLSTR, UNUSED, false) 265 DEF_VISA_OPTION(vISA_DumpvISA, ET_BOOL, "-dumpvisa", UNUSED, false) 266 DEF_VISA_OPTION(vISA_StripComments, ET_BOOL, "-stripcomments", UNUSED, false) 267 DEF_VISA_OPTION(vISA_dumpNewSyntax, ET_BOOL, "-disableIGASyntax", UNUSED, true) 268 DEF_VISA_OPTION(vISA_NumGenBinariesWillBePatched, ET_INT32, "-numGenBinariesWillBePatched", "USAGE: missing number of gen binaries that will be patched.\n", 0) 269 DEF_VISA_OPTION(vISA_ISAASMNamesFile, ET_CSTR, "-isaasmNamesOutputFile", "USAGE: File Name with isaasm paths.\n", NULL) 270 DEF_VISA_OPTION(vISA_GetvISABinaryName, ET_CSTR, "-outputCisaBinaryName", UNUSED, NULL) 271 DEF_VISA_OPTION(vISA_OutputvISABinaryName, ET_BOOL, NULLSTR, UNUSED, false) 272 DEF_VISA_OPTION(vISA_LabelStr, ET_CSTR, "-uniqueLabels", "Label String is not provided for the -uniqueLabels option.", NULL) 273 DEF_VISA_OPTION(VISA_AsmFileName, ET_CSTR, "-asmOutput", "USAGE: -asmOutput <FILE>\n", NULL) 274 DEF_VISA_OPTION(vISA_DecodeDbg, ET_CSTR, "-decodedbg", "USAGE: -decodedbg <dbg filename>\n", NULL) 275 DEF_VISA_OPTION(vISA_encoderFile, ET_CSTR, "-encoderStatisticsFile", "USAGE: -encoderStatisticsFile <reloc file>\n", "encoderStatistics.csv") 276 DEF_VISA_OPTION(vISA_CISAbinary, ET_CSTR, "-CISAbinary", "USAGE: File Name with isaasm paths. ", NULL) 277 DEF_VISA_OPTION(vISA_DumpRegInfo, ET_BOOL, "-dumpRegInfo", UNUSED, false) 278 279 //=== misc options === 280 DEF_VISA_OPTION(vISA_PlatformIsSet, ET_BOOL, NULLSTR, UNUSED, false) 281 DEF_VISA_OPTION(vISA_NoVerifyvISA, ET_BOOL, "-noverifyCISA", UNUSED, false) 282 DEF_VISA_OPTION(vISA_InitPayload, ET_BOOL, "-initializePayload", UNUSED, false) 283 DEF_VISA_OPTION(vISA_isParseMode, ET_BOOL, NULLSTR, UNUSED, false) 284 // rerun RA post scheduling for gtpin 285 DEF_VISA_OPTION(vISA_ReRAPostSchedule, ET_BOOL, "-rerapostschedule", UNUSED, false) 286 DEF_VISA_OPTION(vISA_GTPinReRA, ET_BOOL, "-GTPinReRA", UNUSED, false) 287 DEF_VISA_OPTION(vISA_GetFreeGRFInfo, ET_BOOL, "-getfreegrfinfo", UNUSED, false) 288 DEF_VISA_OPTION(vISA_GTPinScratchAreaSize,ET_INT32, "-GTPinScratchAreaSize", UNUSED, 0) 289 DEF_VISA_OPTION(vISA_LSCBackupMode, ET_BOOL, "-LSCBackupMode", UNUSED, false) 290 DEF_VISA_OPTION(vISA_InjectEntryFences, ET_BOOL, "-InjectEntryFences", UNUSED, false) 291 DEF_VISA_OPTION(vISA_LSCEnableHalfSIMD, ET_BOOL, "-enableHalfLSC", UNUSED, false) 292 DEF_VISA_OPTION(vISA_lscNonStackSpill, ET_BOOL, "-lscNonStackSpill", UNUSED, false) 293 // native int64 adder was removed and then added back (adder lacks saturation) 294 // the int64 shifter was never removed 295 DEF_VISA_OPTION(vISA_HasInt64Add, ET_BOOL, "-hasInt64Add", UNUSED, false) 296 // Corresponds to something slightly different in IGC than vISA_HasInt64Add 297 // (C.f. Platform.hpp:hasPartialInt64Support) 298 DEF_VISA_OPTION(vISA_HasPartialInt64, ET_BOOL, "-partialInt64", UNUSED, false) 299 300 DEF_VISA_OPTION(vISA_EnableDPASBFHFH, ET_BOOL, "-enableDPASBFHF", UNUSED, false) 301 DEF_VISA_OPTION(vISA_EnableMathDPASWA, ET_BOOL, "-enableMathDPASWA", UNUSED, false) 302 DEF_VISA_OPTION(vISA_skipFenceCommit, ET_BOOL, "-skipFenceCommit", UNUSED, false) 303 DEF_VISA_OPTION(vISA_removeFence, ET_BOOL, "-removeFence", "Remove fence if no write in a kernel", false) 304 305 //=== HW Workarounds === 306 DEF_VISA_OPTION(vISA_clearScratchWritesBeforeEOT, ET_BOOL, "-waClearScratchWrite", UNUSED, false) 307 DEF_VISA_OPTION(vISA_clearHDCWritesBeforeEOT, ET_BOOL, "-waClearHDCWrite", UNUSED, false) 308 DEF_VISA_OPTION(vISA_clearLSCUGMWritesBeforeEOT, ET_BOOL, "-waLscUgmFence", UNUSED, false) 309 DEF_VISA_OPTION(vISA_setA0toTdrForSendc, ET_BOOL, "-setA0toTdrForSendc", UNUSED, false) 310 DEF_VISA_OPTION(vISA_addFFIDProlog, ET_BOOL, "-noFFIDProlog", UNUSED, true) 311 DEF_VISA_OPTION(vISA_setFFID, ET_INT32, "-setFFID", "USAGE: -setFFID <ffid>\n", FFID_INVALID) 312 DEF_VISA_OPTION(vISA_replaceIndirectCallWithJmpi, ET_BOOL, "-replaceIndirectCallWithJmpi", UNUSED, false) 313 DEF_VISA_OPTION(vISA_noMaskWA, ET_INT32, "-noMaskWA", "USAGE: -noMaskWA <[0:1]=0 (off)|1|2|3(3=2), [2:2]=0|1>\n", 0) 314 DEF_VISA_OPTION(vISA_forceNoMaskWA, ET_BOOL, "-forceNoMaskWA", UNUSED, false) 315 DEF_VISA_OPTION(vISA_fusedCallWA, ET_BOOL, "-fusedCallWA", "EU Fusion call wa, to be deleted after using WA id", false) 316 DEF_VISA_OPTION(vISA_DstSrcOverlapWA, ET_BOOL, "-dstSrcOverlapWA", UNUSED, true) 317 DEF_VISA_OPTION(vISA_Src1Src2OverlapWA, ET_BOOL, "-src1Src2OverlapWA", UNUSED, false) 318 DEF_VISA_OPTION(vISA_noSendSrcDstOverlap, ET_BOOL, "-noSendSrcDstOverlap", UNUSED, false) 319 DEF_VISA_OPTION(vISA_enableCloneSampleInst, ET_BOOL, "-cloneSampleInst", UNUSED, false) 320 DEF_VISA_OPTION(vISA_cloneEvaluateSampleInst, ET_BOOL, "-cloneEvaluateSampleInst", UNUSED, false) 321 DEF_VISA_OPTION(vISA_expandMulPostSchedule, ET_BOOL, "-expandMulPostSchedule", UNUSED, true) 322 DEF_VISA_OPTION(vISA_expandMadwPostSchedule, ET_BOOL, "-expandMadwPostSchedule", UNUSED, true) 323 DEF_VISA_OPTION(vISA_disableRegDistDep, ET_BOOL, "-disableRegDistDep", UNUSED, false) 324 DEF_VISA_OPTION(vISA_forceSrc0ToQwForQwShlWA, ET_BOOL, "-forceSrc0ToQwForQwShlWA", UNUSED, false) 325 326 //=== HW debugging options === 327 DEF_VISA_OPTION(vISA_GenerateDebugInfo, ET_BOOL, "-generateDebugInfo", UNUSED, false) 328 DEF_VISA_OPTION(vISA_setStartBreakPoint, ET_BOOL, "-setstartbp", UNUSED, false) 329 DEF_VISA_OPTION(vISA_InsertHashMovs, ET_BOOL, NULLSTR, UNUSED, false) 330 DEF_VISA_OPTION(vISA_InsertDummyMovForHWRSWA, ET_BOOL, "-insertRSDummyMov", UNUSED, false) 331 DEF_VISA_OPTION(vISA_GenerateKernelInfo, ET_BOOL, "-generateKernelInfo", UNUSED, false) 332 DEF_VISA_OPTION(vISA_ManualEnableRSWA, ET_BOOL, "-manualEnableRSWA", UNUSED, false) 333 DEF_VISA_OPTION(vISA_InsertDummyMovForDPASRSWA, ET_BOOL, "-insertDPASRSDummyMov", UNUSED, true) 334 DEF_VISA_OPTION(vISA_registerHWRSWA, ET_INT32, "-dummyRegisterHWRSWA", UNUSED, 0) 335 DEF_VISA_OPTION(vISA_InsertDummyCompactInst, ET_BOOL, "-insertDummyCompactInst", UNUSED, false) 336 DEF_VISA_OPTION(vISA_AsmFileNameOverridden, ET_BOOL, NULLSTR, UNUSED, false) 337 DEF_VISA_OPTION(vISA_HashVal, ET_2xINT32, "-hashmovs", "USAGE: -hashmovs hi32 lo32\n", 0) 338 DEF_VISA_OPTION(vISA_HashVal1, ET_2xINT32, "-hashmovs1", "USAGE: -hashmovs1 hi32 lo32\n", 0) 339 DEF_VISA_OPTION(vISA_HashMovsAtPrologue, ET_BOOL, "-hashatprologue", UNUSED, false) 340 DEF_VISA_OPTION(vISA_AddKernelID, ET_BOOL, "-addKernelID", UNUSED, false) 341 DEF_VISA_OPTION(vISA_dumpPayload, ET_BOOL, "-dumpPayload", UNUSED, false) 342 DEF_VISA_OPTION(vISA_ScratchAllocForStackInKB, ET_INT32, "-scratchAllocForStackInKB", UNUSED, 64) 343 344 DEF_VISA_OPTION(vISA_dumpToCurrentDir, ET_BOOL, "-dumpToCurrentDir", UNUSED, false) 345 DEF_VISA_OPTION(vISA_dumpTimer, ET_BOOL, "-timestats", UNUSED, false) 346 DEF_VISA_OPTION(vISA_EnableCompilerStats, ET_BOOL, "-compilerStats", UNUSED, false) 347 348 DEF_VISA_OPTION(vISA_3DOption, ET_BOOL, "-3d", UNUSED, false) 349 DEF_VISA_OPTION(vISA_Stepping, ET_CSTR, "-stepping", "USAGE: missing stepping string. ", NULL) 350 DEF_VISA_OPTION(vISA_Platform, ET_CSTR, "-platform", "USAGE: missing platform string. ", NULL) 351 DEF_VISA_OPTION(vISA_HasEarlyGRFRead, ET_BOOL, "-earlyGRFRead", UNUSED, false) 352