Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop support for LLVM <= 3.9.1 #22401

Merged
merged 2 commits into from
Jun 17, 2017
Merged

Drop support for LLVM <= 3.9.1 #22401

merged 2 commits into from
Jun 17, 2017

Conversation

Keno
Copy link
Member

@Keno Keno commented Jun 17, 2017

As of the merge of #21888, we no longer support building on LLVM <= 3.9.1.
This is essentialyl the mechanical cleanup to rip out all code that
we had to support building on older LLVM versions. There may still be
some residual support left in places and of course some things can now
be cleaned up further, but this should get us started.

Keno added 2 commits June 16, 2017 20:36
As of the merge of #21888, we no longer support building on LLVM <= 3.9.1.
This is essentialyl the mechanical cleanup to rip out all code that
we had to support building on older LLVM versions. There may still be
some residual support left in places and of course some things can now
be cleaned up further, but this should get us started.
@@ -1136,20 +1101,14 @@ static jl_cgval_t emit_llvmcall(jl_value_t **args, size_t nargs, jl_codectx_t *c
it != argtypes.end(); ++it, ++i)
assert(*it == f->getFunctionType()->getParamType(i));

#ifdef USE_MCJIT
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we assuming MCJIT now rather than ORC?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

USE_MCJIT is always defined for USE_ORCJIT.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the default use to be the very old (3.3) JIT. Now MCJIT is the default.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, thanks for the explanation. Didn't know.

@@ -583,8 +583,7 @@ static int NoteSafepoint(State &S, BBState &BBS, CallInst *CI) {
}

void LateLowerGCFrame::NoteUse(State &S, BBState &BBS, Value *V, BitVector &Uses) {
// Short circuit to have to avoid dealing specially with vectors of
// constants, etc.
// Short circuit to avoid having to dealing with vectors of constants, etc.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

having to deal with

@tkelman
Copy link
Contributor

tkelman commented Jun 17, 2017

not yet addressed:
#21888 (comment)
#21888 (comment)

@Keno
Copy link
Member Author

Keno commented Jun 17, 2017

I typo'd here. This drops support for < 3.9.1 or <= 3.9.0

@tkelman
Copy link
Contributor

tkelman commented Jun 17, 2017

also delete old patches and build system code for these old versions?

@@ -4842,16 +4611,12 @@ static Function *gen_cfun_wrapper(jl_function_t *ff, jl_value_t *jlrettype, jl_t
}
(void)at;
}
Value *argn = builder.CreateConstInBoundsGEP1_32(LLVM37_param(NULL) myargs, i);
Value *argn = builder.CreateConstInBoundsGEP1_32(NULL, myargs, i);
Copy link
Sponsor Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

T_prjlvalue

@@ -4710,7 +4487,7 @@ static Function *gen_cfun_wrapper(jl_function_t *ff, jl_value_t *jlrettype, jl_t
// for jlcall, we need to pass the function object even if it is a ghost.
// here we reconstruct the function instance from its type (first elt of argt)
Value *theF = literal_pointer_val((jl_value_t*)ff);
GetElementPtrInst *slot = GetElementPtrInst::Create(LLVM37_param(NULL) myargs,
GetElementPtrInst *slot = GetElementPtrInst::Create(NULL, myargs,
Copy link
Sponsor Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

T_prjlvalue

@@ -4725,22 +4502,14 @@ static Function *gen_cfun_wrapper(jl_function_t *ff, jl_value_t *jlrettype, jl_t
builder.CreateCondBr(age_ok, b_jlcall, b_generic);
builder.SetInsertPoint(b_jlcall);
Value *nargs_v = ConstantInt::get(T_int32, nargs);
Value *myargs1 = builder.CreateConstInBoundsGEP1_32(LLVM37_param(NULL) myargs, 1);
#if JL_LLVM_VERSION >= 30700
Value *myargs1 = builder.CreateConstInBoundsGEP1_32(NULL, myargs, 1);
Copy link
Sponsor Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

T_prjlvalue

@@ -4628,7 +4407,7 @@ static Function *gen_cfun_wrapper(jl_function_t *ff, jl_value_t *jlrettype, jl_t
// figure out how to repack this type
if (!specsig) {
Value *arg = boxed(inputarg, &ctx, false); // don't want a gcroot, since it's about to be put into the jlcall frame anyways
GetElementPtrInst *slot = GetElementPtrInst::Create(LLVM37_param(NULL) myargs,
GetElementPtrInst *slot = GetElementPtrInst::Create(NULL, myargs,
Copy link
Sponsor Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

T_prjlvalue

@Keno
Copy link
Member Author

Keno commented Jun 17, 2017

Since this touches so much code, I'll go ahead and merge this and do follow-up cleanups in a separate PR to avoid having to rebase.

@Keno Keno merged commit 1cc635f into master Jun 17, 2017
@yuyichao yuyichao deleted the kf/dropoldllvm branch June 17, 2017 22:31
quinnj pushed a commit that referenced this pull request Jun 20, 2017
As of the merge of #21888, we no longer support building on LLVM <= 3.9.1.
This is essentially the mechanical cleanup to rip out all code that
we had to support building on older LLVM versions. There may still be
some residual support left in places and of course some things can now
be cleaned up further, but this should get us started.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants