[LLVMbugs] [Bug 15932] New: For large sized parameters ARM compilation crashes

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed May 8 01:04:25 PDT 2013


http://llvm.org/bugs/show_bug.cgi?id=15932

            Bug ID: 15932
           Summary: For large sized parameters ARM compilation crashes
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Common Code Generator Code
          Assignee: unassignedbugs at nondot.org
          Reporter: naveen.c at samsung.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 10481
  --> http://llvm.org/bugs/attachment.cgi?id=10481&action=edit
Reduced TC for reproducing the crash

This crash is visible for parameters exceeding the size ((1 << 12) - 1) / 2)
bytes (Ref: ARMFrameLowering::hasReservedCallFrame )

In PEI::replaceFrameIndices
Crash is happening because the assert condition in place checks only for block
level balancing of stack, whereas in current TC's case the balancing is at the
function level.

Going forward the assert condition should be placed at function level, rather
than block level.

Pasting the stack for quick ref:

clang version 3.3 (trunk 181290)
Target: arm--linux-gnueabi
Thread model: posix
 "/home/naveen/svn/build/Release+Asserts/bin/clang" -cc1 -triple
armv4t--linux-gnueabi -S -disable-free -main-file-name arm-crash.c
-mrelocation-model static -mdisable-fp-elim -fmath-errno -mconstructor-aliases
-target-abi aapcs-linux -target-cpu arm7tdmi -mfloat-abi soft -target-feature
+soft-float-abi -target-linker-version 2.22.90.20120924 -v -coverage-file
/home/naveen/temp/arm-crash/t003/arm-crash.s -resource-dir
/home/naveen/svn/build/Release+Asserts/bin/../lib/clang/3.3 -internal-isystem
/usr/local/include -internal-isystem
/home/naveen/svn/build/Release+Asserts/bin/../lib/clang/3.3/include
-internal-externc-isystem /include -internal-externc-isystem /usr/include
-fno-dwarf-directory-asm -fdebug-compilation-dir
/home/naveen/temp/arm-crash/t003 -ferror-limit 19 -fmessage-length 229
-mstackrealign -fno-signed-char -fobjc-runtime=gcc
-fobjc-default-synthesize-properties -fdiagnostics-show-option
-fcolor-diagnostics -backend-option -vectorize-loops -o arm-crash.s -x c
arm-crash.c
clang -cc1 version 3.3 based upon LLVM 3.3svn default target i386-pc-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /home/naveen/svn/build/Release+Asserts/bin/../lib/clang/3.3/include
 /usr/include
End of search list.
clang: /home/naveen/svn/llvm/lib/CodeGen/PrologEpilogInserter.cpp:805: void
llvm::PEI::replaceFrameIndices(llvm::MachineFunction&): Assertion `(SPAdjCount
|| SPAdj == 0) && "Unbalanced call frame setup / destroy pairs?"' failed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20130508/16023659/attachment.html>


More information about the llvm-bugs mailing list