Commit graph

40 commits

Author SHA1 Message Date
Ivan
28abe2c975 basic bind works! 2018-09-06 21:21:38 +03:00
Ivan
c6a454b367 func map 2018-09-05 19:51:46 +03:00
Ivan
a27d6492c3 store thunk func ptr in jit metadata 2018-09-05 19:51:45 +03:00
Ivan
bdc5f65070 bindInstaces 2018-09-05 19:51:44 +03:00
Ivan
6734cd19f3 jit bind D part and C++ stubs 2018-09-05 19:51:41 +03:00
Ivan
98ed035af7 some jit code cleaup and clang-format 2018-08-25 15:41:08 +03:00
Ivan Butygin
02d43a7c26
jit: Wrap function list into JitModuleInfo (#2746) 2018-06-13 21:24:50 +03:00
Ivan Butygin
6ca0ba81f8
JITContext symmap refactoring (#2745) 2018-06-13 21:24:25 +03:00
Ivan Butygin
86265da6b0
jit: use llvm::Mangler instead of hand-written routine (#2742) 2018-06-10 15:24:15 +03:00
Ivan
e6b7127d49 rename MyJIT ti JITContext 2018-06-04 22:09:54 +03:00
Ivan
fa4ad4e8a7 move MyJIT to separate file 2018-06-04 22:09:52 +03:00
Ivan
0191c75800 llvm 7.0 fixes 2018-06-04 22:09:51 +03:00
Ivan
7cccefc0b2 llvm 6.0 fixes 2018-06-03 11:56:29 +03:00
Ivan
2f4a9bd30c compile.cpp cleanup 2018-06-03 11:56:29 +03:00
Martin Kinkelin
7816e7730a
Win64: Use LLVM's vector calling convention for extern(D) (#2714)
I.e., pass and return vectors in registers. With the default C calling
convention (and the Win64 TargetABI not touching any vectors), vectors
are returned in XMM0, but inefficiently passed as ref to hidden copy
(automatically by LLVM).

Microsoft's vector calling convention, introduced opt-in with VS 2013,
additionally puts HFAs and HVAs (Homogeneous Float/Vector Aggregates)
into registers, see
https://blogs.msdn.microsoft.com/vcblog/2013/07/11/introducing-vector-calling-convention/.
2018-05-31 01:44:46 +02:00
Johan Engelen
aa979e6e90 fix LLVM7.0 build (#2578) 2018-02-19 00:07:01 +03:00
Ivan
938ac0e4bf clang-format 2018-02-15 21:50:46 +03:00
Ivan
c6ec90e8ef Drop jit support for pre 5.0 llvm 2018-02-15 21:45:12 +03:00
Ivan
009570f9a2 llvm 70 fixes 2018-02-14 18:08:33 +03:00
Ivan Butygin
43c02cecc0
Jit api versioning (#2514) 2018-01-23 21:10:42 +03:00
Ivan
07b7abefa4 jit runtime small refactorings 2018-01-15 23:16:05 +03:00
Ivan Butygin
00a9a38212 Disassemble resulting jit module and output asm to debug handler (#2407) 2017-11-26 10:38:08 +01:00
Ivan
911cf5bfdc clang-format 2017-11-09 22:05:57 +03:00
Ivan
a6c88bf541 remove unneeded .setRelocationModel(llvm::Reloc::Static) 2017-11-09 20:56:54 +03:00
Ivan
abcfc7a451 License headers and style fixes 2017-11-05 22:47:10 +03:00
Ivan
8d59c56d4e disable jit asm dump for now 2017-11-05 16:35:19 +03:00
Ivan
c774617266 Properly handle when situation when compileDynamicCode(); called but we dont have jit functions. 2017-11-05 15:26:38 +03:00
Ivan Butygin
27a992ce6a Reduce exported symbols count 2017-10-22 13:21:01 +03:00
Ivan
5249be475f Merge jit modules 2017-10-20 13:44:37 +03:00
Ivan
a6d788cdb5 Set "target-cpu" and "target-features" function attributes to jit host except when they are set explicitly by user 2017-10-19 19:06:04 +03:00
Ivan
2ddc41b02d Allow to get original IR, optimized IR and final asm through dump_handler 2017-10-19 18:26:10 +03:00
Ivan
5bbfb93ec2 clang-format 2017-10-16 00:21:49 +03:00
Ivan
6f6847c267 fix typo 2017-10-15 23:31:40 +03:00
Ivan
c7b95a09e5 fix typo 2017-10-15 22:48:22 +03:00
Ivan
3c57670c5c win32 fixes 2017-10-15 18:45:58 +03:00
Ivan
6dcf13a300 handle apple name decoration 2017-10-15 14:35:30 +03:00
Ivan
8001bad9cf Symbol resolving refactoring and more logs 2017-10-15 11:57:01 +03:00
Ivan
5bb48d84c4 rename rtCompileProcess() to compileDynamicCode() 2017-09-03 18:20:03 +03:00
Ivan
a893405b5e llvm 5.0 support 2017-08-27 18:15:29 +03:00
Ivan
42f283c221 D dynamic compilation support 2017-08-27 17:42:55 +03:00