[llvm-dev] ORC JIT fails with standard math librrary
Frank Winter via llvm-dev
llvm-dev at lists.llvm.org
Tue Mar 26 13:36:44 PDT 2019
Hi,
I still can't get IR functions to JIT compile with the ORC JIT when they
contain a call to the standard math library. Attached is a minimal exploit.
The program uses the KaleidoscopeJIT.h that ships with LLVM 8 (except
that I had to expose the Datalayout). It reads from the filesystem an IR
file (filename "func_works.ll" or "func_cos_fails.ll) and asks the ORC
JIT first for the symbol "func_ir" and then for the address.
In case the file "func_works.ll" was read the program succeeds with:
symbol found!
address found!
In case the file "func_cos_fails.ll" was read the program fails with:
symbol found!
Failure value returned from cantFail wrapped call
UNREACHABLE executed at
install/llvm-8.0-x86-debug/include/llvm/Support/Error.h:732!
Stack dump:
This was tested on an x86 Linux Ubuntu system.
Does anyone see what's going on or is it time to file a bug report?
Regards,
Frank
-------------- next part --------------
source_filename = "module"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
declare float @cosf(float)
define float @func_ir(float %arg0) {
entrypoint:
%0 = call float @cosf(float %arg0)
ret float %0
}
-------------- next part --------------
source_filename = "module"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
define float @func_ir(float %arg0) {
entrypoint:
ret float %arg0
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: KaleidoscopeJIT.h
Type: text/x-chdr
Size: 5065 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190326/10780d64/attachment.h>
-------------- next part --------------
LLVM_CONFIG = /home/fwinter/toolchain/install/llvm-8.0-x86-debug/bin/llvm-config
LLVM_CXXFLAGS = $(shell $(LLVM_CONFIG) --cxxflags)
LLVM_LDFLAGS = $(shell $(LLVM_CONFIG) --ldflags)
LLVM_LIBS = $(shell $(LLVM_CONFIG) --libs)
all: test
test.o: test.cc KaleidoscopeJIT.h
g++ -c -o $@ $< $(LLVM_CXXFLAGS)
test: test.o
g++ -o $@ $< $(LLVM_LDFLAGS) $(LLVM_LIBS)
clean:
rm -f *.o
rm -f test
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.cc
Type: text/x-c++src
Size: 2060 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190326/10780d64/attachment.cc>
More information about the llvm-dev
mailing list