<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in spirv-sim.py</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>5914566474de29309b0b4815ecd406805793de1f - [Utils][SPIR-V] Adding spirv-sim to LLVM (#107094)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/llvm/utils/spirv-sim/spirv-sim.py#5914566474de29309b0b4815ecd406805793de1f</link>
        <description>[Utils][SPIR-V] Adding spirv-sim to LLVM (#107094)### 2nd submissionThe buildbots are using python 3.8, and some type annotations I wasusing are only available starting 3.9. The last commit on the pile isthe additional changes compared to the original submissionhttps://github.com/llvm/llvm-project/pull/104020.### Original text:Currently, the testing infrastructure for SPIR-V is based on FileCheck.Those tests are great to check some level of codegen, but when the testneeds check both the CFG layout and the content of each basic-block,things becomes messy.Because the CHECK/CHECK-DAG/CHECK-NEXT state is limited, it is sometimeshard to catch the good block: if 2 basic blocks have similarinstructions, FileCheck can match the wrong one.Cross-lane interaction can be a bit difficult to understand, andwritting a FileCheck test that is strong enough to catch bad CFGtransforms while not being broken everytime some unrelated codegen partchanges is hard.And lastly, the spirv-val tooling we have checks that the generatedSPIR-V respects the spec, not that it is correct in regards to thesource IR.For those reasons, I believe the best way to test the structurizer isto:run spirv-val to make sure the CFG respects the spec.simulate the function to validate result for each lane, making sure thegenerated code is correct.This simulator has no other dependencies than core python. It also onlysupports a very limited set of instructions as we can test most featuresthrough control-flow and some basic cross-lane interactions.As-is, the added tests are just a harness for the simulator itself. Ifthis gets merged, the structurizer PR will benefit from this as I&apos;ll beable to add extensive testing using this.---------Signed-off-by: Nathan Gau&#235;r &lt;brioche@google.com&gt;

            List of files:
            /llvm-project/llvm/utils/spirv-sim/spirv-sim.py</description>
        <pubDate>Wed, 04 Sep 2024 09:24:52 +0000</pubDate>
        <dc:creator>Nathan Gau&#235;r &lt;brioche@google.com&gt;</dc:creator>
    </item>
<item>
        <title>c3d8124617a0f7916123174001547eb3b4968644 - [Utils][SPIR-V] Adding spirv-sim to LLVM (#104020)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/llvm/utils/spirv-sim/spirv-sim.py#c3d8124617a0f7916123174001547eb3b4968644</link>
        <description>[Utils][SPIR-V] Adding spirv-sim to LLVM (#104020)Currently, the testing infrastructure for SPIR-V is based on FileCheck.Those tests are great to check some level of codegen, but when the testneeds check both the CFG layout and the content of each basic-block,things becomes messy.- Because the CHECK/CHECK-DAG/CHECK-NEXT state is limited, it issometimes hard to catch the good block: if 2 basic blocks have similarinstructions, FileCheck can match the wrong one.- Cross-lane interaction can be a bit difficult to understand, andwritting a FileCheck test that is strong enough to catch bad CFGtransforms while not being broken everytime some unrelated codegen partchanges is hard.And lastly, the spirv-val tooling we have checks that the generatedSPIR-V respects the spec, not that it is correct in regards to thesource IR.For those reasons, I believe the best way to test the structurizer isto: - run spirv-val to make sure the CFG respects the spec.- simulate the function to validate result for each lane, making surethe generated code is correct.This simulator has no other dependencies than core python. It also onlysupports a very limited set of instructions as we can test most featuresthrough control-flow and some basic cross-lane interactions.As-is, the added tests are just a harness for the simulator itself. Ifthis gets merged, the structurizer PR will benefit from this as I&apos;ll beable to add extensive testing using this.---------Signed-off-by: Nathan Gau&#235;r &lt;brioche@google.com&gt;

            List of files:
            /llvm-project/llvm/utils/spirv-sim/spirv-sim.py</description>
        <pubDate>Tue, 03 Sep 2024 09:46:30 +0000</pubDate>
        <dc:creator>Nathan Gau&#235;r &lt;brioche@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
