Meinersbur requested changes to this revision.
Meinersbur added a comment.
This revision now requires changes to proceed.

Thank you for adding the Bye pass. It is really useful! Is there a specific 
reason to not modify the Hello pass?

---

If I enable both passes statically (`LLVM_BYE_LINK_INTO_TOOLS=ON` and 
`LLVM_POLLY_LINK_INTO_TOOLS=ON`), the following regression tests fail (`ninja 
check-llvm`):

  Failing Tests (8):
      LLVM :: DebugInfo/debugify-each.ll
      LLVM :: Other/new-pm-defaults.ll
      LLVM :: Other/new-pm-thinlto-defaults.ll
      LLVM :: Other/opt-O0-pipeline.ll
      LLVM :: Other/opt-O2-pipeline.ll
      LLVM :: Other/opt-O3-pipeline.ll
      LLVM :: Other/opt-Os-pipeline.ll
      LLVM :: Transforms/LoopVectorize/X86/reg-usage.ll

The pass output such as

  Bye: foo
  Bye: goo
  Bye: bar
  Bye: hoo

seem to interfere with the `CHECK` lines in the test cases.

---

Using the configuration `LLVM_LINK_LLVM_DYLIB=1` and 
`LLVM_POLLY_LINK_INTO_TOOLS=ON`, the following tests fail:

  Failing Tests (10):
      LLVM :: BugPoint/compile-custom.ll
      LLVM :: BugPoint/crash-narrowfunctiontest.ll
      LLVM :: BugPoint/func-attrs-keyval.ll
      LLVM :: BugPoint/func-attrs.ll
      LLVM :: BugPoint/invalid-debuginfo.ll
      LLVM :: BugPoint/metadata.ll
      LLVM :: BugPoint/named-md.ll
      LLVM :: BugPoint/remove_arguments_test.ll
      LLVM :: BugPoint/replace-funcs-with-null.ll
      LLVM :: BugPoint/unsymbolized.ll

The error output is:

  : CommandLine Error: Option 'disable-basicaa' registered more than once!
  LLVM ERROR: inconsistency in registered CommandLine options"                  
                        



---

As expected, on Windows, I get the following linker error with both 
`LLVM_BYE_LINK_INTO_TOOLS=ON` and `LLVM_POLLY_LINK_INTO_TOOLS=ON`:

  [1/1] Linking CXX executable bin\clang.exe
  FAILED: bin/clang.exe
  cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_exe 
--intdir=tools\clang\tools\driver\CMakeFiles\clang.dir 
--rc=C:\PROGRA~2\WI3CF2~1\10\bin\100177~1.0\x64\rc.exe 
--mt=C:\PROGRA~2\WI3CF2~1\10\bin\100177~1.0\x64\mt.exe --manifests  -- 
C:\PROGRA~2\MICROS~1\2017\COMMUN~1\VC\Tools\MSVC\1416~1.270\bin\Hostx64\x64\link.exe
 /nologo @CMakeFiles\clang.rsp  /out:bin\clang.exe /implib:lib\clang.lib 
/pdb:bin\clang.pdb /version:0.0  /machine:x64 /STACK:10000000 /INCREMENTAL:NO 
/subsystem:console  && cmd.exe /C "cd /D 
C:\Users\meinersbur\build\llvm\release\tools\clang\tools\driver && "C:\Program 
Files\CMake\bin\cmake.exe" -E copy 
C:/Users/meinersbur/build/llvm/release/bin/clang.exe 
C:/Users/meinersbur/build/llvm/release/./bin/clang++.exe && cd /D 
C:\Users\meinersbur\build\llvm\release\tools\clang\tools\driver && "C:\Program 
Files\CMake\bin\cmake.exe" -E copy 
C:/Users/meinersbur/build/llvm/release/bin/clang.exe 
C:/Users/meinersbur/build/llvm/release/./bin/clang-cl.exe && cd /D 
C:\Users\meinersbur\build\llvm\release\tools\clang\tools\driver && "C:\Program 
Files\CMake\bin\cmake.exe" -E copy 
C:/Users/meinersbur/build/llvm/release/bin/clang.exe 
C:/Users/meinersbur/build/llvm/release/./bin/clang-cpp.exe""
  LINK: command 
"C:\PROGRA~2\MICROS~1\2017\COMMUN~1\VC\Tools\MSVC\1416~1.270\bin\Hostx64\x64\link.exe
 /nologo @CMakeFiles\clang.rsp /out:bin\clang.exe /implib:lib\clang.lib 
/pdb:bin\clang.pdb /version:0.0 /machine:x64 /STACK:10000000 /INCREMENTAL:NO 
/subsystem:console /MANIFEST /MANIFESTFILE:bin\clang.exe.manifest" failed (exit 
code 1169) with the following output:
  Bye.lib(Bye.cpp.obj) : error LNK2005: llvmGetPassPluginInfo already defined 
in Polly.lib(RegisterPasses.cpp.obj)
  bin\clang.exe : fatal error LNK1169: one or more multiply defined symbols 
found
  ninja: build stopped: subcommand failed.



================
Comment at: llvm/cmake/modules/AddLLVM.cmake:856-858
+      #set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY SOURCES 
$<TARGET_OBJECTS:obj.${llvm_extension}>)
+      #set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY 
LINK_LIBRARIES $<TARGET_PROPERTY:${llvm_extension},LINK_LIBRARIES>)
+      #set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY 
INTERFACE_LINK_LIBRARIES 
$<TARGET_PROPERTY:${llvm_extension},INTERFACE_LINK_LIBRARIES>)
----------------
[nit] Please remove commented code entirely


================
Comment at: llvm/examples/Bye/Bye.cpp:14
+bool runBye(Function &F) {
+  errs() << "Bye: ";
+  errs().write_escaped(F.getName()) << '\n';
----------------
Could you add a test that verifies that the `Bye` test has been loaded and is 
working?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D61446



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to