Giter VIP home page Giter VIP logo

Comments (12)

vchuravy avatar vchuravy commented on May 10, 2024 1

It'd be nice to have pointers of where one would need to look at, in case they were interested in tackling the issue

So code_native/code_llvm use jl_get_llvmf_defn which takes in CodegenParams.

In NewPM PM{jl_ExecutionEngine->cloneTargetMachine(), getOptLevel(jl_options.opt_level)}; we setup a new passmanager based on the global TargetMachine.

getTargetCPU(),

from julia.

gbaraldi avatar gbaraldi commented on May 10, 2024 1

So first thing I would do is familiarize myself with the chain from code_llvm to jl_get_llvmf_defn_impl and understand how these functions work, because it's those that you will be modifying

from julia.

gbaraldi avatar gbaraldi commented on May 10, 2024

I'm not even sure that the ISAs need to be smaller, we should never execute this code. In essence one would need to pass the features to the LLVM module we codegen into.

from julia.

giordano avatar giordano commented on May 10, 2024

Oh, that'd be lovely as we wouldn't depend on the current host, that was a limitation mentioned by @vchuravy on slack.

from julia.

vchuravy avatar vchuravy commented on May 10, 2024

That limitation only applies to -C

from julia.

giordano avatar giordano commented on May 10, 2024

Ah, I got mixed up about it then!

from julia.

giordano avatar giordano commented on May 10, 2024

Thanks! Just to check if I understood correctly, one strategy to accomplish this is to add a field to jl_cgparams_t and CodegenParams for the target, which by default would represent the current target, but could optionally be a different ISA, and that'd be used in jl_get_llvmf_defn_impl to create a passmanager for the desired target (handling error cases)?

from julia.

vchuravy avatar vchuravy commented on May 10, 2024

Yeah that's what I would try.

from julia.

giordano avatar giordano commented on May 10, 2024

Thanks! I added the "good fist issue" label, sounds like a fun task for someone who wants to get started with the compiler 🙂

from julia.

vtjnash avatar vtjnash commented on May 10, 2024

Only for dump_module=true though. With that flag, we can print code for pretty much any combination of compiler options, pipelines, params, CPUs and target architectures. With dump_module=false though, we can strictly only print (dis)assembly for the native machine with all of the vanilla options.

from julia.

hackingwave avatar hackingwave commented on May 10, 2024

Hey team @gbaraldi @giordano @vtjnash @vtjnash .I am beginner to open source.I want to take this issue .Can you please guide me,may with some doc for above issue.

from julia.

hackingwave avatar hackingwave commented on May 10, 2024

Ohk sure @gbaraldi ,
I will go through code_llvm to jl_get_llvmf_defn_impl to gain a thorough understanding.

Thankyou.

from julia.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.