Skip to content

invalid redefinition of function 'eclair_btree_insert_range_delta_*' #164

Description

@Price1999a
@def p(X: u32, Z: u32) input output.
@def q(X: u32, Y: u32, Z: u32) input output.
@def r(R: u32, P: u32, E: u32) input.
@def c(Y: u32, Z: u32, W: u32) input.
@def u(R: u32, Z: u32, W: u32) input.
@def s(R: u32, P: u32) input.

p(arg_x,arg_z) :- p(arg_x,arg_y), p(arg_y,arg_z).
q(arg_x,arg_r,arg_z) :- p(arg_x,arg_y), q(arg_y,arg_r,arg_z).
p(arg_x,arg_z) :- p(arg_y,arg_w), u(arg_w,arg_r,arg_z), q(arg_x,arg_r,arg_y).
p(arg_x,arg_z) :- c(arg_y,arg_w,arg_z),p(arg_x,arg_w), p(arg_x,arg_y).
q(arg_x,arg_q,arg_z) :- q(arg_x,arg_r,arg_z),s(arg_r,arg_q).
q(arg_x,arg_e,arg_o) :- q(arg_x,arg_y,arg_z),r(arg_y,arg_u,arg_e),q(arg_z,arg_u,arg_o).

Hello, this is an Eclair rewrite of the Soufflé rules in galen. However, after compiling it to an LLVM IR file using the current version of Eclair, I found that there are errors in the generated code. The compiler seems to generate a series of duplicate functions.
For example, L5016 and L5032.

I used the following compilation command (shentianqi/eclair comes from mygithub action ):

docker run -v $(pwd):/code --rm -it shentianqi/eclair:main eclair compile /code/query-eclair.dl >$(pwd)/query-eclair.ll
FROM teeks99/clang-ubuntu:17

WORKDIR /app
VOLUME /app/data

COPY main.c .
COPY query-eclair.ll .


RUN clang -o program main.c query-eclair.ll

CMD ["./program"]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions