Skip to content

Commit b23d5e1

Browse files
committed
Actually setup jit targets when compiling packageimages instead of targeting only one
1 parent 1221160 commit b23d5e1

File tree

3 files changed

+6
-18
lines changed

3 files changed

+6
-18
lines changed

src/processor_arm.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1634,8 +1634,6 @@ static void ensure_jit_target(bool imaging)
16341634
{
16351635
auto &cmdline = get_cmdline_targets();
16361636
check_cmdline(cmdline, imaging);
1637-
if (!jit_targets.empty())
1638-
return;
16391637
for (auto &arg: cmdline) {
16401638
auto data = arg_target_data(arg, jit_targets.empty());
16411639
jit_targets.push_back(std::move(data));
@@ -1854,8 +1852,6 @@ jl_image_t jl_init_processor_pkgimg(void *hdl)
18541852
{
18551853
if (jit_targets.empty())
18561854
jl_error("JIT targets not initialized");
1857-
if (jit_targets.size() > 1)
1858-
jl_error("Expected only one JIT target");
18591855
return parse_sysimg(hdl, pkgimg_init_cb);
18601856
}
18611857

@@ -1873,8 +1869,8 @@ JL_DLLEXPORT jl_value_t* jl_check_pkgimage_clones(char *data)
18731869
std::pair<std::string,llvm::SmallVector<std::string, 0>> jl_get_llvm_target(bool imaging, uint32_t &flags)
18741870
{
18751871
ensure_jit_target(imaging);
1876-
flags = jit_targets[0].en.flags;
1877-
return get_llvm_target_vec(jit_targets[0]);
1872+
flags = jit_targets.front().en.flags;
1873+
return get_llvm_target_vec(jit_targets.front());
18781874
}
18791875

18801876
const std::pair<std::string,std::string> &jl_get_llvm_disasm_target(void)

src/processor_fallback.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,6 @@ static void ensure_jit_target(bool imaging)
7474
{
7575
auto &cmdline = get_cmdline_targets();
7676
check_cmdline(cmdline, imaging);
77-
if (!jit_targets.empty())
78-
return;
7977
for (auto &arg: cmdline) {
8078
auto data = arg_target_data(arg, jit_targets.empty());
8179
jit_targets.push_back(std::move(data));
@@ -126,16 +124,14 @@ jl_image_t jl_init_processor_pkgimg(void *hdl)
126124
{
127125
if (jit_targets.empty())
128126
jl_error("JIT targets not initialized");
129-
if (jit_targets.size() > 1)
130-
jl_error("Expected only one JIT target");
131127
return parse_sysimg(hdl, pkgimg_init_cb);
132128
}
133129

134130
std::pair<std::string,llvm::SmallVector<std::string, 0>> jl_get_llvm_target(bool imaging, uint32_t &flags)
135131
{
136132
ensure_jit_target(imaging);
137-
flags = jit_targets[0].en.flags;
138-
return get_llvm_target_vec(jit_targets[0]);
133+
flags = jit_targets.front().en.flags;
134+
return get_llvm_target_vec(jit_targets.front());
139135
}
140136

141137
const std::pair<std::string,std::string> &jl_get_llvm_disasm_target(void)

src/processor_x86.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -914,8 +914,6 @@ static void ensure_jit_target(bool imaging)
914914
{
915915
auto &cmdline = get_cmdline_targets();
916916
check_cmdline(cmdline, imaging);
917-
if (!jit_targets.empty())
918-
return;
919917
for (auto &arg: cmdline) {
920918
auto data = arg_target_data(arg, jit_targets.empty());
921919
jit_targets.push_back(std::move(data));
@@ -1084,16 +1082,14 @@ jl_image_t jl_init_processor_pkgimg(void *hdl)
10841082
{
10851083
if (jit_targets.empty())
10861084
jl_error("JIT targets not initialized");
1087-
if (jit_targets.size() > 1)
1088-
jl_error("Expected only one JIT target");
10891085
return parse_sysimg(hdl, pkgimg_init_cb);
10901086
}
10911087

10921088
std::pair<std::string,llvm::SmallVector<std::string, 0>> jl_get_llvm_target(bool imaging, uint32_t &flags)
10931089
{
10941090
ensure_jit_target(imaging);
1095-
flags = jit_targets[0].en.flags;
1096-
return get_llvm_target_vec(jit_targets[0]);
1091+
flags = jit_targets.front().en.flags;
1092+
return get_llvm_target_vec(jit_targets.front());
10971093
}
10981094

10991095
const std::pair<std::string,std::string> &jl_get_llvm_disasm_target(void)

0 commit comments

Comments
 (0)