Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need to switch to Opaque Pointers #2245

Closed
dbabokin opened this issue Jan 28, 2022 · 5 comments
Closed

Need to switch to Opaque Pointers #2245

dbabokin opened this issue Jan 28, 2022 · 5 comments
Assignees
Labels
LLVM bug Bug in LLVM

Comments

@dbabokin
Copy link
Collaborator

dbabokin commented Jan 28, 2022

Opaque Pointers is a controversial evolution of LLVM with unclear benefits (the declared benefits are more clear/simpler semantics, fewer number of bitcasts), which moves forward on unpredictable schedule (the most likely typed pointers will be deprecated / phased out after LLVM 14 branching). Nevertheless, it's a breaking feature, as it changes the core LLVM IR semantics. And it needs to be properly supported by ISPC in order to keep using new versions of LLVM.

The main concern with opaque pointers is undermined ability of the optimizer to reason about types. This mostly affects high-level optimizations and should have limited effect on the optimizations done by ISPC.

This thread seems to be the kick starter for opaque pointers discussions.

This commit llvm/llvm-project@184591a broke ISPC build with LLVM trunk (which is 14 at the moment), but more fundamental changes will follow.

@dbabokin
Copy link
Collaborator Author

Great post by Chris Lattner on opaque pointers and background of original decision to have high level information in the first place: link. In brief, LLVM IR is considered too low level for this type of information.

@pbrubaker
Copy link
Collaborator

Is this still an ongoing issue?

@pbrubaker pbrubaker added the LLVM bug Bug in LLVM label Jul 18, 2022
@aneshlya
Copy link
Collaborator

Yes, the work to support opaque pointers is in progress.

@aneshlya
Copy link
Collaborator

aneshlya commented Sep 9, 2022

Related PRs so far:
#2357
#2360
#2363
#2365
#2368
#2374
#2377

@aneshlya
Copy link
Collaborator

Support of opaque pointers for CPU build was completed. Adjustments for Xe-enabled built will be done when dependencies are ready.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
LLVM bug Bug in LLVM
Projects
Status: Done
Development

No branches or pull requests

3 participants