Lines Matching +full:- +full:- +full:-

31 -------------------
45 The compiler performs the following high-level actions to generate OpenMP
71 -----------------------------
78 <table-tgt_offload_entry_structure>`.
81 :name: table-tgt_offload_entry_structure
83 … +---------+------------+------------------------------------------------------------------------+
87 … +---------+------------+------------------------------------------------------------------------+
89 … +---------+------------+------------------------------------------------------------------------+
91 … +---------+------------+------------------------------------------------------------------------+
92 … | int32_t | flags | Flags associated with the entry (see :ref:`table-offload_entry_flags`) |
93 … +---------+------------+------------------------------------------------------------------------+
95 … +---------+------------+------------------------------------------------------------------------+
101 <table-offload_entry_flags>`.
104 :name: table-offload_entry_flags
106 +----------------------------------+-------+-----------------------------------------+
110 +----------------------------------+-------+-----------------------------------------+
112 +----------------------------------+-------+-----------------------------------------+
114 +----------------------------------+-------+-----------------------------------------+
116 If the offloading entry is a global variable, indicated by a non-zero size, it
118 <table-offload_global_flags>` flags.
121 :name: table-offload_global_flags
123 …+-----------------------------+-------+-----------------------------------------------------------…
127 …+-----------------------------+-------+-----------------------------------------------------------…
129 …+-----------------------------+-------+-----------------------------------------------------------…
146 :ref:`offload entry<table-tgt_offload_entry_structure>`. The runtime will set
159 ``libomptarget``. This allows the front-end to generate information the runtime
161 standard :ref:`identifier structure <table-ident_t_structure>` used in
166 :name: table-ident_t_structure
168 …+---------+------------+--------------------------------------------------------------------------…
172 …+---------+------------+--------------------------------------------------------------------------…
174 …+---------+------------+--------------------------------------------------------------------------…
176 …+---------+------------+--------------------------------------------------------------------------…
178 …+---------+------------+--------------------------------------------------------------------------…
180 …+---------+------------+--------------------------------------------------------------------------…
185 <table-ident_t_structure>`, but the function name is replaced with the variable
191 --------------------------
196 ``-fopenmp-is-device`` flag to the front-end. We use the host bitcode to
198 from the previous stage using the ``-fopenmp-host-ir-file-path`` flag.
209 ``libomptarget-nvptx64-sm_70.bc``) using the ``-mlink-builtin-bitcode`` flag.
218 --------------------
223 is passed to the host backend using the ``-fembed-offload-object`` flag. This
230 .. code-block:: llvm
237 contain the following :ref:`offloading sections <table-offloading_sections>`. We
241 :name: table-offloading_sections
243 …+----------------------------------+--------------------------------------------------------------…
246 …| omp_offloading_entries | Offloading entry information (see :ref:`table-tgt_offload_ent…
247 …+----------------------------------+--------------------------------------------------------------…
249 …+----------------------------------+--------------------------------------------------------------…
254 --------------------------
256 Objects containing :ref:`table-offloading_sections` require special handling to
268 support a relocatable object format, such as AMDGPU or SPIR-V, or if the user
269 requested it using the ``-foffload-lto`` flag.
274 ----------------------
285 :ref:`device image structure <table-device_image_structure>` stores a single
289 :ref:`table-tgt_offload_entry_structure`.
292 :name: table-device_image_structure
294 +----------------------+--------------+----------------------------------------+
298 +----------------------+--------------+----------------------------------------+
300 +----------------------+--------------+----------------------------------------+
302 +----------------------+--------------+----------------------------------------+
304 +----------------------+--------------+----------------------------------------+
306 The target :ref:`target binary descriptor <table-target_binary_descriptor>` is
310 :name: table-target_binary_descriptor
312 +----------------------+------------------+------------------------------------------+
316 +----------------------+------------------+------------------------------------------+
318 +----------------------+------------------+------------------------------------------+
320 +----------------------+------------------+------------------------------------------+
322 +----------------------+------------------+------------------------------------------+
325 ----------------
327 :ref:`table-global_variables` lists various global variables, along with their
332 :name: table-global_variables
334 …+--------------------------------+---------------------+-------------------------+----------------…
338 …+--------------------------------+---------------------+-------------------------+----------------…
340 …+--------------------------------+---------------------+-------------------------+----------------…
341 …| __dummy.omp_offloading.entry | __tgt_offload_entry | .omp_offloading_entries | Dummy zero-size…
344 …+--------------------------------+---------------------+-------------------------+----------------…
346 …+--------------------------------+---------------------+-------------------------+----------------…
348 …+--------------------------------+---------------------+-------------------------+----------------…
350 …+--------------------------------+---------------------+-------------------------+----------------…
352 …+--------------------------------+---------------------+-------------------------+----------------…
363 .. code-block:: c
407 ------------------
412 .. code-block:: c++
433 .. code-block:: console
435 $ clang++ -fopenmp -fopenmp-targets=nvptx64 -O3 zaxpy.cpp -c
441 .. code-block:: text
443 $ llvm-readelf -WS zaxpy.o
450 Compiling this file again will invoke the ``clang-linker-wrapper`` utility to
456 .. code-block:: console
458 $ clang++ -fopenmp -fopenmp-targets=nvptx64 zaxpy.o -o zaxpy
462 ``-ccc-print-phases`` option in Clang. This matches the description in
465 .. code-block:: console
467 $ clang++ -fopenmp -fopenmp-targets=nvptx64 -ccc-print-phases zaxpy.cpp
468 # "x86_64-unknown-linux-gnu" - "clang", inputs: ["zaxpy.cpp"], output: "/tmp/zaxpy-host.bc"
469 …# "nvptx64-nvidia-cuda" - "clang", inputs: ["zaxpy.cpp", "/tmp/zaxpy-e6a41b.bc"], output: "/tmp/za…
470 …# "nvptx64-nvidia-cuda" - "NVPTX::Assembler", inputs: ["/tmp/zaxpy-07f434.s"], output: "/tmp/zaxpy
471 …# "x86_64-unknown-linux-gnu" - "clang", inputs: ["/tmp/zaxpy-e6a41b.bc", "/tmp/zaxpy-0af7b7.o"], o…
472 … # "x86_64-unknown-linux-gnu" - "Offload::Linker", inputs: ["/tmp/zaxpy-416cad.o"], output: "a.out"