xls icon indicating copy to clipboard operation
xls copied to clipboard

SIGSEGV when running under JIT

Open ericastor opened this issue 1 year ago • 0 comments

Found using the XLS fuzzer over the weekend (~Mar 2)

With test.ir:

package subrosa

top fn function_0(param: bits[40], param__1: bits[20]) -> (bits[1], bits[40]) {
  literal.3: bits[40] = literal(value=549755813889, id=3)
  umul.4: bits[80] = umul(param, literal.3, id=4)
  bit_slice.5: bits[1] = bit_slice(umul.4, start=79, width=1, id=5)
  zero_ext.6: bits[40] = zero_ext(bit_slice.5, new_bit_count=40, id=6)
  zero_ext.7: bits[20] = zero_ext(bit_slice.5, new_bit_count=20, id=7)
  not.8: bits[1] = not(bit_slice.5, id=8)
  reverse.9: bits[40] = reverse(zero_ext.6, id=9)
  uge.10: bits[1] = uge(zero_ext.7, param__1, id=10)
  concat.11: bits[41] = concat(not.8, reverse.9, id=11)
  zero_ext.12: bits[40] = zero_ext(uge.10, new_bit_count=40, id=12)
  encode.13: bits[6] = encode(concat.11, id=13)
  bit_slice.14: bits[1] = bit_slice(zero_ext.12, start=0, width=1, id=14)
  zero_ext.15: bits[40] = zero_ext(encode.13, new_bit_count=40, id=15)
  ret tuple.16: (bits[1], bits[40]) = tuple(bit_slice.14, zero_ext.15, id=16)
}

eval_ir_main --input="bits[40]:0xff_ffff_ffff; bits[20]:0x5_5555" --use_llvm_jit test.ir fails with SIGSEGV, giving a stack trace something like:

PC: @     0x561cd503b369  (unknown)  llvm::EVT::isExtendedVector()
    @     0x561cd630c439        928  FailureSignalHandler()
    @     0x7f5059d5be80  687822648  (unknown)
    @     0x561cd503b369          8  llvm::EVT::isExtendedVector()
    @     0x561cd4ca011a        544  llvm::SelectionDAG::getNode()
    @     0x561cd46686dc        288  combineX86AddSub()
    @     0x561cd4653de1       1488  llvm::X86TargetLowering::PerformDAGCombine()
    @     0x561cd4bb9d4a        336  (anonymous namespace)::DAGCombiner::combine()
    @     0x561cd4bb8a8a       1696  llvm::SelectionDAG::Combine()
    @     0x561cd4d16297        480  llvm::SelectionDAGISel::CodeGenAndEmitDAG()
    @     0x561cd4d158fb        800  llvm::SelectionDAGISel::SelectAllBasicBlocks()
    @     0x561cd4d13577        336  llvm::SelectionDAGISel::runOnMachineFunction()
    @     0x561cd4801332         32  (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction()
    @     0x561cd4ad7d70        976  llvm::MachineFunctionPass::runOnFunction()
    @     0x561cd5cca1f5        208  llvm::FPPassManager::runOnFunction()
    @     0x561cd5cd0be4         48  llvm::FPPassManager::runOnModule()
    @     0x561cd5cca94a        352  llvm::legacy::PassManagerImpl::run()
    @     0x561cd454055c        320  llvm::orc::SimpleCompiler::operator()()
    @     0x561cd455c686         64  llvm::orc::ThreadSafeModule::withModuleDo<>()
    @     0x561cd455c50e        144  llvm::orc::IRCompileLayer::emit()
    @     0x561cd455ca2d        160  llvm::orc::IRTransformLayer::emit()
    @     0x561cd455e814        176  llvm::orc::BasicIRLayerMaterializationUnit::materialize()
    @     0x561cd454e18f         32  llvm::orc::ExecutionSession::runOnCurrentThread()
    @     0x561cd454ede3         96  llvm::orc::ExecutionSession::dispatchOutstandingMUs()
    @     0x561cd4550f83        288  llvm::orc::ExecutionSession::OL_completeLookup()
    @     0x561cd45596bb         48  llvm::orc::InProgressFullLookupState::complete()
    @     0x561cd45430fc        224  llvm::orc::ExecutionSession::OL_applyQueryPhase1()
    @     0x561cd4542539        112  llvm::orc::ExecutionSession::lookup()
    @     0x561cd454f22d        224  llvm::orc::ExecutionSession::lookup()
    @     0x561cd454f585        160  llvm::orc::ExecutionSession::lookup()
    @     0x561cd454f970        112  llvm::orc::ExecutionSession::lookup()
    @     0x561cd451d7c7        176  xls::OrcJit::LoadSymbol()
    @     0x561cd44edb0e        768  xls::(anonymous namespace)::BuildFunctionAndDependencies()
    @     0x561cd44ec67f        560  xls::BuildFunction()
    @     0x561cd44ea604       1488  xls::FunctionJit::CreateInternal()
    @     0x561cd44ea273         32  xls::FunctionJit::Create()
    @     0x561cd41bf429        720  xls::(anonymous namespace)::Eval()
    @     0x561cd41b69c0       1184  xls::(anonymous namespace)::RealMain()
    @     0x561cd41b4dd0        432  main
    @     0x7f5059bec3d4        192  __libc_start_main

ericastor avatar Mar 04 '24 18:03 ericastor