[LLVMbugs] [Bug 13846] New: Code generation fails (X86 FP Stackifier) assert

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Sep 14 04:15:39 PDT 2012


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

             Bug #: 13846
           Summary: Code generation fails (X86 FP Stackifier) assert
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: LLVM Codegen
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: jonathan+llvm at pinacea.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


I recently got this result on one file of the project I'm working on. This file
compiles just fine with Clang 3.1

I build this source in 32bits mode.

Here is the backtrace :

clang: /tmp/llvm/lib/Target/X86/X86FloatingPoint.cpp:332: unsigned int
getFPReg(const llvm::MachineOperand &): Assertion `Reg >= X86::FP0 && Reg <=
X86::FP6 && "Expected FP register!"' failed.
0  clang           0x000000000199b6ff
1  clang           0x000000000199bbc4
2  libpthread.so.0 0x00002b61817b7f60
3  libc.so.6       0x00002b61823a9165 gsignal + 53
4  libc.so.6       0x00002b61823abf70 abort + 384
5  libc.so.6       0x00002b61823a22b1 __assert_fail + 241
6  clang           0x000000000121669b
7  clang           0x0000000001213943
8  clang           0x0000000001212193
9  clang           0x00000000014c6594
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 116
10 clang           0x000000000193ed1b
llvm::FPPassManager::runOnFunction(llvm::Function&) + 443
11 clang           0x000000000193ef7b
llvm::FPPassManager::runOnModule(llvm::Module&) + 155
12 clang           0x000000000193f1f3
llvm::MPPassManager::runOnModule(llvm::Module&) + 419
13 clang           0x000000000193f778 llvm::PassManagerImpl::run(llvm::Module&)
+ 408
14 clang           0x000000000193f8da llvm::PassManager::run(llvm::Module&) +
10
15 clang           0x0000000000775127
clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions
const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::Module*,
clang::BackendAction, llvm::raw_ostream*) + 5239
16 clang           0x0000000000772eea
17 clang           0x0000000000898524 clang::ParseAST(clang::Sema&, bool, bool)
+ 532
18 clang           0x0000000000771f52 clang::CodeGenAction::ExecuteAction() +
178
19 clang           0x000000000062b8b5 clang::FrontendAction::Execute() + 101
20 clang           0x000000000060d78d
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 973
21 clang           0x00000000005f5b5a
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 3450
22 clang           0x00000000005ea36b cc1_main(char const**, char const**, char
const*, void*) + 635
23 clang           0x00000000005f204a main + 3482
24 libc.so.6       0x00002b6182395c4d __libc_start_main + 253
25 clang           0x00000000005ea029
Stack dump:
0.      Program arguments: /llvm/bin/clang -cc1 -triple i386-unknown-linux-gnu
-emit-obj -disable-free -main-file-name MYFILE.c -mrelocation-model static
-fmath-errno -masm-verbose -mconstructor-aliases -target-cpu pentiumpro
-target-linker-version 2.20.1 -momit-leaf-frame-pointer -g -ffunction-sections
-fdata-sections -coverage-file MYFILE.o -resource-dir
/llvm/bin/../lib/clang/3.2 -include linux_strstr.h -D linux -D i386 -D
_GNU_SOURCE -D NDEBUG -D __BYTE_ORDER=1234 -D USE_VARARGS=1 -D USE_PROTOTYPES=0
-D USE_CONST=0 -U _LONG_LONG -D MMAP_SUPPORT -D _FILE_OFFSET_BITS=64 -D debian
-I /usr/X11/include -I /usr/include -I /usr/include/freetype2
-fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem
/usr/local/include -internal-isystem /llvm/bin/../lib/clang/3.2/include
-internal-externc-isystem /usr/include/i486-linux-gnu -internal-externc-isystem
/include -internal-externc-isystem /usr/include -O2 -Wno-write-strings
-Wreturn-type -fdebug-compilation-dir ./data -ferror-limit 19 -fmessage-length
158 -faddress-sanitizer -mstackrealign -fobjc-runtime=gcc
-fdiagnostics-show-option -fcolor-diagnostics -mllvm -asan-stack=1 -mllvm
-asan-globals=1 -o MYFILE.o -x c MYFILE.c 
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '/data/MYFILE.c'.
4.      Running pass 'X86 FP Stackifier' on function '@TOTO'
clang: error: unable to execute command: Aborted
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.2 (trunk 163890)
Target: i386-unknown-linux-gnu
Thread model: posix


THe function TOTO (is anonymized as I can't publish the code) and is prototype
is something like :

static void TOTO(double a, double b, double c, double *d, double *e, double *f,
double g);

and it start like this :

static void TOTO(double a, double b, double c, double *d, double *e, double *f,
double g)
{
   double aa, bb, cc, dd;
   int u;

   ....

}

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list