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

Fix support of gc_preserve intrinsics in the allocation optimization pass #23783

Merged
merged 1 commit into from
Sep 22, 2017

Conversation

yuyichao
Copy link
Contributor

  • Be more conservative about identifying LLVM intrinsics.
    Only handle ones that has an associated intrinsic ID.
  • Handle gc_preserve intrinsic similar to operand bundle.

@yuyichao yuyichao added the compiler:codegen Generation of LLVM IR and native code label Sep 19, 2017
@vtjnash
Copy link
Member

vtjnash commented Sep 20, 2017

Travis failure seems real, and nearby, but unrelated? Doesn't seem to be reproducing for me locally.

julia: /home/travis/build/JuliaLang/julia/usr/include/llvm/Support/Casting.h:237: typename llvm::cast_retty<X, Y*>::ret_type llvm::cast(Y*) [with X = llvm::PointerType; Y = llvm::Type; typename llvm::cast_retty<X, Y*>::ret_type = llvm::PointerType*]: Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
at
Create at /home/travis/build/JuliaLang/julia/usr/include/llvm/IR/Instructions.h:1415 [inlined]
replaceIntrinsicUseWith at /home/travis/build/JuliaLang/julia/src/llvm-alloc-opt.cpp:491 [inlined]
operator() at /home/travis/build/JuliaLang/julia/src/llvm-alloc-opt.cpp:563 [inlined]
replaceUsesWith at /home/travis/build/JuliaLang/julia/src/llvm-alloc-opt.cpp:599
runOnFunction at /home/travis/build/JuliaLang/julia/src/llvm-alloc-opt.cpp:709

@yuyichao
Copy link
Contributor Author

Can't figure out why it can possibly fail (short of corruption elsewhere) and can't reproduce with a debug+assert build on 32bit linux either.... Restart CI to check...

…pass

* Be more conservative about identifying LLVM intrinsics.
  Only handle ones that has an associated intrinsic ID.
* Handle gc_preserve intrinsic similar to operand bundle.
@iblislin
Copy link
Member

iblislin commented Sep 22, 2017

seems the FreeBSD CI build failure differs from #23802, which often leads to timeout. The missing testsuit is file
https://julia.iblis.cnmc.tw/#/builders/1/builds/2499

@Keno
Copy link
Member

Keno commented Sep 22, 2017

I'm gonna merge this. We have a lot of transient failures on CI right now that we need to find. However, this seems like safe improvement and it's blocking some follow on work.

@Keno Keno merged commit 9036d30 into master Sep 22, 2017
@yuyichao yuyichao deleted the yyc/codegen/alloc branch September 22, 2017 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler:codegen Generation of LLVM IR and native code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants