Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regression tests fail on builds with expensive checks enabled #68594

Open
kosarev opened this issue Oct 9, 2023 · 5 comments
Open

Regression tests fail on builds with expensive checks enabled #68594

kosarev opened this issue Oct 9, 2023 · 5 comments
Assignees
Labels
bug Indicates an unexpected problem or unintended behavior test-suite

Comments

@kosarev
Copy link
Collaborator

kosarev commented Oct 9, 2023

$ ninja check-all
...
Failed Tests (13):
  Clang :: Misc/warning-flags-tree.c
  Clang :: Misc/warning-wall.c
  LLVM :: CodeGen/PowerPC/fp-strict.ll
  LLVM :: CodeGen/PowerPC/pr55463.ll
  LLVM :: CodeGen/PowerPC/register-pressure.ll
  LLVM :: CodeGen/PowerPC/spe.ll
  LLVM :: CodeGen/X86/code_placement_ext_tsp.ll  [Fixed]
  LLVM :: CodeGen/X86/code_placement_ext_tsp_large.ll  [Fixed]
  LLVM :: Transforms/Inline/nested-inline.ll  [Fixed]
  LLVM :: Transforms/SampleProfile/csspgo-import-list.ll
  LLVM-Unit :: Transforms/Utils/./UtilsTests/22/37  [Fixed]
  LLVM-Unit :: Transforms/Utils/./UtilsTests/23/37  [Fixed]
  LLVM-Unit :: Transforms/Utils/./UtilsTests/24/37  [Fixed]


Testing Time: 834.97s
  Skipped          :    46
  Unsupported      :   873
  Passed           : 89821
  Expectedly Failed:   195
  Failed           :    13
@kosarev kosarev added the bug Indicates an unexpected problem or unintended behavior label Oct 9, 2023
@llvmbot
Copy link
Collaborator

llvmbot commented Oct 9, 2023

@llvm/issue-subscribers-bug

``` $ ninja check-all ... Failed Tests (13): Clang :: Misc/warning-flags-tree.c Clang :: Misc/warning-wall.c LLVM :: CodeGen/PowerPC/fp-strict.ll LLVM :: CodeGen/PowerPC/pr55463.ll LLVM :: CodeGen/PowerPC/register-pressure.ll LLVM :: CodeGen/PowerPC/spe.ll LLVM :: CodeGen/X86/code_placement_ext_tsp.ll LLVM :: CodeGen/X86/code_placement_ext_tsp_large.ll LLVM :: Transforms/Inline/nested-inline.ll LLVM :: Transforms/SampleProfile/csspgo-import-list.ll LLVM-Unit :: Transforms/Utils/./UtilsTests/22/37 LLVM-Unit :: Transforms/Utils/./UtilsTests/23/37 LLVM-Unit :: Transforms/Utils/./UtilsTests/24/37

Testing Time: 834.97s
Skipped : 46
Unsupported : 873
Passed : 89821
Expectedly Failed: 195
Failed : 13

</details>

@tbaederr
Copy link
Contributor

tbaederr commented Oct 9, 2023

  Clang :: Misc/warning-flags-tree.c
  Clang :: Misc/warning-wall.c

These two (also) fail for me locally when using -D_GLIBCXX_DEBUG and disabled expensive checks.

@kosarev
Copy link
Collaborator Author

kosarev commented Oct 9, 2023

Yes, these only fail on builds using debug versions of libc++, that is, with _GLIBCXX_DEBUG enabled. Our buildbots, such as https://lab.llvm.org/buildbot/#/builders/16 for example, explicitly disable the libc++ consistency checks by undefining this macro.

@kosarev kosarev self-assigned this Oct 20, 2023
@DavidSpickett
Copy link
Collaborator

See also #73935.

DavidSpickett added a commit to DavidSpickett/llvm-project that referenced this issue Nov 30, 2023
…E_CHECKS is enabled

This was modifying a container as it iterated it, which tripped a
check in libstdc++'s debug checks.

Instead, just assign to the item via the reference we already have.

This fixes the following expensive checks failures on my machine:
  LLVM :: CodeGen/PowerPC/fp-strict.ll
  LLVM :: CodeGen/PowerPC/pr55463.ll
  LLVM :: CodeGen/PowerPC/register-pressure.ll
  LLVM :: CodeGen/PowerPC/spe.ll

Which are some of the tests noted by llvm#68594.
@DavidSpickett
Copy link
Collaborator

With my patch for ppc included I'm now down to:

Failed Tests (2):
  LLVM :: ExecutionEngine/JITLink/RISCV/ELF_ehframe.s
  LLVM :: Transforms/SampleProfile/csspgo-import-list.ll

DavidSpickett added a commit that referenced this issue Dec 1, 2023
…E_CHECKS is enabled (#73940)

This was modifying a container as it iterated it, which tripped a check
in libstdc++'s debug checks.

Instead, just assign to the item via the reference we already have.

This fixes the following expensive checks failures on my machine:
  LLVM :: CodeGen/PowerPC/fp-strict.ll
  LLVM :: CodeGen/PowerPC/pr55463.ll
  LLVM :: CodeGen/PowerPC/register-pressure.ll
  LLVM :: CodeGen/PowerPC/spe.ll

Which are some of the tests noted by #68594.
hahnjo added a commit that referenced this issue Feb 12, 2024
As noted in issues #68594 and #73935, `JITLink/RISCV/ELF_ehframe.s`
fails with libstdc++'s expensive checks because `getRISCVPCRelHi20`
calls `std::equal_range` on the edges which may not be ordered by their
offset. Instead let `ELFJITLinker_riscv` build a hashmap of all edges
with type `R_RISCV_PCREL_HI20` that can be looked up in constant time.

Closes #73935
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Indicates an unexpected problem or unintended behavior test-suite
Projects
None yet
Development

No branches or pull requests

5 participants