I need some part of my julia code to be executed at run time and be loaded 
as llvm IR (or assembly). It is allowed to be IR or assembly code but not 
julia source code or c source code.

Are there other options like the output-bc option that  can work for me?

What other approaches I can consider?

Thanks for all the work making julia great!!

On Tuesday, October 25, 2016 at 10:58:37 AM UTC-7, Stefan Karpinski wrote:
>
> Julia can already generate static code:
>
>    - http://juliacomputing.com/blog/2016/02/09/static-julia.html
>    - http://juliacomputing.com/blog/2016/03/10/j2c-announcement.html
>
> However, Julia's @code_llvm output is not meant to be compilable. What are 
> you trying to do?
>
>
> On Tue, Oct 25, 2016 at 1:11 PM, <icebl...@gmail.com <javascript:>> wrote:
>
>> Thanks, is it possible for julia to avoid generating jl_value_t
>>
>> When I use a scalar Int64 julia generates code with i64 as input and no 
>>  jl_value_t appears. is it possible to do the same with arrays?  
>> Array{Float32,2} genrates a  jl_value_t? Is there an array type that can do 
>> this? For example fixed arrays?
>>
>> Finally, is this features planned to be supported if julia statically 
>> compiles?
>>
>> Thanks
>>
>> On Tuesday, October 25, 2016 at 9:23:02 AM UTC-7, Yichao Yu wrote:
>>
>>> On Mon, Oct 24, 2016 at 8:15 PM,  <icebl...@gmail.com> wrote: 
>>> > Hi All, 
>>> > 
>>> > I am trying to call llvm ir generated from julia. 
>>> > 
>>> > Here is my function: 
>>> > 
>>> > function incr(a::Array{Int64})  a+1; end 
>>> > 
>>> > 
>>> > thus: 
>>> > 
>>> > @code_llvm(incr([1 2 5 6 7])) 
>>> > 
>>> > returns: 
>>> > 
>>> > define %jl_value_t* @julia_incr_62127(%jl_value_t*) #0 { 
>>> > top: 
>>> >   %1 = call %jl_value_t* @"julia_.+_62128"(%jl_value_t* %0, i64 1) #0 
>>> >   ret %jl_value_t* %1 
>>> > } 
>>> > 
>>> > 
>>> > 
>>> > Thus to call it using llvm I try : 
>>> > 
>>> > Base.llvmcall(("""declare %jl_value_t* 
>>> @julia_incr_62127(%jl_value_t*)""", 
>>> > """top: 
>>> >          %1 = call %jl_value_t* @"julia_.+_62128"(%jl_value_t* %0, i64 
>>> 1) #0 
>>> >          ret %jl_value_t* %1 
>>> >        """),Vector{Int64},Tuple{Array{Int64}},[1 2 5 6 7]) 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > and I get the error: 
>>> > 
>>> > ERROR: error compiling anonymous: Failed to parse LLVM Assembly: 
>>> > julia: llvmcall:2:9: error: use of undefined type named 'jl_value_t' 
>>> > declare %jl_value_t* @julia_incr_62127(%jl_value_t*) 
>>> > 
>>> > 
>>> > I m not sure how to define jl_value_t. 
>>>
>>> This is not supported. 
>>> You also shouldn't call julia generated functions with `llvmcall`. 
>>>
>>> > 
>>> > 
>>> > any help? 
>>> > 
>>> > Thanks 
>>>
>>
>

Reply via email to