<html>
<head>
<base href="http://llvm.org/bugs/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - For large sized parameters ARM compilation crashes"
href="http://llvm.org/bugs/show_bug.cgi?id=15932">15932</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>For large sized parameters ARM compilation crashes
</td>
</tr>
<tr>
<th>Product</th>
<td>libraries
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Windows NT
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>Common Code Generator Code
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>naveen.c@samsung.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvmbugs@cs.uiuc.edu
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=10481" name="attach_10481" title="Reduced TC for reproducing the crash">attachment 10481</a> <a href="attachment.cgi?id=10481&action=edit" title="Reduced TC for reproducing the crash">[details]</a></span>
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.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>