Skip to content

Commit aad78d6

Browse files
author
Colin Davidson
committed
Updated compiler_passes.rst since last comments
1 parent 63e8747 commit aad78d6

1 file changed

Lines changed: 17 additions & 15 deletions

File tree

scripts/native_cpu_compiler_passes.rst

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ Compiler passes
44
Introduction
55
------------
66

7-
Files under this directory are ported from the `oneAPI Construction Kit`_. They
8-
are used by Native CPU to help create a pipeline for turning a base kernel into
9-
something which can be executed across multiple work items, including
10-
auto-vectorization.
7+
Files under this directory are integrated from the `oneAPI Construction Kit`_
8+
using `git-filter-repo`. They are used by Native CPU to help create a pipeline for
9+
turning a base kernel into something which can be executed across multiple work
10+
items, including auto-vectorization.
1111

1212
These files are largely from the sub-directories
1313
**modules/compiler/compiler_pipeline**, **modules/compiler/vecz** and
14-
**modules/compiler/multi_llvm**. Only files that are used have been copied and
15-
the **CMake** files have been updated to fit in with LLVM components.
14+
**modules/compiler/multi_llvm**. Only files that are used have been integrated
15+
and the **CMake** files have been updated to fit in with LLVM components.
1616

1717
These sub-directories are used as follows:
1818

@@ -26,19 +26,21 @@ These sub-directories are used as follows:
2626

2727
* **multi_llvm**. This provides some support for these functions to work across
2828
multiple LLVM versions. Although this is not strictly needed in LLVM, it has
29-
been ported across to allow the port to go smoothly, without changing files
29+
been integrated to allow the integration to go smoothly, without changing files
3030
directly. Note this is header only and exists under
3131
**compiler_pipeline/include/multi_llvm**.
3232

3333
**compiler_pipeline** is documented in :doc:`/compiler_pipeline/docs/compiler`
3434
and **vecz** is documented in :doc:`/vecz/vecz`. Note that there are several
3535
limitations both in the documentation and in the code that are a result of the
36-
initial port. These should be addressed.
36+
initial integration. These should be addressed over time for maintainability reasons,
37+
they are not necessary for correctness or performance reasons.
3738

3839
General limitations
3940
-------------------
4041

41-
There is the following limitations in the current port:
42+
To simplify the integration and reduce risk, most of the files were integrated
43+
with no changes at all. This means there are currently the following limitations:
4244

4345
* The documentation makes a lot of references to **oneAPI Construction Kit**
4446
constructs such as ComputeMux. It also references files that have not been
@@ -47,19 +49,19 @@ copied across.
4749
multi_llvm is **multi_llvm** and the namespace in **vecz** is **vecz**. These should
4850
be updated to reflect being under **LLVM**.
4951
* include files should ideally be moved to under **llvm/include** but remain under
50-
these directories after the port.
52+
these directories after the integration.
5153
* **vecz** has a test tool **veczc** and associated **lit** tests. This tool if
5254
required should be moved under **llvm/tools** or **llvm/test**. This is also
5355
requires `NATIVE_CPU_BUILD_VECZ_TEST_TOOLS` **CMake** option to build. This can be
5456
run using the target `check-sycl-vecz`.
55-
* **compiler_pipeline** has lit tests for the passes which have not been ported
56-
across. This is because they use a tool **muxc**, but these passes should be
57+
* **compiler_pipeline** has lit tests for the passes which have not been integrated.
58+
This is because they use a tool **muxc**, but these passes should be
5759
able to be tested using **opt**. These lit tests can be found in the
5860
`pipeline pass tests`_.
59-
* There are many files that are unlikely to have any code coverage but because
61+
* There are many integrated files that are unlikely to have any code coverage but because
6062
there are referred to in other files which we do need, they exist here. These
6163
should be pruned over time as a better understanding is made of what is
62-
required.
64+
essential.
6365

6466
.. _oneAPI Construction Kit: https://github.com/uxlfoundation/oneapi-construction-kit
65-
.. _pipeline pass tests: https://github.com/uxlfoundation/oneapi-construction-kit/tree/main/modules/compiler/test/lit/passes
67+
.. _pipeline pass tests: https://github.com/uxlfoundation/oneapi-construction-kit/tree/main/modules/compiler/test/lit/passes

0 commit comments

Comments
 (0)