[llvm-bugs] [Bug 27329] New: ""Node emitted out of order - late" compiling to WASM

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Apr 12 12:17:46 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=27329

            Bug ID: 27329
           Summary: ""Node emitted out of order - late" compiling to WASM
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: WebAssembly
          Assignee: unassignedbugs at nondot.org
          Reporter: gareth_morgan77 at hotmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 16209
  --> https://llvm.org/bugs/attachment.cgi?id=16209&action=edit
Test case with CPP, LL and .s files (with makefile)

The attached Basic.ll file will cause this assert in LLC:
Assertion failed: I != VRBaseMap.end() && "Node emitted out of order - late",
file E:\testcode\llvm\llvm-3.8.0.src\lib\CodeGen\SelectionDAG\InstrEmitter.cpp,
line 302

Changing the argument to the Bar function to pass by value, rather than
reference makes the assert go away (Basic.works.cpp and Basic.opt.works.ll
attached).

Testcase (and makefile showing build steps) attached.

Callstack below
>	llc.exe!llvm::InstrEmitter::getVR(llvm::SDValue Op, llvm::DenseMap<llvm::SDValue,unsigned int,llvm::DenseMapInfo<llvm::SDValue>,llvm::detail::DenseMapPair<llvm::SDValue,unsigned int> > & VRBaseMap) Line 302	C++
     llc.exe!llvm::InstrEmitter::EmitSpecialNode(llvm::SDNode * Node, bool
IsClone, bool IsCloned, llvm::DenseMap<llvm::SDValue,unsigned
int,llvm::DenseMapInfo<llvm::SDValue>,llvm::detail::DenseMapPair<llvm::SDValue,unsigned
int> > & VRBaseMap) Line 901    C++
     llc.exe!llvm::InstrEmitter::EmitNode(llvm::SDNode * Node, bool IsClone,
bool IsCloned, llvm::DenseMap<llvm::SDValue,unsigned
int,llvm::DenseMapInfo<llvm::SDValue>,llvm::detail::DenseMapPair<llvm::SDValue,unsigned
int> > & VRBaseMap) Line 124    C++
    
llc.exe!llvm::ScheduleDAGSDNodes::EmitSchedule(llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr,llvm::ilist_iterator<llvm::MachineInstr>
> & InsertPos) Line 848    C++
     llc.exe!llvm::SelectionDAGISel::CodeGenAndEmitDAG() Line 867    C++
    
llc.exe!llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::Instruction
const > Begin, llvm::ilist_iterator<llvm::Instruction const > End, bool &
HadTailCall) Line 669    C++
     llc.exe!llvm::SelectionDAGISel::SelectAllBasicBlocks(const llvm::Function
& Fn) Line 1362    C++
     llc.exe!llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction
& mf) Line 507    C++
     llc.exe!`anonymous
namespace'::WebAssemblyDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction
& MF) Line 55    C++
     llc.exe!llvm::MachineFunctionPass::runOnFunction(llvm::Function & F) Line
44    C++
     llc.exe!llvm::FPPassManager::runOnFunction(llvm::Function & F) Line 1550  
 C++
     llc.exe!llvm::FPPassManager::runOnModule(llvm::Module & M) Line 1571   
C++
     llc.exe!`anonymous namespace'::MPPassManager::runOnModule(llvm::Module &
M) Line 1627    C++
     llc.exe!llvm::legacy::PassManagerImpl::run(llvm::Module & M) Line 1730   
C++
     llc.exe!llvm::legacy::PassManager::run(llvm::Module & M) Line 1762    C++
     llc.exe!compileModule(char * * argv, llvm::LLVMContext & Context) Line 408
   C++
     llc.exe!main(int argc, char * * argv) Line 211    C++

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160412/08d46ab5/attachment.html>


More information about the llvm-bugs mailing list