smeenai added a comment. In D127812#4031101 <https://reviews.llvm.org/D127812#4031101>, @ilinpv wrote:
> In D127812#4030881 <https://reviews.llvm.org/D127812#4030881>, @smeenai wrote: > >> We're not actually using multi-versioning anywhere, but we're still paying >> the size cost for it as a result. Would we consider moving the newly added >> functions into their own file (or perhaps moving the outlined atomics >> functions into a different file), so that you can use outlined atomics >> without also paying the size cost of function multiversioning if you don't >> need it? > > Function multiversioning expects compiler-rt has __aarch64_cpu_features, it > will be broken if compiler-rt miss that ( > clang/lib/Driver/ToolChains/Clang.cpp:7231 ). I believe function > multiversioning will be used in Android as outline atomics already did. We can use `-mno-fmv` to avoid that dependency, right? We're interested in using that for our own code (where we don't make use of function multi-versioning), and want to prevent the compiler-rt support from being pulled in from the archive unnecessarily. It'd still be available for users who needed it. >> I also had a couple of general questions, since I think I'm missing >> something obvious: >> >> - How come we need both `init_cpu_features` and >> `init_cpu_features_resolver`? It seems like we're codegenning calls to the >> latter where needed, so I'm not sure what the former is adding on top. >> - From what I can see, we're codegenning calls to >> `init_cpu_features_resolver` without any arguments, but the actual >> definition of that function has two arguments. How does that work? > > hwcaps are ABI specified arguments of ifunc resolver. The constructor > init_cpu_features calls getauxval to initialize hwcaps and then pass them > explicitly to init_cpu_features_resolver. If resolver called before > constructor we get init_cpu_features_resolver hwcap and hwcap2 as arguments > from dynamic loader. Got it, thanks. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127812/new/ https://reviews.llvm.org/D127812 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits