GCC Testsuite Status E42799be2bb2966487c27897294426a03a99f56d Analysis
Hey guys! Today, we're diving deep into the Testsuite Status for the e42799be2bb2966487c27897294426a03a99f56d commit. This report offers a detailed look at the performance and stability of the GCC (GNU Compiler Collection) compilers, including GCC, G++, and GFortran. We'll break down the failures, resolutions, and overall status across various platforms and configurations. This analysis is crucial for understanding the health of the compiler and identifying areas that need attention. Let's jump right in!
Summary of Testsuite Status e42799be2bb2966487c27897294426a03a99f56d
This summary provides a bird's-eye view of the test results, highlighting new failures, resolved issues, and persistent problems across different compiler configurations. We'll focus on the key metrics to give you a clear understanding of the compiler's performance. Understanding this summary is essential for grasping the overall health of the GCC compiler suite and pinpointing specific areas needing improvement. The tables presented here offer a concise yet comprehensive snapshot of the compiler's status, allowing developers and users alike to quickly assess the impact of recent changes and prioritize their efforts accordingly.
New Failures
New Failures | gcc | g++ | gfortran | Previous Hash |
---|---|---|---|---|
linux: rv32gcv ilp32d medlow multilib | 20/2 | 0/0 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv32gcv ilp32d medlow multilib | 20/2 | 0/0 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
This section highlights the new failures introduced in the current commit. Specifically, we see that the linux: rv32gcv ilp32d medlow multilib
and newlib: rv32gcv ilp32d medlow multilib
configurations have encountered 20 new failures in GCC, with 2 of those being categorized as excess errors. This is a critical area to investigate, as these failures indicate potential regressions or newly introduced bugs. The previous hash provided allows for a direct comparison with the previous commit, making it easier to pinpoint the changes that might have caused these issues. Understanding these new failures is the first step in addressing them, ensuring the continued stability and reliability of the compiler.
Resolved Failures
Resolved Failures | gcc | g++ | gfortran | Previous Hash |
---|---|---|---|---|
Unfortunately, this section is empty, meaning no failures were resolved in this commit. While it's always great to see issues being fixed, it's equally important to acknowledge when progress hasn't been made in a particular area. This doesn't necessarily indicate a problem, but it does highlight that certain existing failures are still present and require attention. We need to keep an eye on the unresolved failures and ensure they are addressed in future commits. The absence of resolved failures underscores the importance of ongoing testing and debugging efforts to maintain the quality of the compiler suite.
Unresolved Failures
Unresolved Failures | gcc | g++ | gfortran | Previous Hash |
---|---|---|---|---|
linux: RVA23U64 profile lp64d medlow multilib | 140/71 | 31/11 | 12/2 | e6e50400971592c429a48ec7093db4606c3f78f7 |
linux: rv32 Bitmanip ilp32d medlow | 61/28 | 23/8 | 12/2 | e6e50400971592c429a48ec7093db4606c3f78f7 |
linux: rv32gc ilp32d medlow | 61/28 | 23/8 | 12/2 | e6e50400971592c429a48ec7093db4606c3f78f7 |
linux: rv32gcv ilp32d medlow multilib | 248/83 | 31/11 | 12/2 | e6e50400971592c429a48ec7093db4606c3f78f7 |
linux: rv64 Bitmanip lp64d medlow | 49/22 | 23/8 | 12/2 | e6e50400971592c429a48ec7093db4606c3f78f7 |
linux: rv64 Vector Crypto lp64d medlow multilib | 190/107 | 31/11 | 12/2 | e6e50400971592c429a48ec7093db4606c3f78f7 |
linux: rv64gc lp64d medlow | 49/22 | 23/8 | 12/2 | e6e50400971592c429a48ec7093db4606c3f78f7 |
linux: rv64gcv lp64d medlow multilib | 138/69 | 31/11 | 12/2 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: RVA23U64 profile lp64d medlow multilib | 158/70 | 31/11 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv32 Bitmanip ilp32d medlow | 265/67 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv32gc ilp32d medlow | 82/30 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv32gcv ilp32d medlow multilib | 449/119 | 31/11 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv32imac ilp32 medlow multilib | 89/31 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv32imac_zba_zbb_zbc_zbs ilp32 medlow multilib | 265/67 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv32imc ilp32 medlow multilib | 89/31 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv32imc_zba_zbb_zbc_zbs ilp32 medlow multilib | 265/67 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv32imc_zba_zbb_zbc_zbs_zicsr_zifencei ilp32 medlow multilib | 265/67 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv32imc_zicsr_zifencei ilp32 medlow multilib | 89/31 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv64 Bitmanip lp64d medlow | 70/24 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv64 Vector Crypto lp64d medlow multilib | 208/106 | 31/11 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv64gc lp64d medlow | 70/24 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv64gcv lp64d medlow multilib | 156/68 | 31/11 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv64imac lp64 medlow multilib | 70/24 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv64imac_zba_zbb_zbc_zbs lp64 medlow multilib | 263/63 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv64imc lp64 medlow multilib | 70/24 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv64imc_zba_zbb_zbc_zbs lp64 medlow multilib | 263/63 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv64imc_zba_zbb_zbc_zbs_zicsr_zifencei lp64 medlow multilib | 263/63 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
newlib: rv64imc_zicsr_zifencei lp64 medlow multilib | 70/24 | 23/8 | 0/0 | e6e50400971592c429a48ec7093db4606c3f78f7 |
The unresolved failures table paints a more detailed picture of the challenges. We can see a significant number of persistent failures across various configurations, especially in the newlib
environment. For instance, newlib: rv32gcv ilp32d medlow multilib
has a whopping 449 failures, with 119 being excess errors. Similarly, newlib: rv32 Bitmanip ilp32d medlow
and several other configurations show a high number of unresolved issues. These numbers are critical for developers to prioritize their debugging efforts. The linux
configurations also show a substantial number of failures, particularly in RVA23U64 profile lp64d medlow multilib
and rv64 Vector Crypto lp64d medlow multilib
. Analyzing these unresolved failures helps identify systemic issues within the compiler and related libraries. By understanding the scope and nature of these failures, developers can strategize effectively to resolve them, ultimately enhancing the reliability and performance of the GCC compiler suite.
New Failures Across All Affected Targets (2 targets / 28 total targets)
Moving on, let's look at the specific new failures that have cropped up across all affected targets. This section drills down into the individual test cases that are failing, providing invaluable context for developers to understand the nature of the issues. We'll examine the failure logs and test case details to pinpoint the root causes and develop effective solutions. This detailed analysis is crucial for maintaining the compiler's quality and stability.
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=scalable -mrvv-max-lmul=dynamic -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=scalable -mrvv-max-lmul=m1 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=scalable -mrvv-max-lmul=m2 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=scalable -mrvv-max-lmul=m4 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=scalable -mrvv-max-lmul=m8 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=zvl -mrvv-max-lmul=dynamic -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=zvl -mrvv-max-lmul=m1 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=zvl -mrvv-max-lmul=m2 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=zvl -mrvv-max-lmul=m4 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=zvl -mrvv-max-lmul=m8 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=scalable -mrvv-max-lmul=dynamic -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=scalable -mrvv-max-lmul=m1 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=scalable -mrvv-max-lmul=m2 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=scalable -mrvv-max-lmul=m4 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=scalable -mrvv-max-lmul=m8 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=zvl -mrvv-max-lmul=dynamic -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=zvl -mrvv-max-lmul=m1 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=zvl -mrvv-max-lmul=m2 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=zvl -mrvv-max-lmul=m4 -ffast-math (test for excess errors)
FAIL: gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f16.c -ftree-vectorize -O3 -mrvv-vector-bits=zvl -mrvv-max-lmul=m8 -ffast-math (test for excess errors)
These failures are concentrated in the RISC-V Vector (RVV) autovectorization tests, specifically targeting the vf_vfwnmacc
and vf_vfwnmsac
test cases with f16 floating-point numbers. The failures occur across various configurations of mrvv-vector-bits
(scalable and zvl) and mrvv-max-lmul
(dynamic, m1, m2, m4, m8), all with -ffast-math
enabled. The error message "test for excess errors" suggests potential issues with the vectorization process or the numerical accuracy of the generated code. This information is invaluable for developers, guiding them to focus on the RVV autovectorization routines and the handling of f16 floating-point operations. A closer look at the generated assembly code and the input data for these tests will likely reveal the underlying cause of the failures. Understanding these specific failure patterns is crucial for targeted debugging and resolution, ensuring the correctness and efficiency of the compiler's vectorization capabilities.
Associated Run Information
Finally, the associated run is linked here: https://github.com/patrick-rivos/gcc-postcommit-ci/actions/runs/16391542312. This link provides direct access to the complete test run details, including logs, build information, and other relevant data. Examining the associated run is often the next step in the debugging process, allowing developers to delve deeper into the failure environment and gather more context. The comprehensive information available in the run details can help identify dependencies, system configurations, or other factors that might be contributing to the failures. By leveraging this resource, developers can gain a more holistic understanding of the issues and develop more effective solutions.
In conclusion, this Testsuite Status report provides a detailed analysis of the GCC compiler's performance, highlighting new failures, unresolved issues, and specific test case failures. This information is essential for maintaining the quality and stability of the compiler, guiding developers in their debugging efforts and ensuring the continued reliability of the GCC compiler suite.