@@ -6,11 +6,8 @@ SPDX-License-Identifier: MIT
66
77============================= end_copyright_notice ===========================*/
88
9- #include < chrono>
10-
119#include " common/LLVMWarningsPush.hpp"
1210#include < llvm/Support/ScaledNumber.h>
13- #include " llvm/ADT/PostOrderIterator.h"
1411#include < llvm/IR/LLVMContext.h>
1512#include < llvm/IR/Verifier.h>
1613#include < llvm/Analysis/CFGPrinter.h>
@@ -41,6 +38,7 @@ SPDX-License-Identifier: MIT
4138#include " Compiler/CISACodeGen/ShaderCodeGen.hpp"
4239#include " Compiler/CISACodeGen/EstimateFunctionSize.h"
4340#include " Compiler/CISACodeGen/FixAddrSpaceCast.h"
41+ #include " Compiler/Optimizer/OpenCLPasses/GenericCastToPtrOpt/GenericCastToPtrOpt.hpp"
4442#include " Compiler/Optimizer/OpenCLPasses/GenericAddressResolution/GASResolving.h"
4543#include " Compiler/Optimizer/OpenCLPasses/GenericAddressResolution/GASRetValuePropagator.h"
4644#include " Compiler/Optimizer/OpenCLPasses/GenericAddressResolution/StaticGASResolution.h"
@@ -63,35 +61,29 @@ SPDX-License-Identifier: MIT
6361#include " Compiler/Optimizer/OpenCLPasses/PrepareInlineSamplerForBindless/PrepareInlineSamplerForBindless.hpp"
6462#include " Compiler/Optimizer/OpenCLPasses/ResolveInlineSamplerForBindless/ResolveInlineSamplerForBindless.hpp"
6563#include " Compiler/Optimizer/OpenCLPasses/PrivateMemory/PrivateMemoryUsageAnalysis.hpp"
66- #include " Compiler/Optimizer/OpenCLPasses/PrivateMemory/PrivateMemoryResolution.hpp"
6764#include " Compiler/Optimizer/OpenCLPasses/ProgramScopeConstants/ProgramScopeConstantAnalysis.hpp"
6865#include " Compiler/Optimizer/OpenCLPasses/ProgramScopeConstants/ProgramScopeConstantResolution.hpp"
6966#include " Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncsAnalysis.hpp"
7067#include " Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.hpp"
7168#include " Compiler/Optimizer/OpenCLPasses/ResourceAllocator/ResourceAllocator.hpp"
7269#include " Compiler/Optimizer/OpenCLPasses/BreakConstantExpr/BreakConstantExpr.hpp"
7370#include " Compiler/Optimizer/OpenCLPasses/LocalBuffers/InlineLocalsResolution.hpp"
74- #include " Compiler/Optimizer/OpenCLPasses/ReplaceUnsupportedIntrinsics/ReplaceUnsupportedIntrinsics.hpp"
7571#include " Compiler/Optimizer/OpenCLPasses/Atomics/ResolveOCLAtomics.hpp"
7672#include " Compiler/Optimizer/OpenCLPasses/WGFuncs/WGFuncResolution.hpp"
7773#include " Compiler/Optimizer/OpenCLPasses/AlignmentAnalysis/AlignmentAnalysis.hpp"
78- #include " Compiler/Optimizer/PreCompiledFuncImport.hpp"
7974#include " Compiler/Optimizer/OpenCLPasses/OpenCLPrintf/InjectPrintf.hpp"
8075#include " Compiler/Optimizer/OpenCLPasses/OpenCLPrintf/OpenCLPrintfAnalysis.hpp"
8176#include " Compiler/Optimizer/OpenCLPasses/OpenCLPrintf/OpenCLPrintfResolution.hpp"
8277#include " Compiler/Optimizer/OpenCLPasses/AggregateArguments/AggregateArguments.hpp"
8378#include " Compiler/Optimizer/OCLBIConverter.h"
8479#include " Compiler/Optimizer/OpenCLPasses/SetFastMathFlags/SetFastMathFlags.hpp"
8580#include " Compiler/Optimizer/OpenCLPasses/CorrectlyRoundedDivSqrt/CorrectlyRoundedDivSqrt.hpp"
86- #include " Compiler/Optimizer/OpenCLPasses/GenericAddressResolution/GenericAddressDynamicResolution.hpp"
87- #include " Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/AddressSpaceAliasAnalysis.h"
8881#include " Compiler/Optimizer/OpenCLPasses/DeviceEnqueueFuncs/DeviceEnqueue.hpp"
8982#include " Compiler/Optimizer/OpenCLPasses/UndefinedReferences/UndefinedReferencesPass.hpp"
9083#include " Compiler/Optimizer/OpenCLPasses/SubGroupFuncs/SubGroupFuncsResolution.hpp"
9184#include " Compiler/Optimizer/OpenCLPasses/BIFTransforms/BIFTransforms.hpp"
9285#include " Compiler/Optimizer/OpenCLPasses/BreakdownIntrinsic/BreakdownIntrinsic.h"
9386#include " Compiler/Optimizer/OpenCLPasses/TransformUnmaskedFunctionsPass/TransformUnmaskedFunctionsPass.h"
94- #include " Compiler/Optimizer/OpenCLPasses/StatelessToStateful/StatelessToStateful.hpp"
9587#include " Compiler/Optimizer/OpenCLPasses/KernelFunctionCloning/KernelFunctionCloning.h"
9688#include " Compiler/Optimizer/OpenCLPasses/NontemporalLoadsAndStoresInAssert/NontemporalLoadsAndStoresInAssert.hpp"
9789#include " Compiler/Optimizer/OpenCLPasses/HandleDevicelibAssert/HandleDevicelibAssert.hpp"
@@ -114,13 +106,10 @@ SPDX-License-Identifier: MIT
114106#include " Compiler/Optimizer/OpenCLPasses/AccuracyDecoratedCallsBiFResolution/AccuracyDecoratedCallsBiFResolution.hpp"
115107#include " Compiler/Optimizer/OpenCLPasses/ScalarArgAsPointer/ScalarArgAsPointer.hpp"
116108#include " AdaptorCommon/RayTracing/RayTracingPasses.hpp"
117- #include " Compiler/MetaDataApi/IGCMetaDataHelper.h"
118109#include " Compiler/CodeGenContextWrapper.hpp"
119110#include " Compiler/FixResourcePtr.hpp"
120- #include " Compiler/InitializePasses.h"
121111#include " Compiler/MetaDataApi/SpirMetaDataApi.h"
122112#include " Compiler/Optimizer/ReduceOptPass.hpp"
123- #include " Compiler/CustomUnsafeOptPass.hpp"
124113#include " MoveStaticAllocas.h"
125114#include " preprocess_spvir/PreprocessSPVIR.h"
126115#include " preprocess_spvir/ConvertUserSemanticDecoratorOnFunctions.h"
@@ -138,20 +127,15 @@ SPDX-License-Identifier: MIT
138127
139128#include " common/debug/Debug.hpp"
140129#include " common/igc_regkeys.hpp"
141- #include " common/debug/Dump.hpp"
142- #include " common/MemStats.h"
143130
144131#include < iStdLib/utility.h>
145132
146133#include " Compiler/CISACodeGen/DebugInfo.hpp"
147134#include " Compiler/CISACodeGen/TimeStatsCounter.h"
148135#include " Compiler/DebugInfo/ScalarVISAModule.h"
149- #include " Compiler/DebugInfo/Utils.h"
150136#include " Compiler/Builtins/BIFFlagCtrl/BIFFlagCtrlResolution.hpp"
151- #include " DebugInfo/VISADebugEmitter.hpp"
152137
153138#include < string>
154- #include < algorithm>
155139
156140#include < Metrics/IGCMetric.h>
157141
@@ -444,6 +428,10 @@ static void CommonOCLBasedPasses(OpenCLProgramContext* pContext)
444428 // mark load and stores inside assert calls as nontemporal to avoid caching.
445429 mpm.add (new NontemporalLoadsAndStoresInAssert ());
446430
431+ if (IGC_IS_FLAG_ENABLED (EnableGenericCastToPtrOpt)) {
432+ mpm.add (new GenericCastToPtrOpt ());
433+ }
434+
447435 // Report undef references after setting func attribs for import linking
448436 mpm.add (new UndefinedReferencesPass ());
449437
0 commit comments