Skip to content

Implement logic for feature detection piggy backing on LLVM's feature detection #57049

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

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

gbaraldi
Copy link
Member

@gbaraldi gbaraldi commented Jan 14, 2025

This doesn't switch or implement the new logic fully but I'm already opening for some comments if people have opinions.
The design is a bit more C++isy (this means removing c++ from the runtime is further away) and potentially less space efficient than the previous one (Not that it's very relevant).

The design switches to a clone targets logic that serializes a string like
cpu_name1;+feature1, +feature2; 0: cpu_name2; +feature3, +feature4; 0
This gets rid of the nice bitset logic that we have but hopefully LLVM can replace most of it

  • CPU name based parsing
  • Target choosing logic (This matches by number of features currently, do we want something nicer?)
  • Extra feature parsing (dependency detection)
  • Cloning logic
  • Adapt LLVM pass
  • Extra targets (AMDGPU?)
  • C api for LLVM.jl and relateds to use (just wrap jl_get_llvm_features)
  • Delete old code

… detection mechanism

This only implements the parsing and serialization for now.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants