<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Sat, Jun 24, 2017 at 1:10 AM Tobias Grosser via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: grosser<br>
Date: Sat Jun 24 03:09:33 2017<br>
New Revision: 306208<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=306208&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=306208&view=rev</a><br>
Log:<br>
Ensure backends available in 'opt' are also available in 'bugpoint'<br>
<br>
This patch links LLVM back-ends into bugpoint the same way they are already<br>
available in 'opt' and 'clang'. This resolves an inconsistency that allowed the<br>
use of LLVM backends in loadable modules that run in 'opt', but that would<br>
prevent the debugging of these modules with bugpoint due to unavailable /<br>
unresolved symbols.<br>
<br>
For e.g. In D31859, Polly requires the NVPTX back-end.<br>
<br>
Reviewers: hfinkel, bogner, chandlerc, grosser, Meinersbur<br>
<br>
Subscribers: bollu, mgorny, grosser, Meinersbur<br>
<br>
Tags: #polly<br>
<br>
Contributed by: Singapuram Sanjay<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D32003" rel="noreferrer" target="_blank">https://reviews.llvm.org/D32003</a><br>
<br>
Modified:<br>
    llvm/trunk/tools/bugpoint/CMakeLists.txt<br>
    llvm/trunk/tools/bugpoint/LLVMBuild.txt<br>
    llvm/trunk/tools/bugpoint/bugpoint.cpp<br>
<br>
Modified: llvm/trunk/tools/bugpoint/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/CMakeLists.txt?rev=306208&r1=306207&r2=306208&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/CMakeLists.txt?rev=306208&r1=306207&r2=306208&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/bugpoint/CMakeLists.txt (original)<br>
+++ llvm/trunk/tools/bugpoint/CMakeLists.txt Sat Jun 24 03:09:33 2017<br>
@@ -1,4 +1,5 @@<br>
 set(LLVM_LINK_COMPONENTS<br>
+  ${LLVM_TARGETS_TO_BUILD}<br>
   Analysis<br>
   BitWriter<br>
   CodeGen<br>
<br>
Modified: llvm/trunk/tools/bugpoint/LLVMBuild.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/LLVMBuild.txt?rev=306208&r1=306207&r2=306208&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/LLVMBuild.txt?rev=306208&r1=306207&r2=306208&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/bugpoint/LLVMBuild.txt (original)<br>
+++ llvm/trunk/tools/bugpoint/LLVMBuild.txt Sat Jun 24 03:09:33 2017<br>
@@ -30,3 +30,4 @@ required_libraries =<br>
  Linker<br>
  ObjCARC<br>
  Scalar<br>
+ all-targets<br>
<br>
Modified: llvm/trunk/tools/bugpoint/bugpoint.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/bugpoint.cpp?rev=306208&r1=306207&r2=306208&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/bugpoint.cpp?rev=306208&r1=306207&r2=306208&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/bugpoint/bugpoint.cpp (original)<br>
+++ llvm/trunk/tools/bugpoint/bugpoint.cpp Sat Jun 24 03:09:33 2017<br>
@@ -26,6 +26,7 @@<br>
 #include "llvm/Support/PrettyStackTrace.h"<br>
 #include "llvm/Support/Process.h"<br>
 #include "llvm/Support/Signals.h"<br>
+#include "llvm/Support/TargetSelect.h"<br>
 #include "llvm/Support/Valgrind.h"<br>
 #include "llvm/Transforms/IPO/AlwaysInliner.h"<br>
 #include "llvm/Transforms/IPO/PassManagerBuilder.h"<br>
@@ -138,6 +139,14 @@ int main(int argc, char **argv) {<br>
   polly::initializePollyPasses(Registry);<br>
 #endif<br>
<br>
+  if (std::getenv("bar") == (char*) -1) {<br>
+    InitializeAllTargets();<br>
+    InitializeAllTargetMCs();<br>
+    InitializeAllAsmPrinters();<br>
+    InitializeAllAsmParsers();<br>
+    InitializeAllDisassemblers();<br></blockquote><div><br></div><div>Why would it need *dis*assemblers? Doesn't really make sense. It also doesn't match the initialization in the 'opt' tool...</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+  }<br>
+<br>
   cl::ParseCommandLineOptions(argc, argv,<br>
                               "LLVM automatic testcase reducer. See\nhttp://"<br>
                               "<a href="http://llvm.org/cmds/bugpoint.html" rel="noreferrer" target="_blank">llvm.org/cmds/bugpoint.html</a>"<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div>