Fixed
Status Update
Comments
ae...@google.com <ae...@google.com> #2
ni...@google.com <ni...@google.com> #3
Thanks for the heads-up and for providing a porting CL! I'll integrate it upstream so we can get it imported into Google3 by Copybara.
ap...@google.com <ap...@google.com> #4
Project: SwiftShader
Branch: master
commit ea5f37f391931f7f39402ae1b8d6d5984380794d
Author: Nicolas Capens <capn@google.com>
Date: Tue Apr 19 16:08:20 2022
Support the new LLVM pass manager
The legacy pass manager is deprecated in LLVM 13 [0], and will be
removed entirely by LLVM 16. We should use the new pass manager [1] when
building with a recent version of LLVM.
Since we still use LLVM 10 by default, we need two code paths for now.
Note that this change illustrates that LLVMReactor.cpp still has some
dependencies on the guts of LLVM, that belong in LLVMJIT.cpp instead.
This will be cleaned up in a subsequent change. This one is based
directly on cl/442613159 which was authored by aeubanks@.
[0]https://releases.llvm.org/13.0.0/docs/ReleaseNotes.html#changes-to-the-llvm-ir
[1]https://llvm.org/docs/NewPassManager.html
Bug: b/229474816
Bug: b/229437380
Bug: b/229629349
Change-Id: I6fa9e6783595e808e3c0bd46d54fc5407cfc7588
Reviewed-on:https://swiftshader-review.googlesource.com/c/SwiftShader/+/65148
Reviewed-by: Alexis Hétu <sugoi@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
M src/Reactor/LLVMReactor.cpp
M CMakeLists.txt
M src/Reactor/LLVMJIT.cpp
https://swiftshader-review.googlesource.com/65148
Branch: master
commit ea5f37f391931f7f39402ae1b8d6d5984380794d
Author: Nicolas Capens <capn@google.com>
Date: Tue Apr 19 16:08:20 2022
Support the new LLVM pass manager
The legacy pass manager is deprecated in LLVM 13 [0], and will be
removed entirely by LLVM 16. We should use the new pass manager [1] when
building with a recent version of LLVM.
Since we still use LLVM 10 by default, we need two code paths for now.
Note that this change illustrates that LLVMReactor.cpp still has some
dependencies on the guts of LLVM, that belong in LLVMJIT.cpp instead.
This will be cleaned up in a subsequent change. This one is based
directly on cl/442613159 which was authored by aeubanks@.
[0]
[1]
Bug:
Bug:
Bug:
Change-Id: I6fa9e6783595e808e3c0bd46d54fc5407cfc7588
Reviewed-on:
Reviewed-by: Alexis Hétu <sugoi@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
M src/Reactor/LLVMReactor.cpp
M CMakeLists.txt
M src/Reactor/LLVMJIT.cpp
Description
llvm::createMemorySanitizerLegacyPassPass
was added tosrc/Reactor/LLVMJIT.cpp
forLLVM's legacy PM for optimization pipeline had been considered legacy for many years and was officially deprecated in 13.0.0 and Clang dropped legacy PM support recently. I plan to remove instrumentation passes including all legacy sanitizers passes.
Please port the feature to the new pass manager, or if it takes a while, remove the functionality. There are upstream contributors trying to remove non-core passes as well.