[LLVMbugs] [Bug 12757] New: Assertion failed: (MRI->getVRegDef(reg) && "Register use before def!"), function HandleVirtRegUse, file /usr/src/lib/clang/libllvmcodegen/../../../contrib/llvm/lib/CodeGen/LiveVariables.cpp, line 131.

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon May 7 13:32:04 PDT 2012


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

             Bug #: 12757
           Summary: Assertion failed: (MRI->getVRegDef(reg) && "Register
                    use before def!"), function HandleVirtRegUse, file
                    /usr/src/lib/clang/libllvmcodegen/../../../contrib/llv
                    m/lib/CodeGen/LiveVariables.cpp, line 131.
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: FreeBSD
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: PowerPC
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: rdivacky at freebsd.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


int
__flt_rounds()
{
 unsigned long fpscr;

 __asm__ volatile("mffs %0" : "=f"(fpscr));
 return fpscr;
}


[rdivacky at anacreon ~/delta-2006.08.03]$ clang flt_rounds.c 
flt_rounds.c:6:19: error: couldn't allocate output register for constraint 'f'
 __asm__ volatile("mffs %0" : "=f"(fpscr));
                  ^
flt_rounds.c:6:19: error: invalid operand in inline asm: 'mffs $0'
2 errors generated.
[rdivacky at anacreon ~/delta-2006.08.03]$ clang -O2 flt_rounds.c 
flt_rounds.c:6:19: error: couldn't allocate output register for constraint 'f'
 __asm__ volatile("mffs %0" : "=f"(fpscr));
                  ^
Assertion failed: (MRI->getVRegDef(reg) && "Register use before def!"),
function HandleVirtRegUse, file
/usr/src/lib/clang/libllvmcodegen/../../../contrib/llvm/lib/CodeGen/LiveVariables.cpp,
line 131.
Stack dump:
0.      Program arguments: /usr/bin/clang -cc1 -triple
powerpc64-unknown-freebsd10.0 -S -disable-free -main-file-name flt_rounds.c
-mrelocation-model static -mdisable-fp-elim -mconstructor-aliases
-momit-leaf-frame-pointer -resource-dir /usr/bin/../lib/clang/3.1
-fmodule-cache-path /var/tmp/clang-module-cache -O2 -fno-dwarf-directory-asm
-fdebug-compilation-dir /home/rdivacky/delta-2006.08.03 -ferror-limit 19
-fmessage-length 152 -mstackrealign -fno-signed-char -fgnu-runtime
-fobjc-runtime-has-arc -fobjc-runtime-has-weak -fdiagnostics-show-option
-fcolor-diagnostics -o /tmp/flt_rounds-0bhd1X.s -x c flt_rounds.c 
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'flt_rounds.c'.
4.      Running pass 'Live Variable Analysis' on function '@__flt_rounds'
clang: error: unable to execute command: Abort trap: 6 (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
clang: note: diagnostic msg: Please submit a bug report to
http://llvm.org/bugs/ and include command line arguments and all diagnostic
information.
clang: note: diagnostic msg: Preprocessed source(s) and associated run
script(s) are located at:
clang: note: diagnostic msg: /tmp/flt_rounds-QjXYWg.i
clang: note: diagnostic msg: /tmp/flt_rounds-QjXYWg.sh

gcc is ok with this

-- 
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