<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 --- - TableGen miscompilation/crash in stage 2 [powerpc-darwin8]"
href="http://llvm.org/bugs/show_bug.cgi?id=15901">15901</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>TableGen miscompilation/crash in stage 2 [powerpc-darwin8]
</td>
</tr>
<tr>
<th>Product</th>
<td>new-bugs
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Macintosh
</td>
</tr>
<tr>
<th>OS</th>
<td>MacOS X
</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>new bugs
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>fang@csl.cornell.edu
</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>On powerpc-darwin8, my next issue during stage-2 compilation (stage-1 built
with gcc-4.0) happens in llvm-tblgen:
[ 21%] Building ARMGenRegisterInfo.inc...
cd /Users/fang/local/src/LLVM-svn/gcc40-stage2-build/lib/Target/ARM &&
../../../bin/llvm-tblgen -gen-register-info -I
/Users/fang/local/src/LLVM-svn/llvm/lib/Target/ARM -I
/Users/fang/local/src/LLVM-
svn/llvm/lib/Target -I /Users/fang/local/src/LLVM-svn/llvm/include
/Users/fang/local/src/LLVM-svn/llvm/lib/Target/ARM/ARM.td -o
/Users/fang/local/src/LLVM-svn/gcc40-stage2-build/lib/Target/ARM/ARMGenR
egisterInfo.inc.tmp
/Users/fang/local/src/LLVM-svn/llvm/include/llvm/ADT/DenseMap.h:289: failed
asse
rtion `!FoundVal && "Key already in new map?"'
Stack dump:
0. Program arguments: ../../../bin/llvm-tblgen -gen-register-info -I
/Users
/fang/local/src/LLVM-svn/llvm/lib/Target/ARM -I
/Users/fang/local/src/LLVM-svn/l
lvm/lib/Target -I /Users/fang/local/src/LLVM-svn/llvm/include
/Users/fang/local/
src/LLVM-svn/llvm/lib/Target/ARM/ARM.td -o
/Users/fang/local/src/LLVM-svn/gcc40-
stage2-build/lib/Target/ARM/ARMGenRegisterInfo.inc.tmp
make[2]: *** [lib/Target/ARM/ARMGenRegisterInfo.inc.tmp] Error 134
make[2]: Leaving directory `/Volumes/Isolde/builds/LLVM/gcc40-stage2-build'
make[1]: *** [lib/Target/ARM/CMakeFiles/ARMCommonTableGen.dir/all] Error 2
make[1]: Leaving directory `/Volumes/Isolde/builds/LLVM/gcc40-stage2-build'
make: *** [all] Error 2
I've added some call tracing and compared stage 1 vs. stage 2:
--- gcc40-cmake-build/lib/Target/ARM/tblgen.err.head 2013-05-02
13:33:53.000000000 -0700
+++ gcc40-stage2-build/lib/Target/ARM/tblgen.err 2013-05-02
13:23:22.000000000 -0700
@@ -1,4 +1,6 @@
-\-{ int llvm::TableGenMain(char*, bool (*)(llvm::raw_ostream&,
llvm::RecordKeeper&))
+[ 21%] Building ARMGenRegisterInfo.inc...
+cd /Users/fang/local/src/LLVM-svn/gcc40-stage2-build/lib/Target/ARM &&
../../../bin/llvm-tblgen -gen-register-info -I
/Users/fang/local/src/LLVM-svn/llvm/lib/Target/ARM -I
/Users/fang/local/src/LLVM-
svn/llvm/lib/Target -I /Users/fang/local/src/LLVM-svn/llvm/include
/Users/fang/local/src/LLVM-svn/llvm/lib/Target/ARM/ARM.td -o
/Users/fang/local/src/LLVM-svn/gcc40-stage2-build/lib/Target/ARM/ARMGenR
egisterInfo.inc.tmp
+\-{ int llvm::TableGenMain(char *, TableGenMainFn *)
| : Parsing input file.
| : Tell SrcMgr about buffer for TGParser.
| : Record location of include dir.
... <snip> ...
@@ -380644,27 +380646,23 @@
| | | | | | | | \-{ llvm::Init*
llvm::TGParser::ParseSimpleValue(llvm::Record*, llvm::RecTy*,
llvm::TGParser::IDParseMode)
| | | | | | | | /-} llvm::Init*
llvm::TGParser::ParseSimpleValue(llvm::Record*, llvm::RecTy*,
llvm::TGParser::IDParseMode)
| | | | | | | /-} llvm::Init* llvm::TGParser::ParseValue(llvm::Record*,
llvm::RecTy*, llvm::TGParser::IDParseMode)
-| | | | | | /-} std::vector<llvm::Init*, std::allocator<llvm::Init*> >
llvm::TGParser::ParseValueList(llvm::Record*, llvm::Record*, llvm::RecTy*)
+| | | | | | /-} std::vector<Init *>
llvm::TGParser::ParseValueList(llvm::Record *, llvm::Record *, llvm::RecTy *)
| | | | | | \-{ llvm::Record* llvm::TGParser::ParseClassID()
| | | | | | /-} llvm::Record* llvm::TGParser::ParseClassID()
-| | | | | | \-{ std::vector<llvm::Init*, std::allocator<llvm::Init*> >
llvm::TGParser::ParseValueList(llvm::Record*, llvm::Record*, llvm::RecTy*)
+| | | | | | \-{ std::vector<Init *>
llvm::TGParser::ParseValueList(llvm::Record *, llvm::Record *, llvm::RecTy *)
| | | | | | | \-{ llvm::Init* llvm::TGParser::ParseValue(llvm::Record*,
llvm::RecTy*, llvm::TGParser::IDParseMode)
| | | | | | | | \-{ llvm::Init*
llvm::TGParser::ParseSimpleValue(llvm::Record*, llvm::RecTy*,
llvm::TGParser::IDParseMode)
-| | | | | | | | | \-{ std::vector<llvm::Init*, std::allocator<llvm::Init*> >
llvm::TGParser::ParseValueList(llvm::Record*, llvm::Record*, llvm::RecTy*)
+| | | | | | | | | \-{ std::vector<Init *>
llvm::TGParser::ParseValueList(llvm::Record *, llvm::Record *, llvm::RecTy *)
| | | | | | | | | | \-{ llvm::Init* llvm::TGParser::ParseValue(llvm::Record*,
llvm::RecTy*, llvm::TGParser::IDParseMode)
| | | | | | | | | | | \-{ llvm::Init*
llvm::TGParser::ParseSimpleValue(llvm::Record*, llvm::RecTy*,
llvm::TGParser::IDParseMode)
| | | | | | | | | | | | : IntVal
| | | | | | | | | | | | \-{ static llvm::IntInit* llvm::IntInit::get(int64_t)
| | | | | | | | | | | | | : V = 277
-| | | | | | | | | | | | /-} static llvm::IntInit* llvm::IntInit::get(int64_t)
-| | | | | | | | | | | /-} llvm::Init*
llvm::TGParser::ParseSimpleValue(llvm::Record*, llvm::RecTy*,
llvm::TGParser::IDParseMode)
-| | | | | | | | | | /-} llvm::Init* llvm::TGParser::ParseValue(llvm::Record*,
llvm::RecTy*, llvm::TGParser::IDParseMode)
-| | | | | | | | | /-} std::vector<llvm::Init*, std::allocator<llvm::Init*> >
llvm::TGParser::ParseValueList(llvm::Record*, llvm::Record*, llvm::RecTy*)
-| | | | | | | | /-} llvm::Init*
llvm::TGParser::ParseSimpleValue(llvm::Record*, llvm::RecTy*,
llvm::TGParser::IDParseMode)
-| | | | | | | /-} llvm::Init* llvm::TGParser::ParseValue(llvm::Record*,
llvm::RecTy*, llvm::TGParser::IDParseMode)
-| | | | | | /-} std::vector<llvm::Init*, std::allocator<llvm::Init*> >
llvm::TGParser::ParseValueList(llvm::Record*, llvm::Record*, llvm::RecTy*)
-| | | | | | \-{ bool llvm::TGParser::ParseBody(llvm::Record*)
-| | | | | | /-} bool llvm::TGParser::ParseBody(llvm::Record*)
-| | | | | /-} bool llvm::TGParser::ParseObjectBody(llvm::Record*)
-| | | | /-} bool llvm::TGParser::ParseDef(llvm::MultiClass*)
-| | | /-} bool llvm::TGParser::ParseObject(llvm::MultiClass*)
+/Users/fang/local/src/LLVM-svn/llvm/include/llvm/ADT/DenseMap.h:289: failed
assertion `!FoundVal && "Key already in new map?"'
+Stack dump:
+0. Program arguments: ../../../bin/llvm-tblgen -gen-register-info -I
/Users/fang/local/src/LLVM-svn/llvm/lib/Target/ARM -I
/Users/fang/local/src/LLVM-svn/llvm/lib/Target -I /Users/fang/local/src/
LLVM-svn/llvm/include /Users/fang/local/src/LLVM-svn/llvm/lib/Target/ARM/ARM.td
-o
/Users/fang/local/src/LLVM-svn/gcc40-stage2-build/lib/Target/ARM/ARMGenRegisterInfo.inc.tmp
+make[2]: *** [lib/Target/ARM/ARMGenRegisterInfo.inc.tmp] Error 134
+make[2]: Leaving directory `/Volumes/Isolde/builds/LLVM/gcc40-stage2-build'
+make[1]: *** [lib/Target/ARM/CMakeFiles/ARMCommonTableGen.dir/all] Error 2
+make[1]: Leaving directory `/Volumes/Isolde/builds/LLVM/gcc40-stage2-build'
+make: *** [all] Error 2
Ignore the std::vector __PRETTY_FUNCTION__ differences.
Stage-2's tblgen just suddenly assert-fails at V = 277 in InitInit::get().
Suggestions for debugging this?</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>