Bug#842956: llvm-3.9-dev: Please backport 279980 since rustc 1.12.1 needs it

Ximin Luo infinity0 at debian.org
Thu Nov 3 17:04:00 UTC 2016

Ximin Luo:
> [..]
> rust.git$ git format-patch 4105790 # 4105790 and earlier are already applied to our LLVM
> 0001-Add-some-Rust-allocation-functions-to-TargetLibraryI.patch
> 0002-Add-support-for-i1-compare-operations-to-X86-FastISe.patch
> 0003-Disable-the-PassInfo-cache-assertions-to-make-the-ca.patch
> 0004-Fix-cross-compiling-to-FreeBSD.patch
> 0005-Don-t-compile-usage-of-std-thread.patch
> 0006-Add-accessors-for-MCSubtargetInfo-CPU-and-Feature-ta.patch
> 0007-InstCombine-Infer-inbounds-on-geps-of-allocas.patch
> 0008-InstSimplify-Try-hard-to-simplify-pointer-comparison.patch
> 0009-InstSimplify-Fold-gep-gep-V-C-sub-0-V-to-C.patch
> 0010-InstSimplify-Fold-gep-gep-V-C-xor-V-1-to-C-1.patch
> 0011-SimplifyCFG-Hoisting-invalidates-metadata.patch
> 0012-Run-GVN-again-after-InstCombine.patch
> 0013-Backport-rL281650.patch
> 0014-Import-of-fastcomp-commit-4105790f1549808c1f1daa5250.patch
> 0015-SimplifyCFG-Correctly-test-for-unconditional-branche.patch
> 0016-Propagate-DBG_VALUE-entries-when-there-are-unvisited.patch
> 0017-Teach-LiveDebugValues-about-lexical-scopes.patch
> In 1:3.9-4 you applied 0013, and this bug report is me asking you to apply
> 0011. However if these two don't make our rustc work, then the heavy-handed
> approach would be to apply all of the above patches. I've tested that these
> apply cleanly to our LLVM 1:3.9-4, but not yet built the thing.

TL;DR: we should probably apply 14-17. None of these are critical, but sound fairly important or helpful, and might save us from getting weird errors elsewhere.

The rest are "nice to have" but not essential if you want to keep the package as close to upstream as possible.

<eddyb> infinity0: 1, 2 are old optimizations never upstreamed
<eddyb> infinity0: 8-10 are optimization backports, with my 12 being the hack to squeeze out more optimizations [..]
<eddyb> *7-10
<eddyb> 11 and 13 are correctness fixes as you've discovered
<eddyb> 14 is emscripten compat helpers AFAICT
<eddyb> 15 looks like a correctness fix - might only affect windows though, IIRC
<eddyb> 16 & 17 are debuginfo fixes
<eddyb> I don't know what 6 is for - maybe optional rustc --print feature?
<eddyb> you don't need 4 & 5
<eddyb> (or want, for that matter :P)
<eddyb> infinity0: only 1 is rust-specific AFAICT, everything else should be general-purpose
<infinity0> commit 1e3c7023b91c2e0b9d6643f05fd75c86c0507279 [patch 0003] seems like an optimisation [..]

I later confirmed that #6 is not necessary: https://github.com/rust-lang/llvm/pull/45#issuecomment-258202774

Let me know what you decide; I can prepare a debdiff of the whole series.


GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE

More information about the Pkg-llvm-team mailing list