Closed makortel closed 10 months ago
@bzEq, thank you so much for this!
BTW, does https://github.com/root-project/llvm-project accept any PR?
I suspect it should be against the llvm16 branch but @hahnjo could probably give a better advice.
BTW, does https://github.com/root-project/llvm-project accept any PR?
I suspect it should be against the llvm16 branch but @hahnjo could probably give a better advice.
Yes, eventually the backports need to make it into our fork of the monorepo, but:
UseJITLink
function in interpreter/cling/lib/Interpreter/IncrementalJIT.cpp
in order to enable JITLink for PPC64 for Cling / ROOT by default (assuming it will be a lot harder to set the environment variable CLING_JITLINK
for all executions).So once LLVM 16 is in
@hahnjo, given my experience in this that can take (quite) a while. I'd like to move that independently on when llvm16 will be in especially because the llvm16 branch looks good enough from cmssw perspective.
So once LLVM 16 is in
@hahnjo, given my experience in this that can take (quite) a while. I'd like to move that independently on when llvm16 will be in especially because the llvm16 branch looks good enough from cmssw perspective.
Sure, if required testing can already start now. But please do it in a separate ROOT PR, not https://github.com/root-project/root/pull/13273
I'm looking for these commits and some conflicts have to be resolved, I'll post PR once I have done it. Upd: Basically, we have to backport
1dae4dd0d80f [JITLink][PowerPC] Fix incorrect assertion of addend for R_PPC64_REL24 94239712eb17 Fix typos in comments of ExecutionEngine (NFC) b6e2eac2930e [JITLink][PowerPC] Add relocations included in rtdyld but missing from jitlink d6791fb77402 [JITLink][PowerPC] Fix relocations in stubs for ppc64 big-endian target 9c38a178d3a6 [JITLink][PowerPC] Add basic TLS support for ppc64 5cb2a78ac2fe [Orc][PowerPC] Enable ELFNixPlatform support for ppc64le ca6d86f6bf12 [JITLink][PowerPC] Support R_PPC64_PCREL34 11a02de7829a [JITLink][PowerPC] Change method to check if a symbol is external to current object 7bf9c5bbb7d1 [JITLink] ppc64.h - fix MSVC "not all control paths return a value" warning. NFC. 995f199f0a76 [JITLink][PowerPC] Correct handling of R_PPC64_REL24_NOTOC 74f2a76904d7 [JITLink] Rename TableManager::appendEntry, add comment. 79786c4d23f1 [JITLink][PowerPC] Fixed unused variable warning. NFC. 61358d4fbeb3 [JITLink][PowerPC] Add TOC and relocations for ppc64 52b88457baf8 [JITLink] Use SubtargetFeatures to store features in LinkGraph 846bde483d63 Silence switch statement contains 'default' but no 'case' labels warning; NFC 8313507a7c3f [JITLink][ELF][ppc64] Add skeleton ppc64 support and ELF/ppc64 JITLink backend.
BTW, does https://github.com/root-project/llvm-project accept any PR?
@bzEq, I fail to allocate time to backport these patches and it would be awesome if we had a PR and ask cmssw to test it before our demonstration meeting.
Here is what generally we need:
src/interpreter/llvm/
. This is basically a copy of llvm16Sorry for the delay, I was on vacation for the past week. I've backported above patches ontop https://github.com/hahnjo/root/tree/llvm16 which lies in https://github.com/bzEq/root/tree/backport-jitlink-ppc64. It builds on my x86 workstation, but not tested on ppc64 workstation yet. I'll do it tomorrow, when I'm back to office.
BTW, is there any testsuite I can run on ppc64 workstation?
BTW, is there any testsuite I can run on ppc64 workstation?
You can compile ROOT with -Droottest=On
and then you can do ctest
.
I want to find out regression comparing to rtdyld, but I find rtdyld and jitlink are encountered with same failures. I run roottest with
ctest -R cling -j120
Failures are
The following tests FAILED:
1 - roottest-cling-array-runarray1 (Failed)
2 - roottest-cling-autoauto-assertROOT8445-auto (Failed)
3 - roottest-cling-autoauto-ROOT8442 (Failed)
5 - roottest-cling-bytecode-runcomplex (Failed)
6 - roottest-cling-bytecode-runhenry (Failed)
7 - roottest-cling-const-run1 (Failed)
8 - roottest-cling-const-run2 (Failed)
10 - roottest-cling-controls-runLoopbreak (Failed)
11 - roottest-cling-dict-rundefaultargs-interpreted (Failed)
12 - roottest-cling-dict-rundefaultargs-compiled (Failed)
13 - roottest-cling-dict-runtemplateAutodict (Failed)
14 - roottest-cling-dict-runoperators (Failed)
15 - roottest-cling-dict-runalgebra (Failed)
16 - roottest-cling-dict-exectemplatetemplateTest (Failed)
17 - roottest-cling-dict-assertTmpltDefArgCtor (Failed)
19 - roottest-cling-dict-ROOT-7879-skipLinkDefDict (Failed)
22 - roottest-cling-dict-ROOT-8096-load (Failed)
24 - roottest-cling-dict-ROOT-8739-execNextTest (Failed)
29 - roottest-cling-dict-binary-clingDictInBinary (Failed)
43 - roottest-cling-function-runoverloadResolution (Failed)
46 - roottest-cling-function-runlongArgTest (Failed)
47 - roottest-cling-function-runstaticfunc (Failed)
48 - roottest-cling-function-trybody (Failed)
52 - roottest-cling-functionTemplate-cintrun (Failed)
54 - roottest-cling-functionTemplate-runreferenceuse (Failed)
55 - roottest-cling-functionTemplate-testcint (Failed)
56 - roottest-cling-offset-interpreted (Failed)
58 - roottest-cling-offset-compiled (Failed)
60 - roottest-cling-operator-runEqualTest (Failed)
61 - roottest-cling-operator-ParanTest (Failed)
65 - roottest-cling-other-runfileClose (Failed)
67 - roottest-cling-other-runsavannah54662 (Failed)
68 - roottest-cling-other-runsnprintfselect (Failed)
69 - roottest-cling-other-staticConstTest (Failed)
72 - roottest-cling-other-assertBaseMembers (Failed)
73 - roottest-cling-other-assertRedirect (Failed)
74 - roottest-cling-other-execValuePrint (Failed)
75 - roottest-cling-other-checkMissingSymbolExitCode (Failed)
76 - roottest-cling-other-assertDirWithParen (Failed)
77 - roottest-cling-parsing-runlessThan (Failed)
81 - roottest-cling-parsing-runReadbool (Failed)
82 - roottest-cling-parsing-ptrconst (Failed)
84 - roottest-cling-parsing-runTTestClass (Failed)
85 - roottest-cling-parsing-assertManipulators (Failed)
86 - roottest-cling-parsing-assertSpaces (Failed)
87 - roottest-cling-parsing-execROOT6625 (Failed)
88 - roottest-cling-parsing-assertUnnamedMacro (Failed)
89 - roottest-cling-parsing-assertROOT8773 (Failed)
90 - roottest-cling-preproc-runCPPComments (Failed)
92 - roottest-cling-preproc-AutoParsePragma (Failed)
93 - roottest-cling-printf-star (Failed)
94 - roottest-cling-reflex-make (Failed)
95 - roottest-cling-reload-ROOT-7364 (Failed)
97 - roottest-cling-return-barna (Failed)
99 - roottest-cling-specialobj-assertGPad (Failed)
102 - roottest-cling-specialobj-stlProxies (Failed)
104 - roottest-cling-specialobj-unhappy (Failed)
105 - roottest-cling-stack-tbox (Failed)
109 - roottest-cling-staticinit-ROOT-7775 (Failed)
110 - roottest-cling-staticinit-ROOT-10426-ROOT-10426 (Failed)
113 - roottest-cling-stl-default-VectorSort (Failed)
118 - roottest-cling-stl-map-badOperator (Failed)
120 - roottest-cling-stl-map-stringMap (Failed)
122 - roottest-cling-stl-map-badstringMap (Failed)
125 - roottest-cling-stl-string-stringPassingText (Failed)
130 - roottest-cling-template-longlong (Failed)
132 - roottest-cling-template-templateSingleton (Failed)
138 - roottest-cling-template-runusingtemplate (Failed)
140 - roottest-cling-template-runtemplatefriend (Failed)
143 - roottest-cling-template-defaultTemplateParam (Failed)
144 - roottest-cling-template-separateDict-make (Failed)
145 - roottest-cling-template-separateDictNamespace-make (Failed)
147 - roottest-cling-templateMembers-runduplicate (Failed)
149 - roottest-cling-templateMembers-runoperatorEqual (Failed)
151 - roottest-cling-templateMembers-runConstructor (Failed)
158 - roottest-cling-typedef-testclass (Failed)
159 - roottest-cling-typedef-assertTypedefIter (Failed)
160 - roottest-cling-typedef-assertFuncArray (Failed)
163 - roottest-cling-typedef_global-scopeTest (Failed)
164 - roottest-cling-typedef_global-scopeTest2 (Failed)
498 - roottest-root-meta-clingTErrorDiagnostics (Failed)
662 - roottest-root-meta-fwdDecls-clingFwdDeclExample (Failed)
791 - roottest-root-meta-rootcling-selectUnion (Failed)
@bzEq, can you post the results with -output-on-failure? Some failures might be unrelated to jitlink but to other things such as the highly parallel invocation ( I don’t think we test beyond j12 ).
I've tried --output-on-failures -VV
and find failures are not related to jitlink. Most are kinda like
94: +Error in <UnknownClass::ReadGitInfo()>: Cannot determine git info: etc/gitinfo.txt not found!
94: +Disabling gnu++: clang has no __float128 support on this target!
94: +Error in <UnknownClass::ReadGitInfo()>: Cannot determine git info: etc/gitinfo.txt not found!
has be fixed ( https://github.com/root-project/root/pull/13794 ). You can either re-build root using latest root master or just create locally etc/gitinfo.txt
in your root install directory
heads/master
tags/v6-29-01
Oct 10 2023, 10:39:39
@bzEq, pretty awesome! We are probably ready to open a PR against the ROOT repo. Then @smuzaffar can run the full integration tests.
type root
@smuzaffar I understood from https://github.com/root-project/root/pull/13850#issuecomment-1867519153 that this problem got fixed by moving to ROOT 6.30. Should we close this issue then?
Yes @makortel , we can close this.
+core
This issue is fully signed and ready to be closed.
Many workflows failed in CMSSW_13_2_X_2023-05-11-2300 el8_ppc64le_gcc11 with
(from https://cmssdt.cern.ch/SDT/cgi-bin/logreader/el8_ppc64le_gcc11/CMSSW_13_2_X_2023-05-11-2300/pyRelValMatrixLogs/run/136.7801_RunHLTPhy2017B_AOD/step2_RunHLTPhy2017B_AOD.log#/)