@@ -29,7 +29,7 @@ So, overall the picture looks like:
29
29
- device or host compiler generates mapping
30
30
"address of a host variable" -> "unique symbolic ID" (as described below by
31
31
this document)
32
- - DPC++ RT uses these to mappings to obtain required information and somehow
32
+ - DPC++ RT uses these two mappings to obtain required information and somehow
33
33
uses it
34
34
35
35
This design document describes two approaches of how the
@@ -42,7 +42,7 @@ and exist in the implementation at the same time, but only one of them will be
42
42
used at a time depending on whether 3rd-party host compiler is used or not.
43
43
44
44
Integration footer can be used with 3rd-party host compilers, but it requires
45
- appending to a translation unit provided by user, which could affect debug
45
+ appending to a translation unit provided by a user, which could affect debug
46
46
information: since there are no compilers that support appending a file at the
47
47
end (similar to ` -include ` ), appending is done by generating a temporary input
48
48
file using concatenation of the original input and integration footer.
@@ -55,7 +55,7 @@ Such replacement of the main translation unit causes the following issues:
55
55
Studio, for example)
56
56
57
57
Customizing host compiler allows to avoid issues with debuggers and code
58
- coverage tools, but that is not an option if user wants to compile host part
58
+ coverage tools, but that is not an option if a user wants to compile host part
59
59
of an app with a 3rd-party host compiler.
60
60
61
61
Further sections describe the implementation design of both approaches in more
@@ -114,7 +114,7 @@ when the compiler is invoked in SYCL host mode (`-fsycl-is-host` `-cc1` flag).
114
114
## Common headers part
115
115
116
116
Header files should be modified by adding the new attributes to types
117
- declarations, objects of which we will need in our mapping.Again,
117
+ declarations, objects of which we will need in our mapping. Again,
118
118
` device_global ` and ` specialization_id ` are examples here:
119
119
120
120
```
@@ -155,11 +155,11 @@ constructor defined in the same translation unit: this is needed to allow usages
155
155
of ` specialization_id ` and ` device_global ` variables from user-defined global
156
156
constructors.
157
157
158
- That poses some restrictions on those uniquely identifiable object , i.e. that
158
+ That poses some restrictions on those uniquely identifiable objects , i.e. that
159
159
they can't be used from another global object due to risk of accessing a
160
160
non-initialized object, but that is an UB anyway because the order of global
161
161
objects initialization is not defined in C++ when those objects are defined in
162
- different translation unit.
162
+ a different translation unit.
163
163
164
164
## Compiler driver part
165
165
@@ -170,7 +170,7 @@ approach we are taking and the decision is made based on whether or not
170
170
If ` -fsycl-host-compiler ` option is present, the compiler driver chooses the
171
171
integration footer approach:
172
172
- it supplies device compilation step with ` -fsycl-int-footer ` option to
173
- instruct device compiler to emit integration footer
173
+ instruct device compiler to emit an integration footer
174
174
- it appends the integration footer to user-provided translation unit before
175
175
passing it to a host compiler
176
176
@@ -184,7 +184,7 @@ chooses another approach by simply doing nothing related to integration footer:
184
184
When this approach is used, not only extra file (integration footer) is
185
185
generated, but integration header is also modified: FE compiler generates a
186
186
definition of a namespace scope variable of type
187
- ` __sycl_device_global_registration ` whose sole purpose it to run its constructor
187
+ ` __sycl_device_global_registration ` whose sole purpose is to run its constructor
188
188
before the application's ` main() ` function:
189
189
190
190
```
0 commit comments