codeplaysoftware / oneapi-construction-kit

Other
55 stars 21 forks source link

Run AlignModuleStructsPass earlier. #465

Closed hvdijk closed 1 month ago

hvdijk commented 1 month ago

Overview

Run AlignModuleStructsPass earlier.

Reason for change

The AlignModuleStructsPass patches up structs according to OpenCL alignment requirements so that they behave the same way on all implementations. We were already calling this, but we were calling it after running a number of upstream LLVM passes, so we were feeding them incorrect input and hoping we could correct that afterwards. A change has gone in on LLVM 19 that performs a valid optimization that we cannot correct afterwards.

Description of change

Make sure we run AlignModuleStructsPass as soon as we know what target we are compiling for.

Anything else we should know?

If there's any other relevant information we should know that may help us in understanding and verifying your patch, please include it here.

Checklist