Skip to content

Conversation

@frasercrmck
Copy link
Contributor

This commit starts the process of reducing the amount of code included by OpenCL builtins, hopefully reducing build times in the process.

It introduces a minimal OpenCL header - opencl-base.h - which includes only the OpenCL type definitions and the macros necessary for declaring/defining functions.

Where the OpenCL builtin implementations would currently include the whole of <clc/opencl/clc.h>, which defines all OpenCL builtins, now they include only the specific declaration they need.

This mirrors how the CLC builtins are defined.

@frasercrmck frasercrmck force-pushed the libclc-opencl-base-integer branch from 809436c to 000693b Compare July 4, 2025 10:12
Copy link
Contributor

@wenju-he wenju-he left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

This commit starts the process of reducing the amount of code included
by OpenCL builtins, hopefully reducing build times in the process.

It introduces a minimal OpenCL header - opencl-base.h - which includes
only the OpenCL type definitions and the macros necessary for
declaring/defining functions.

Where the OpenCL builtin implementations would currently include the
whole of <clc/opencl/clc.h>, which defines *all* OpenCL builtins, now
they include only the specific declaration they need.

This mirrors how the CLC builtins are defined.
@frasercrmck frasercrmck force-pushed the libclc-opencl-base-integer branch from 000693b to 23d28ce Compare July 7, 2025 09:12
@frasercrmck frasercrmck merged commit ea68589 into llvm:main Jul 7, 2025
9 checks passed
@frasercrmck frasercrmck deleted the libclc-opencl-base-integer branch July 7, 2025 09:20
frasercrmck added a commit to frasercrmck/llvm-project that referenced this pull request Jul 7, 2025
This commit continues the work from llvm#146840 and extends it to the
maths, geomtrics, common, and relational directories.

All headers have include guards and, where appropriate, include the
minimal code required for their specific definitions. Implementation
files no longer include the large catch-all header of all OpenCL builtin
declarations.
frasercrmck added a commit that referenced this pull request Jul 8, 2025
This commit continues the work from #146840 and extends it to the maths,
geomtrics, common, and relational directories.

All headers have include guards and, where appropriate, include the
minimal code required for their specific definitions. Implementation
files no longer include the large catch-all header of all OpenCL builtin
declarations.
frasercrmck added a commit to frasercrmck/llvm-project that referenced this pull request Jul 8, 2025
This commit finishes the work started in llvm#146840 and llvm#147276. It makes
each OpenCL header self-contained and each implementation file include
only the header it needs. It removes the need for a catch-all include
file of all OpenCL builtin declarations.
frasercrmck added a commit that referenced this pull request Jul 8, 2025
This commit finishes the work started in #146840 and #147276. It makes
each OpenCL header self-contained and each implementation file include
only the headers it needs. It removes the need for a catch-all include
file of all OpenCL builtin declarations.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

libclc libclc OpenCL library

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants