Commit graph

66 commits

Author SHA1 Message Date
Ivan Butygin
a40c6c7fd2
Make LDC custom passes available to jit, add API for jit compiler options (#2758) 2019-09-08 09:16:05 +03:00
Ivan Butygin
857b9773a0
Jit: report parseBitcodeFile errors (#3055) 2019-04-09 21:22:43 +03:00
Ivan Butygin
eaa65fca18
Jit: better error handling and handle correctly __chkstk function (#3051) 2019-04-06 10:34:02 +03:00
Nicholas Wilson
3dc367db40
Fix jit with LLVM 8 (#2944) 2018-12-18 16:02:13 +08:00
Martin Kinkelin
39b46d7b69 Replace old-school header guards by #pragma once 2018-10-20 16:19:46 +02:00
Ivan
355b4cb46b fix bind for @dynamicCompileEmit 2018-09-06 21:22:07 +03:00
Ivan
91c1b8e69c clang format 2018-09-06 21:22:01 +03:00
Ivan
0184e07380 nested binds 2018-09-06 21:21:59 +03:00
Ivan
0c8c8e8067 optimize bind functions 2018-09-06 21:21:57 +03:00
Ivan
c682615a99 example func to properly propagate attributes 2018-09-06 21:21:55 +03:00
Ivan
f102c3d471 structs support 2018-09-06 21:21:47 +03:00
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
d2c55491c4
jit: refactor valueparser (#2744) 2018-06-13 21:24:04 +03:00
Ivan Butygin
86265da6b0
jit: use llvm::Mangler instead of hand-written routine (#2742) 2018-06-10 15:24:15 +03:00
Ivan Butygin
9c048c635c
Jit code style fixes (#2741) 2018-06-10 15:16:35 +03:00
Ivan
bb8967d9ac Fix for llvm 7.0 2018-06-05 21:09:35 +03:00
Ivan
0e50e1db39 license header 2018-06-04 22:31:52 +03:00
Ivan
e6b7127d49 rename MyJIT ti JITContext 2018-06-04 22:09:54 +03:00
Ivan
13d5a55f71 make ModuleListener private 2018-06-04 22:09:53 +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
Ivan
2bee0c11ca add symbol comment for pc-relative relocations (arm) 2018-06-03 11:56:29 +03:00
Ivan
96eb76dd4f MCCodeEmitter doesn't needed 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
bfd412cdf9
Small jit fixes (#2570)
* Better thunks stripping from jit module.
    * Fixes to jit disassembler
    * Strip comdats from jit module
2018-02-14 17:57:37 +03:00
Ivan Butygin
43c02cecc0
Jit api versioning (#2514) 2018-01-23 21:10:42 +03:00
Johan Engelen
c8625c43f4
Fix JIT RT compilation for LLVM 6.0 (#2523) 2018-01-20 16:32:19 +01:00
Ivan
07b7abefa4 jit runtime small refactorings 2018-01-15 23:16:05 +03:00
Nicholas Wilson
a73188c8e5
LLVM7 (#2490)
* MCAsmBackend changes

* Add profile-rt-70

* ProfData definition

* ProfData tool

* Remove profile-rt CMakeLists.txt

* Update druntime submodule
2018-01-14 07:57:55 +08:00
Ivan Butygin
00a9a38212 Disassemble resulting jit module and output asm to debug handler (#2407) 2017-11-26 10:38:08 +01:00
Ivan
347c30d958 remove commented code 2017-11-10 21:36:22 +03: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
33898d5b8c Jit optimizer cleanup 2017-11-05 23:17:50 +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