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

Roadmap #1

Open
3 tasks
kassane opened this issue Jun 18, 2024 · 2 comments
Open
3 tasks

Roadmap #1

kassane opened this issue Jun 18, 2024 · 2 comments
Labels
documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed

Comments

@kassane
Copy link
Owner

kassane commented Jun 18, 2024

Some references for improvements

Tasks

  • solve Windows Issue #2
  • add more tests and make examples (Fortran <=> C, C++ & Zig), explore zig-toolchain resources
  • add doc (rly?? maybe!)
@kassane kassane added documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed labels Jun 18, 2024
@kassane
Copy link
Owner Author

kassane commented Jun 19, 2024

How to test flang-new on CI (GH-action)?

Now, replace ubuntu-latest to ubuntu-24.04 or wait...

@kassane
Copy link
Owner Author

kassane commented Jun 21, 2024

Adding more build targets requires changes to this LoC:

// Instantiate the overloaded target instance based on the triple value.
// TODO: Add other targets to this file as needed.
std::unique_ptr<fir::CodeGenSpecifics>
fir::CodeGenSpecifics::get(mlir::MLIRContext *ctx, llvm::Triple &&trp,
KindMapping &&kindMap, const mlir::DataLayout &dl) {
switch (trp.getArch()) {
default:
break;
case llvm::Triple::ArchType::x86:
if (trp.isOSWindows())
return std::make_unique<TargetI386Win>(ctx, std::move(trp),
std::move(kindMap), dl);
else
return std::make_unique<TargetI386>(ctx, std::move(trp),
std::move(kindMap), dl);
case llvm::Triple::ArchType::x86_64:
if (trp.isOSWindows())
return std::make_unique<TargetX86_64Win>(ctx, std::move(trp),
std::move(kindMap), dl);
else
return std::make_unique<TargetX86_64>(ctx, std::move(trp),
std::move(kindMap), dl);
case llvm::Triple::ArchType::aarch64:
return std::make_unique<TargetAArch64>(ctx, std::move(trp),
std::move(kindMap), dl);
case llvm::Triple::ArchType::ppc64:
return std::make_unique<TargetPPC64>(ctx, std::move(trp),
std::move(kindMap), dl);
case llvm::Triple::ArchType::ppc64le:
return std::make_unique<TargetPPC64le>(ctx, std::move(trp),
std::move(kindMap), dl);
case llvm::Triple::ArchType::sparc:
return std::make_unique<TargetSparc>(ctx, std::move(trp),
std::move(kindMap), dl);
case llvm::Triple::ArchType::sparcv9:
return std::make_unique<TargetSparcV9>(ctx, std::move(trp),
std::move(kindMap), dl);
case llvm::Triple::ArchType::riscv64:
return std::make_unique<TargetRISCV64>(ctx, std::move(trp),
std::move(kindMap), dl);
case llvm::Triple::ArchType::amdgcn:
return std::make_unique<TargetAMDGPU>(ctx, std::move(trp),
std::move(kindMap), dl);
case llvm::Triple::ArchType::nvptx64:
return std::make_unique<TargetNVPTX>(ctx, std::move(trp),
std::move(kindMap), dl);
case llvm::Triple::ArchType::loongarch64:
return std::make_unique<TargetLoongArch64>(ctx, std::move(trp),
std::move(kindMap), dl);
}
TODO(mlir::UnknownLoc::get(ctx), "target not implemented");
}

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant