[PATCH] D69936: [IPRA][ARM] Spill extra registers at -Oz

Alex Lorenz via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 1 20:09:38 PDT 2020


arphaman added a comment.

Hi @ostannard ,

Unfortunately this change causes the following failure for a clang that's built with LLVM_EXPENSIVE_CHECKS=On when building compiler-rt for armv7k:

  *** Bad machine code: Using an undefined physical register ***
  - function:    _ZN11__sanitizer20InternalReallocArrayEPvmmPNS_30SizeClassAllocator32LocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEE
  - basic block: %bb.0 entry (0x7f8d6e025e68)
  - instruction: $r3 = tMOVr killed $r12, 14, $noreg, debug-location !232; ../compiler-rt/lib/sanitizer_common/sanitizer_allocator.cpp:179:5
  - operand 1:   killed $r12
  fatal error: error in backend: Found 1 machine code errors.

I've attached an llvm-ir file F11658926: sanitizer_allocator-810340.ll <https://reviews.llvm.org/F11658926> that reproduces the problem. You can invoke it like this (llc needs to be built with '-DLLVM_ENABLE_EXPENSIVE_CHECKS=ON'):

  llc -mtriple thumbv7k-apple-ios9.0.0 < sanitizer_allocator-810340.ll 

Could you please take a look to see what's gone wrong there?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69936/new/

https://reviews.llvm.org/D69936





More information about the llvm-commits mailing list