Comments (12)
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.
Line 2213 in d384a36
from julia.
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.
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.
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.
That limitation only applies to -C
from julia.
Ah, I got mixed up about it then!
from julia.
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.
Yeah that's what I would try.
from julia.
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.
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.
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.
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)
- Encode type-/layout- vs. region-based alias info separately in LLVM IR
- Meta.parse(repr(Char(0x110000))) fails HOT 3
- Random stdlib: randstring(rand(UInt8)) errors
- Most packages with artifacts are not relocatable HOT 4
- REPL stdout output should not be highlighted in code examples HOT 1
- pivoted cholesky(I(2)) not implemented
- Bounds check inconsistency in `keepat!`/`deleteat!`
- Unreachable reached and Illegal Instruction in v1.10+ HOT 3
- `in(::Missing, ::Any)` inconsistency
- Overallocation of arrays now seems to persist through precompile serialization on 1.11+ HOT 7
- type application doesn't infer as consistent HOT 1
- Can't compute eigenvalues of Hermitian Diagonal matrix for generic types
- Heap snapshot does not seem to work anymore on 1.11 (in chrome profile loader) HOT 3
- `@inbounds` overrides `val` variable in macros. Wrong usage of `local` HOT 4
- Unwrapped Union Alls can't be added more than two times to a vector with [] syntax. Reproducible crash when using these vectors.
- Basic use of StaticArrays and `begin ... end` leads to GC error (probable corruption) HOT 6
- New `copy_string` function
- make `Base.@assume_effects :nothrow` mark throwing expressions as `unreachable` HOT 2
- Some uses of `@__DIR__` should be relocatable. HOT 3
- asr versus lsr HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from julia.