[PATCH] D94355: [Passes] Add relative lookup table converter pass

Nathan Chancellor via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 26 11:59:36 PDT 2021


nathanchance added a comment.

This patch breaks a two stage build with LTO:

  $ git bisect log
  # bad: [f0bc2782f281ca05221d2f1735bbaff6c4b81ebb] [TTI] NFC: Remove unused 'OptSize' parameter from shouldMaximizeVectorBandwidth
  # good: [9829f5e6b1bca9b61efc629770d28bb9014dec45] [CVP] @llvm.[us]{min,max}() intrinsics handling
  git bisect start 'f0bc2782f281ca05221d2f1735bbaff6c4b81ebb' '9829f5e6b1bca9b61efc629770d28bb9014dec45'
  # bad: [1af35e77f4b8c3314dc20a10d579b52f22c75a00] [TTI] NFC: Change getVectorInstrCost to return InstructionCost
  git bisect bad 1af35e77f4b8c3314dc20a10d579b52f22c75a00
  # bad: [45f8946a759a780e6131256d6d206977b9c128ee] [CodeView] Fix the ARM64 CPUType enum
  git bisect bad 45f8946a759a780e6131256d6d206977b9c128ee
  # good: [0b439e4cc9dbb5c226121383b84d4f48ab669c55] [libc++] Split std::allocator out of <memory>
  git bisect good 0b439e4cc9dbb5c226121383b84d4f48ab669c55
  # good: [2eb98d89ac866e32cb56727174e4d1c1413479c8] [mlir][spirv] Allow bitwidth emulation on runtime arrays
  git bisect good 2eb98d89ac866e32cb56727174e4d1c1413479c8
  # bad: [80aa9b0f7b3ebe53220a398b2939610d8a49e24b] [PowerPC] stop reverse mem op generation for some cases.
  git bisect bad 80aa9b0f7b3ebe53220a398b2939610d8a49e24b
  # good: [a8ab1f98d22cf15f39dd1c2ce77675e628fceb31] [Evaluator] Look through invariant.group intrinsics
  git bisect good a8ab1f98d22cf15f39dd1c2ce77675e628fceb31
  # bad: [30f591c3869f3bbe6eca1249dcef1b8337312de6] [lldb] Disable TestLaunchProcessPosixSpawn.py with reproducers
  git bisect bad 30f591c3869f3bbe6eca1249dcef1b8337312de6
  # good: [6c4f2508e4278ac789230cb05f2bb56a8a7297dc] Revert "[lldb] [gdb-remote client] Refactor handling qSupported"
  git bisect good 6c4f2508e4278ac789230cb05f2bb56a8a7297dc
  # bad: [e96df3e531f506eea75da0f13d0f8aa9a267f975] [Passes] Add relative lookup table converter pass
  git bisect bad e96df3e531f506eea75da0f13d0f8aa9a267f975
  # good: [1310a19af06262122a6e9e4f6fbbe9c39ebad76e] [mlir] Use MCJIT to fix integration tests
  git bisect good 1310a19af06262122a6e9e4f6fbbe9c39ebad76e
  # first bad commit: [e96df3e531f506eea75da0f13d0f8aa9a267f975] [Passes] Add relative lookup table converter pass

My reproduction steps, apologies if they are not reduced enough:

  $ mkdir -p build/stage{1,2}
  
  $ cmake \
     -B build/stage1 \
     -G Ninja \
     -DCMAKE_C_COMPILER=$(command -v clang) \
     -DCMAKE_CXX_COMPILER=$(command -v clang++) \
     -DLLVM_USE_LINKER=$(command -v ld.lld) \
     -DLLVM_ENABLE_PROJECTS="clang;lld" \
     -DLLVM_TARGETS_TO_BUILD=host \
     -DLLVM_CCACHE_BUILD=ON \
     -DCMAKE_BUILD_TYPE=Release \
     llvm
  ...
  
  $ ninja -C build/stage1 all
  ...
  
  $ cmake \
     -B build/stage2 \
     -G Ninja \
     -DCMAKE_AR=$PWD/build/stage1/bin/llvm-ar \
     -DCMAKE_C_COMPILER=$PWD/build/stage1/bin/clang \
     -DCLANG_TABLEGEN=$PWD/build/stage1/bin/clang-tblgen \
     -DCMAKE_CXX_COMPILER=$PWD/build/stage1/bin/clang++ \
     -DLLVM_USE_LINKER=$PWD/build/stage1/bin/ld.lld \
     -DLLVM_TABLEGEN=$PWD/build/stage1/bin/llvm-tblgen \
     -DCMAKE_RANLIB=$PWD/build/stage1/bin/llvm-ranlib \
     -DLLVM_ENABLE_PROJECTS=clang \
     -DLLVM_TARGETS_TO_BUILD=host \
     -DCMAKE_BUILD_TYPE=Release \
     -DLLVM_ENABLE_LTO=Full \
     llvm
  
  $ ninja -C build/stage2 lib/libclang-cpp.so.13git
  ...
  [2296/2296] Linking CXX shared library lib/libclang-cpp.so.13git
  FAILED: lib/libclang-cpp.so.13git
  ...
  ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol llvm::detail::unit<std::ratio<3600l, 1l> >::value; recompile with -fPIC
  >>> defined in lto.tmp
  >>> referenced by ld-temp.o
  >>>               lto.tmp:(.data.rel.ro..Lreltable._ZN5clang10TargetInfo21getTypeFormatModifierENS_23TransferrableTargetInfo7IntTypeE+0x8)
  
  ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol llvm::detail::unit<std::ratio<3600l, 1l> >::value; recompile with -fPIC
  >>> defined in lto.tmp
  >>> referenced by ld-temp.o
  >>>               lto.tmp:(.data.rel.ro..Lreltable._ZN5clang10TargetInfo21getTypeFormatModifierENS_23TransferrableTargetInfo7IntTypeE+0xC)
  
  ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol llvm::detail::unit<std::ratio<3600l, 1l> >::value; recompile with -fPIC
  >>> defined in lto.tmp
  >>> referenced by ld-temp.o
  >>>               lto.tmp:(.data.rel.ro..Lreltable._ZNK5clang21analyze_format_string14LengthModifier8toStringEv+0x8)
  
  ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol llvm::detail::unit<std::ratio<60l, 1l> >::value; recompile with -fPIC
  >>> defined in lto.tmp
  >>> referenced by ld-temp.o
  >>>               lto.tmp:(.data.rel.ro..Lreltable._ZNK5clang21analyze_format_string14LengthModifier8toStringEv+0x3C)
  
  ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol llvm::detail::unit<std::ratio<3600l, 1l> >::value; recompile with -fPIC
  >>> defined in lto.tmp
  >>> referenced by ld-temp.o
  >>>               lto.tmp:(.data.rel.ro..Lreltable._ZN4llvm15MCSymbolRefExpr18getVariantKindNameENS0_11VariantKindE+0xC0)
  clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
  ninja: build stopped: subcommand failed.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D94355/new/

https://reviews.llvm.org/D94355



More information about the llvm-commits mailing list