[LLVMbugs] [Bug 6434] New: Blackfin DAG ISel Uses Singular Iterators

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Feb 26 08:00:59 PST 2010


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

           Summary: Blackfin DAG ISel Uses Singular Iterators
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: enhancement
          Priority: P5
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: greened at obbligato.org
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=4320)
 --> (http://llvm.org/bugs/attachment.cgi?id=4320)
Patch to enable extra SelectionDAG checking

[Filing under new-bugs since there is no Blackfin codegen component.]

When applied to trunk and build in Debug+Checks mod, the attached patch causes
the Blackfin codegen to assert with an error about referencing a singular
iterator.

[x86_64-mod-par]: FAIL:
/ptmp/dag/llvm-project.modified/llvm/trunk/test/CodeGen/Blackfin/cmp64.ll
[x86_64-mod-par]: Failed with signal(SIGABRT) at line 1
[x86_64-mod-par]: while running:  llc <
/ptmp/dag/llvm-project.modified/llvm/trunk/test/CodeGen/Blackfin/cmp64.ll
-march=bfin
[x86_64-mod-par]: /usr/include/c++/4.1.2/debug/safe_iterator.h:422:error:
attempt to compare 
[x86_64-mod-par]:     a singular iterator to a past-the-end iterator.
[x86_64-mod-par]: 
[x86_64-mod-par]: Objects involved in the operation:
[x86_64-mod-par]: iterator "lhs" @ 0x0x7fff7dd0d988 {
[x86_64-mod-par]: type =
N11__gnu_debug14_Safe_iteratorIN10__gnu_norm20_List_const_iteratorIPN4llvm5SDUseEEEN15__gnu_debug_def4listIS5_SaIS5_EEEEE
(constant iterator);
[x86_64-mod-par]:   state = singular;
[x86_64-mod-par]:   references sequence with type
`N15__gnu_debug_def4listIPN4llvm5SDUseESaIS3_EEE' @ 0x0x7fff7dd0d988
[x86_64-mod-par]: }
[x86_64-mod-par]: iterator "rhs" @ 0x0x7fff7dd0d840 {
[x86_64-mod-par]: type =
N11__gnu_debug14_Safe_iteratorIN10__gnu_norm20_List_const_iteratorIPN4llvm5SDUseEEEN15__gnu_debug_def4listIS5_SaIS5_EEEEE
(constant iterator);
[x86_64-mod-par]:   state = past-the-end;
[x86_64-mod-par]:   references sequence with type
`N15__gnu_debug_def4listIPN4llvm5SDUseESaIS3_EEE' @ 0x0x7fff7dd0d840
[x86_64-mod-par]: }
[x86_64-mod-par]: 0  llc            0x0000000001c3025e
[x86_64-mod-par]: 1  llc            0x0000000001c3088e
[x86_64-mod-par]: 2  libc.so.6      0x00002b8e2d449c10
[x86_64-mod-par]: 3  libc.so.6      0x00002b8e2d449b95 gsignal + 53
[x86_64-mod-par]: 4  libc.so.6      0x00002b8e2d44af90 abort + 272
[x86_64-mod-par]: 5  libstdc++.so.6 0x00002b8e2d010dc7
__gnu_debug::_Error_formatter::_M_error() const + 471
[x86_64-mod-par]: 6  llc            0x0000000000eda007 bool
__gnu_debug::operator==<__gnu_norm::_List_const_iterator<llvm::SDUse*>,
__gnu_debug_def::list<llvm::SDUse*, std::allocator<llvm::SDUse*> >
>(__gnu_debug::_Safe_iterator<__gnu_norm::_List_const_iterator<llvm::SDUse*>,
__gnu_debug_def::list<llvm::SDUse*, std::allocator<llvm::SDUse*> > > const&,
__gnu_debug::_Safe_iterator<__gnu_norm::_List_const_iterator<llvm::SDUse*>,
__gnu_debug_def::list<llvm::SDUse*, std::allocator<llvm::SDUse*> > > const&) +
177
[x86_64-mod-par]: 7  llc            0x0000000000eda2c8
llvm::SDNode::use_iterator::atEnd() const + 46
[x86_64-mod-par]: 8  llc            0x0000000000eda2f3
llvm::SDNode::use_iterator::operator++() + 21
[x86_64-mod-par]: 9  llc            0x0000000000f51153 (anonymous
namespace)::BlackfinDAGToDAGISel::FixRegisterClasses(llvm::SelectionDAG&) + 969
[x86_64-mod-par]: 10 llc            0x0000000000f516c9 (anonymous
namespace)::BlackfinDAGToDAGISel::InstructionSelect() + 187
[x86_64-mod-par]: 11 llc            0x0000000001698b5f
llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 3713
[x86_64-mod-par]: 12 llc            0x000000000169a886
llvm::SelectionDAGISel::SelectBasicBlock(llvm::BasicBlock*,
llvm::ilist_iterator<llvm::Instruction>,
llvm::ilist_iterator<llvm::Instruction>, bool&) + 686
[x86_64-mod-par]: 13 llc            0x000000000169b22b
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function&,
llvm::MachineFunction&, llvm::MachineModuleInfo*, llvm::DwarfWriter*,
llvm::TargetInstrInfo const&) + 2419
[x86_64-mod-par]: 14 llc            0x000000000169bc85
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 931
[x86_64-mod-par]: 15 llc            0x00000000017b889f
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 85
[x86_64-mod-par]: 16 llc            0x0000000001b827ca
llvm::FPPassManager::runOnFunction(llvm::Function&) + 336
[x86_64-mod-par]: 17 llc            0x0000000001b839bb
llvm::FunctionPassManagerImpl::run(llvm::Function&) + 79
[x86_64-mod-par]: 18 llc            0x0000000001b83b5a
llvm::FunctionPassManager::run(llvm::Function&) + 110
[x86_64-mod-par]: 19 llc            0x0000000000e4c556 main + 2750
[x86_64-mod-par]: 20 libc.so.6      0x00002b8e2d437154 __libc_start_main + 244
[x86_64-mod-par]: 21 llc            0x0000000000e4ac69
[x86_64-mod-par]: Stack dump:
[x86_64-mod-par]: 0.    Program arguments: llc -march=bfin 
[x86_64-mod-par]: 1.    Running pass 'Blackfin DAG->DAG Pattern Instruction
Selection' on function '@main'

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