[llvm] [UpdateTestChecks] Add support for SPIRV in update_llc_test_checks.py (PR #66213)
Paulo Matos via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 19 08:17:53 PDT 2023
pmatos wrote:
> > > Why not just match OpName ? ASM_FUNCTION_X86_RE does something similar in matching the func name a few lines before the "Begin function" tag
> >
> >
> > As far as I understand we need to grab the body of the function. In the case of SPIRV, the body doesn't come after the name. Take the case of 2 functions called void1 and void2:
> > ```
> > OpCapability Kernel
> > OpCapability Addresses
> > OpCapability Linkage
> > OpCapability OptNoneINTEL
> > OpExtension "SPV_INTEL_optnone"
> > %1 = OpExtInstImport "OpenCL.std"
> > OpMemoryModel Physical32 OpenCL
> > OpExecutionMode %4 ContractionOff
> > OpExecutionMode %5 ContractionOff
> > OpSource Unknown 0
> > OpName %4 "void1"
> > OpName %5 "void2"
> > OpDecorate %4 LinkageAttributes "void1" Export
> > OpDecorate %5 LinkageAttributes "void2" Export
> > %2 = OpTypeVoid
> > %3 = OpTypeFunction %2
> > %4 = OpFunction %2 DontInline %3 ; -- Begin function void1
> > %6 = OpLabel
> > OpReturn
> > OpFunctionEnd
> > ; -- End function
> > %5 = OpFunction %2 DontInline %3 ; -- Begin function void2
> > %7 = OpLabel
> > OpReturn
> > OpFunctionEnd
> > ; -- End function
> > ```
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > How would you grab with a regex the body of void2 if I parse the name from OpName?
>
> How about something like something along the line of: "OpName (?P%[0-9_]+)(._\n)+"\1 = OpFunction._\n(?P.*?)OpFunctionEnd"
Thanks, I have updated the patch with a regex based on your suggestion that seems to work well.
https://github.com/llvm/llvm-project/pull/66213
More information about the llvm-commits
mailing list