User Details
- User Since
- Jul 4 2018, 10:36 AM (245 w, 5 d)
Fri, Mar 3
Thu, Feb 23
Ping.
Ping.
Tue, Feb 21
Feb 17 2023
LGTM.
Feb 15 2023
Feb 14 2023
Hi there @vitalybuka @1c3t3a! I am now realizing that we are experiencing some intermittent failures with the GetRssFromBuffer test case (sometimes it fails, and sometimes it passes) on PPC.
Feb 13 2023
Ping.
Ping.
Feb 7 2023
Feb 6 2023
Address review comment to update the REQUIRES line instead.
Ping.
Ping.
Feb 5 2023
Jan 30 2023
This patch appears to be causing an issue on the clang-ppc64le-linux-multistage bot (https://lab.llvm.org/buildbot/#/builders/121/builds/27524/steps/4/logs/stdio):
FAILED: lib/libLLVMCore.so.17git : && /usr/lib64/ccache/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -Wl,-z,defs -Wl,-z,nodelete -Wl,-rpath-link,/home/buildbots/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/./lib -Wl,--gc-sections -shared -Wl,-soname,libLLVMCore.so.17git -o lib/libLLVMCore.so.17git lib/IR/CMakeFiles/LLVMCore.dir/AbstractCallSite.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/AsmWriter.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Assumptions.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Attributes.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/AutoUpgrade.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/BasicBlock.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/BuiltinGCs.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Comdat.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/ConstantFold.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/ConstantRange.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Constants.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Core.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/DIBuilder.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/DataLayout.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/DebugInfo.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/DebugInfoMetadata.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/DebugLoc.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticHandler.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticInfo.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticPrinter.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Dominators.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/EHPersonalities.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/FPEnv.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Function.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/GCStrategy.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/GVMaterializer.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Globals.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/IRBuilder.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/IRPrintingPasses.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/SSAContext.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/InlineAsm.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Instruction.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Instructions.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/IntrinsicInst.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/LLVMContext.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/LLVMContextImpl.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/LLVMRemarkStreamer.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/LegacyPassManager.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/MDBuilder.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Mangler.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Metadata.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Module.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/ModuleSummaryIndex.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Operator.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/OptBisect.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Pass.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/PassInstrumentation.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/PassManager.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/PassRegistry.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/PassTimingInfo.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/PrintPasses.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/ProfDataUtils.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/SafepointIRVerifier.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/ProfileSummary.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/PseudoProbe.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/ReplaceConstant.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Statepoint.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/StructuralHash.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Type.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/TypedPointerType.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/TypeFinder.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Use.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/User.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Value.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/ValueSymbolTable.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/VectorBuilder.cpp.o lib/IR/CMakeFiles/LLVMCore.dir/Verifier.cpp.o -Wl,-rpath,"\$ORIGIN/../lib" -lpthread lib/libLLVMBinaryFormat.so.17git lib/libLLVMRemarks.so.17git lib/libLLVMTargetParser.so.17git lib/libLLVMSupport.so.17git -Wl,-rpath-link,/home/buildbots/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/lib && : lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticInfo.cpp.o: In function `llvm::DiagnosticInfoDontCall::print(llvm::DiagnosticPrinter&) const [clone .localalias.29]': DiagnosticInfo.cpp:(.text._ZNK4llvm22DiagnosticInfoDontCall5printERNS_17DiagnosticPrinterE+0xa4): undefined reference to `llvm::demangle(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' collect2: error: ld returned 1 exit status
Would you be able to take a look at this? Thanks in advance.
Jan 27 2023
Ping.
Address review comments from Nemanja to simplify the register allocation function and also to add documentation to parts of the code.
Jan 26 2023
Some additional comments and questions I thought of after our previous review/discussion.
Jan 25 2023
Update revision to resolve failing test cases.
LGTM as well.
Jan 24 2023
Rebased patch, as well as demorgan a condition in PPCLegalizerInfo.cpp.
Jan 20 2023
LGTM.
Jan 19 2023
Jan 18 2023
Ping.
Ping.
Jan 17 2023
I've tested this on the PPC side. I am seeing object file differences at the end since we're no longer building for the native target for stage 3, for example:
# Comparing Phase 2 and Phase 3 files file llvm-config.cpp.o differs between phase 2 and phase 3 file LTODisassembler.cpp.o differs between phase 2 and phase 3 file lto.cpp.o differs between phase 2 and phase 3 file llvm-ar.cpp.o differs between phase 2 and phase 3 file llvm-lto.cpp.o differs between phase 2 and phase 3 file DependencyScanningService.cpp.o differs between phase 2 and phase 3 file cc1as_main.cpp.o differs between phase 2 and phase 3 file driver.cpp.o differs between phase 2 and phase 3 file cc1_main.cpp.o differs between phase 2 and phase 3 file ClangLinkerWrapper.cpp.o differs between phase 2 and phase 3 file ClangCheck.cpp.o differs between phase 2 and phase 3 file CIndex.cpp.o differs between phase 2 and phase 3 file bugpoint.cpp.o differs between phase 2 and phase 3 file dsymutil.cpp.o differs between phase 2 and phase 3 file llc.cpp.o differs between phase 2 and phase 3 file disassemble.c.o differs between phase 2 and phase 3 file targets.c.o differs between phase 2 and phase 3 file llvm-cfi-verify.cpp.o differs between phase 2 and phase 3 file llvm-cxxdump.cpp.o differs between phase 2 and phase 3 file llvm-dwarfdump.cpp.o differs between phase 2 and phase 3 file llvm-dwarfutil.cpp.o differs between phase 2 and phase 3 file llvm-dwp.cpp.o differs between phase 2 and phase 3 file llvm-gsymutil.cpp.o differs between phase 2 and phase 3 file llvm-isel-fuzzer.cpp.o differs between phase 2 and phase 3 file llvm-jitlink.cpp.o differs between phase 2 and phase 3 file llvm-libtool-darwin.cpp.o differs between phase 2 and phase 3 file llvm-lto2.cpp.o differs between phase 2 and phase 3 file llvm-mc.cpp.o differs between phase 2 and phase 3 file llvm-mca.cpp.o differs between phase 2 and phase 3 file llvm-ml.cpp.o differs between phase 2 and phase 3 file llvm-nm.cpp.o differs between phase 2 and phase 3 file llvm-objdump.cpp.o differs between phase 2 and phase 3 file llvm-opt-fuzzer.cpp.o differs between phase 2 and phase 3 file llvm-profgen.cpp.o differs between phase 2 and phase 3 file ReducerWorkItem.cpp.o differs between phase 2 and phase 3 file llvm-rtdyld.cpp.o differs between phase 2 and phase 3 file opt.cpp.o differs between phase 2 and phase 3 file sancov.cpp.o differs between phase 2 and phase 3
Are others also seeing this issue with this change?
I think this LGTM as well.
Jan 16 2023
Hi, I realized that the clang-ppc64le-rhel bot is exhibiting the following error when building this patch (https://lab.llvm.org/buildbot/#/builders/57/builds/23848/steps/7/logs/stdio):
FAILED: compiler-rt/lib/scudo/standalone/tests/ScudoUnitTestsObjects.combined_test.cpp.powerpc64le.o /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/runtimes/runtimes-bins/compiler-rt/lib/scudo/standalone/tests/ScudoUnitTestsObjects.combined_test.cpp.powerpc64le.o cd /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/runtimes/runtimes-bins/compiler-rt/lib/scudo/standalone/tests && /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/./bin/clang -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wall -Werror -Wno-unused-parameter -Wno-unknown-warning-option -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -g -Wno-covered-switch-default -Wno-suggest-override -DGTEST_NO_LLVM_SUPPORT=1 -DGTEST_HAS_RTTI=0 -I/home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/runtimes/../third-party/unittest/googletest/include -I/home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/runtimes/../third-party/unittest/googletest -I/home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/include -I/home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/lib -I/home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/lib/scudo/standalone -I/home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/lib/scudo/standalone/include -DGTEST_HAS_RTTI=0 -g -Wno-mismatched-new-delete -m64 -fno-function-sections -c -o ScudoUnitTestsObjects.combined_test.cpp.powerpc64le.o /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/lib/scudo/standalone/tests/combined_test.cpp In file included from /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/lib/scudo/standalone/tests/combined_test.cpp:10: In file included from /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/lib/scudo/standalone/tests/scudo_unit_test.h:15: /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/runtimes/../third-party/unittest/googletest/include/gtest/gtest.h:1628:28: error: comparison of integers of different signs: 'const unsigned long' and 'const int' [-Werror,-Wsign-compare] GTEST_IMPL_CMP_HELPER_(GT, >); ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/runtimes/../third-party/unittest/googletest/include/gtest/gtest.h:1608:12: note: expanded from macro 'GTEST_IMPL_CMP_HELPER_' if (val1 op val2) {\ ~~~~ ^ ~~~~ /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/lib/scudo/standalone/tests/combined_test.cpp:708:3: note: in instantiation of function template specialization 'testing::internal::CmpHelperGT<unsigned long, int>' requested here ASSERT_GT(Size, 0); ^ /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/runtimes/../third-party/unittest/googletest/include/gtest/gtest.h:2076:32: note: expanded from macro 'ASSERT_GT' # define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2) ^ /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/runtimes/../third-party/unittest/googletest/include/gtest/gtest.h:2050:44: note: expanded from macro 'GTEST_ASSERT_GT' ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) ^ /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/lib/scudo/standalone/tests/combined_test.cpp:705:1: note: in instantiation of member function 'ScudoCombinedTestRingBufferSize<scudo::AndroidSvelteConfig>::Run' requested here SCUDO_TYPED_TEST(ScudoCombinedTest, RingBufferSize) { ^ /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/lib/scudo/standalone/tests/combined_test.cpp:129:3: note: expanded from macro 'SCUDO_TYPED_TEST' SCUDO_TYPED_TEST_ALL_TYPES(FIXTURE, NAME) \ ^ /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/lib/scudo/standalone/tests/combined_test.cpp:115:3: note: expanded from macro 'SCUDO_TYPED_TEST_ALL_TYPES' SCUDO_TYPED_TEST_TYPE(FIXTURE, NAME, AndroidSvelteConfig) \ ^ /home/buildbots/docker-RHEL84-buildbot/SetupBot/worker_env/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/compiler-rt/lib/scudo/standalone/tests/combined_test.cpp:122:70: note: expanded from macro 'SCUDO_TYPED_TEST_TYPE' TEST_F(FIXTURE##NAME##_##TYPE, NAME) { FIXTURE##NAME<scudo::TYPE>::Run(); } ^ 1 error generated.
Would you be able to assist in resolving this issue?
Jan 13 2023
I think this LGTM as well.
LGTM as well.
Jan 10 2023
Ping.
Ping.
Dec 14 2022
Dec 12 2022
Ping.
Ping.
The ppc64le-flang-rhel-clang bot is also experiencing some failures with the Driver/fast_math.f90 test case. In particular, crtfastmath.o is not found at all for CHECK-CRT as we can see in the failure details.
llvm-project/flang/test/Driver/fast_math.f90:64:19: error: CHECK-CRT-SAME: expected string not found in input ! CHECK-CRT-SAME: crtfastmath.o
The output for the CHECK-CRT line on the bot looks like the following:
"/home/buildbots/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/build/bin/flang-new" "-fc1" "-triple" "powerpc64le-unknown-linux-gnu" "-emit-obj" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-ffast-math" "-target-cpu" "ppc64le" "-o" "/tmp/lit-tmp-x_okwzug/fast_math-e9ab49.o" "-x" "f95-cpp-input" "/home/buildbots/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/llvm-project/flang/test/Driver/fast_math.f90"
Dec 9 2022
It might be good to add a test case to illustrate the 'unknown target CPU' error that is issued as a result of this patch.
Dec 8 2022
Dec 6 2022
Add back the typo fix that I accidentally removed in the last revision.
Dec 5 2022
Apply @shchenz's suggestion to this patch.
Dec 4 2022
@nemanjai Yeah, at the time of posting the patch, I did do little endian and big endian system tests as you mentioned. Since it's been awhile and I need update the patch, I'd like to retest these particular runs with this patch.
Discussed this patch with Nemanja outside of the review.
Dec 2 2022
Rebase patch.
@stefanp Thanks for the review and the questions!
Can we now get rid of CC_PPC64_ELF_FIS completely?
That’s a good question! This is related to your question about updating PPCFastISel. From what I can tell, it looks like mine covers everything the PPCFastISel one covers:
// Simple calling convention for 64-bit ELF PowerPC fast isel. // Only handle ints and floats. All ints are promoted to i64. // Vector types and quadword ints are not handled. let Entry = 1 in def CC_PPC64_ELF_FIS : CallingConv<[ CCIfCC<“CallingConv::AnyReg”, CCDelegateTo<CC_PPC64_AnyReg>>,
Address review comments:
- Update comments.
- Clean up section involving shadowing GPRs for float/double.
Nov 30 2022
Nov 27 2022
Nov 25 2022
Do we require an IR test for this new attribute?
Nov 24 2022
Rebase patch. I also sync'd with Kai offline and the current implementation using a static const MCPhysReg array and keeping ELF64NumArgGPRs is OK to keep.
LGTM.
Nov 23 2022
A few more submitted comments that I realized I had left on the review.
Update the patch to address review comments from @MaskRay and @hubert.reinterpretcast:
- Guard #include <strings.h> with ifndef C_WINDOWS
- Add comments to document the changes I've made
Nov 22 2022
Nov 21 2022
LGTM as well. Thank you!
Nov 19 2022
Address review comments from Kai regarding early exit, moving variables into the calling convention function and TD file definition line length.
Nov 18 2022
Address review comments from @arsenm regarding removing unnecessary code for G_BITCAST.
Nov 17 2022
Thanks for addressing my comments and question, Stefan. I think this overall LGTM.
Just had a couple comments I wanted to submit prior to the rebase of this patch.
Thanks Maryam. LGTM.
Nov 15 2022
Nov 10 2022
Thanks for addressing my comments. I think unless if anyone else has any concerns, this LGTM.
Nov 8 2022
LGTM.
Nov 7 2022
Thanks for addressing the initial comments that I had. I think aside from these comments I have, the patch LGTM.
Nov 5 2022
Nov 4 2022
Nov 3 2022
Nit: Please also rebase this patch as the newly added files have been committed in Stefan's patch: rG9df924a634ac5ea702b0d8d0d8b737c819a98095