LLVMReactor: Finalize the debug info earlier
Before finalization, the IR is not verifiable.
This should also be finalized before optimization passes.
Bug: b/131914569
Change-Id: Ibc5b2bf85369412148565daaf81779dac30d6e8a
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/30452
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
diff --git a/src/Reactor/LLVMReactor.cpp b/src/Reactor/LLVMReactor.cpp
index bb24c2a..ad6abb1 100644
--- a/src/Reactor/LLVMReactor.cpp
+++ b/src/Reactor/LLVMReactor.cpp
@@ -963,6 +963,13 @@
}
}
+#ifdef ENABLE_RR_DEBUG_INFO
+ if (debugInfo != nullptr)
+ {
+ debugInfo->Finalize();
+ }
+#endif // ENABLE_RR_DEBUG_INFO
+
if(false)
{
std::error_code error;
@@ -982,13 +989,6 @@
::module->print(file, 0);
}
-#ifdef ENABLE_RR_DEBUG_INFO
- if (debugInfo != nullptr)
- {
- debugInfo->Finalize();
- }
-#endif // ENABLE_RR_DEBUG_INFO
-
LLVMRoutine *routine = ::reactorJIT->acquireRoutine(::function);
return routine;