8000 `--polynomial-to-mod-arith` segfault · Issue #1812 · google/heir · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
--polynomial-to-mod-arith segfault #1812
Closed
@Fizzixnerd

Description

@Fizzixnerd
// real.mlir
!field_elem = i256

func.func @constraints(%i: tensor<15 x !field_elem>, %a: tensor<65535 x !field_elem>, %o: tensor<15 x !field_elem>) -> tensor<65535 x !polynomial.polynomial<ring=<coefficientType=!field_elem>>> {
    %result = tensor.empty() : tensor<65535 x !polynomial.polynomial<ring=<coefficientType=!field_elem>>>
    %deg = arith.constant 2 : index
    %coeff = arith.constant 256 : i256
    %mono = polynomial.monomial %coeff, %deg : (!field_elem, index) -> !polynomial.polynomial<ring=<coefficientType=!field_elem>> 
    %idx = arith.constant 0 : index
    %insertion = tensor.insert %mono into %result[%idx] : tensor<65535 x !polynomial.polynomial<ring=<coefficientType=!field_elem>>>
    %blah = arith.constant 3.14 : f32
    return %insertion : tensor<65535 x !polynomial.polynomial<ring=<coefficientType=!field_elem>>>
}

is the offending file.

$ heir-opt --polynomial-to-mod-arith mlir/real.mlir

is the offending invocation.

The error is:

~/src/rust-lang main ?5 ❯  heir-opt --polynomial-to-mod-arith mlir/real.mlir                                                                                                                                                                                                09:41:37 AM
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: heir-opt --polynomial-to-mod-arith mlir/real.mlir
 #0 0x000060c3a5ae302b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/fizzixnerd/bin/heir-opt+0x378702b)
 #1 0x000060c3a5ae0fe5 llvm::sys::RunSignalHandlers() (/home/fizzixnerd/bin/heir-opt+0x3784fe5)
 #2 0x000060c3a5ae369a SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x000079f9d0e45330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x000060c3a3dccf10 mlir::heir::polynomial::IntPolynomialAttr::getPolynomial() const (/home/fizzixnerd/bin/heir-opt+0x1a70f10)
 #5 0x000060c3a32a4235 mlir::heir::polynomial::convertPolynomialType(mlir::heir::polynomial::PolynomialType) (/home/fizzixnerd/bin/heir-opt+0xf48235)
 #6 0x000060c3a32a774b std::_Function_handler<std::optional<llvm::LogicalResult> (mlir::Type, llvm::SmallVectorImpl<mlir::Type>&), std::enable_if<std::is_invocable_v<mlir::heir::polynomial::PolynomialToModArithTypeConverter::PolynomialToModArithTypeConverter(mlir::MLIRContext*)::'lambda'(mlir::heir::polynomial::PolynomialType), mlir::heir::polynomial::PolynomialType, llvm::SmallVectorImpl<mlir::Type>&>, std::function<std::optional<llvm::LogicalResult> (mlir::Type, llvm::SmallVectorImpl<mlir::Type>&)>>::type mlir::TypeConverter::wrapCallback<mlir::heir::polynomial::PolynomialType, std::enable_if<std::is_invocable_v<mlir::heir::polynomial::PolynomialToModArithTypeConverter::PolynomialToModArithTypeConverter(mlir::MLIRContext*)::'lambda'(mlir::heir::polynomial::PolynomialType), mlir::heir::polynomial::PolynomialType>, std::function<std::optional<llvm::LogicalResult> (mlir::Type, llvm::SmallVectorImpl<mlir::Type>&)>>::type mlir::TypeConverter::wrapCallback<mlir::heir::polynomial::PolynomialType, mlir::heir::polynomial::PolynomialToModArithTypeConverter::PolynomialToModArithTypeConverter(mlir::MLIRContext*)::'lambda'(mlir::heir::polynomial::PolynomialType)>(mlir::heir::polynomial::PolynomialToModArithTypeConverter::PolynomialToModArithTypeConverter(mlir::MLIRContext*)::'lambda'(mlir::heir::polynomial::PolynomialType)&&) const::'lambda'(mlir::heir::polynomial::PolynomialType, llvm::SmallVectorImpl<mlir::Type>&)>(mlir::heir::polynomial::PolynomialToModArithTypeConverter::PolynomialToModArithTypeConverter(mlir::MLIRContext*)::'lambda'(mlir::heir::polynomial::PolynomialType)&&) const::'lambda'(mlir::Type, llvm::SmallVectorImpl<mlir::Type>&)>::_M_invoke(std::_Any_data const&, mlir::Type&&, llvm::SmallVectorImpl<mlir::Type>&) (/home/fizzixnerd/bin/heir-opt+0xf4b74b)
 #7 0x000060c3a57776f2 mlir::TypeConverter::convertType(mlir::Type, llvm::SmallVectorImpl<mlir::Type>&) const (/home/fizzixnerd/bin/heir-opt+0x341b6f2)
 #8 0x000060c3a577e4bc mlir::TypeConverter::isLegal(mlir::Type) const (/home/fizzixnerd/bin/heir-opt+0x34224bc)
 #9 0x000060c3a32ba907 std::_Function_handler<std::optional<llvm::LogicalResult> (mlir::Type, llvm::SmallVectorImpl<mlir::Type>&), std::enable_if<std::is_invocable_v<mlir::heir::addTensorOfTensorConversionPatterns(mlir::TypeConverter&, mlir::RewritePatternSet&, mlir::ConversionTarget&)::$_2, mlir::TensorType, llvm::SmallVectorImpl<mlir::Type>&>, std::function<std::optional<llvm::LogicalResult> (mlir::Type, llvm::SmallVectorImpl<mlir::Type>&)>>::type mlir::TypeConverter::wrapCallback<mlir::TensorType, std::enable_if<std::is_invocable_v<mlir::heir::addTensorOfTensorConversionPatterns(mlir::TypeConverter&, mlir::RewritePatternSet&, mlir::ConversionTarget&)::$_2, mlir::TensorType>, std::function<std::optional<llvm::LogicalResult> (mlir::Type, llvm::SmallVectorImpl<mlir::Type>&)>>::type mlir::TypeConverter::wrapCallback<mlir::TensorType, mlir::heir::addTensorOfTensorConversionPatterns(mlir::TypeConverter&, mlir::RewritePatternSet&, mlir::ConversionTarget&)::$_2>(mlir::heir::addTensorOfTensorConversionPatterns(mlir::TypeConverter&, mlir::RewritePatternSet&, mlir::ConversionTarget&)::$_2&&) const::'lambda'(mlir::TensorType, llvm::SmallVectorImpl<mlir::Type>&)>(mlir::heir::addTensorOfTensorConversionPatterns(mlir::TypeConverter&, mlir::RewritePatternSet&, mlir::ConversionTarget&)::$_2&&) const::'lambda'(mlir::Type, llvm::SmallVectorImpl<mlir::Type>&)>::_M_invoke(std::_Any_data const&, mlir::Type&&, llvm::SmallVectorImpl<mlir::Type>&) ConversionUtils.cpp:0:0
#10 0x000060c3a57776f2 mlir::TypeConverter::convertType(mlir::Type, llvm::SmallVectorImpl<mlir::Type>&) const (/home/fizzixnerd/bin/heir-opt+0x341b6f2)
#11 0x000060c3a5788147 bool std::all_of<llvm::concat_iterator<mlir::Type const, mlir::Type const*, mlir::Type const*>, std::enable_if<!std::is_convertible<llvm::detail::concat_range<mlir::Type const, llvm::ArrayRef<mlir::Type>, llvm::ArrayRef<mlir::Type>>, mlir::Type>::value && !std::is_convertible<llvm::detail::concat_range<mlir::Type const, llvm::ArrayRef<mlir::Type>, llvm::ArrayRef<mlir::Type>>, mlir::Operation*>::value, bool>::type mlir::TypeConverter::isLegal<llvm::detail::concat_range<mlir::Type const, llvm::ArrayRef<mlir::Type>, llvm::ArrayRef<mlir::Type>>>(llvm::detail::concat_range<mlir::Type const, llvm::ArrayRef<mlir::Type>, llvm::ArrayRef<mlir::Type>>&&) const::'lambda'(mlir::Type)>(llvm::detail::concat_range<mlir::Type const, llvm::ArrayRef<mlir::Type>, llvm::ArrayRef<mlir::Type>>, llvm::detail::concat_range<mlir::Type const, llvm::ArrayRef<mlir::Type>, llvm::ArrayRef<mlir::Type>>, std::enable_if<!std::is_convertible<llvm::detail::concat_range<mlir::Type const, llvm::ArrayRef<mlir::Type>, llvm::ArrayRef<mlir::Type>>, mlir::Type>::value && !std::is_convertible<llvm::detail::concat_range<mlir::Type const, llvm::ArrayRef<mlir::Type>, llvm::ArrayRef<mlir::Type>>, mlir::Operation*>::value, bool>::type mlir::TypeConverter::isLegal<llvm::detail::concat_range<mlir::Type const, llvm::ArrayRef<mlir::Type>, llvm::ArrayRef<mlir::Type>>>(llvm::detail::concat_range<mlir::Type const, llvm::ArrayRef<mlir::Type>, llvm::ArrayRef<mlir::Type>>&&) const::'lambda'(mlir::Type)) (/home/fizzixnerd/bin/heir-opt+0x342c147)
#12 0x000060c3a577e6c8 mlir::TypeConverter::isSignatureLegal(mlir::FunctionType) const (/home/fizzixnerd/bin/heir-opt+0x34226c8)
#13 0x000060c3a32bd09c std::_Function_handler<std::optional<bool> (mlir::Operation*), std::enable_if<!std::is_invocable_v<mlir::heir::addStructuralConversionPatterns(mlir::TypeConverter&, mlir::RewritePatternSet&, mlir::ConversionTarget&)::$_0, mlir::Operation*>, void>::type mlir::ConversionTarget::addDynamicallyLegalOp<mlir::func::FuncOp, mlir::heir::addStructuralConversionPatterns(mlir::TypeConverter&, mlir::RewritePatternSet&, mlir::ConversionTarget&)::$_0>(mlir::heir::addStructuralConversionPatterns(mlir::TypeConverter&, mlir::RewritePatternSet&, mlir::ConversionTarget&)::$_0&&)::'lambda'(mlir::Operation*)>::_M_invoke(std::_Any_data const&, mlir::Operation*&&) ConversionUtils.cpp:0:0
#14 0x000060c3a577f739 mlir::ConversionTarget::isLegal(mlir::Operation*) const (/home/fizzixnerd/bin/heir-opt+0x3423739)
#15 0x000060c3a578754a mlir::WalkResult llvm::function_ref<mlir::WalkResult (mlir::Operation*)>::callback_fn<mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>)::$_0>(long, mlir::Operation*) DialectConversion.cpp:0:0
#16 0x000060c3a33552a6 mlir::WalkResult mlir::detail::walk<mlir::ForwardDominanceIterator<false>>(mlir::Operation*, llvm::function_ref<mlir::WalkResult (mlir::Operation*)>, mlir::WalkOrder) (/home/fizzixnerd/bin/heir-opt+0xff92a6)
#17 0x000060c3a335519f mlir::WalkResult mlir::detail::walk<mlir::ForwardDominanceIterator<false>>(mlir::Operation*, llvm::function_ref<mlir::WalkResult (mlir::Operation*)>, mlir::WalkOrder) (/home/fizzixnerd/bin/heir-opt+0xff919f)
#18 0x000060c3a577c5aa mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/home/fizzixnerd/bin/heir-opt+0x34205aa)
#19 0x000060c3a5780fce mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/home/fizzixnerd/bin/heir-opt+0x3424fce)
#20 0x000060c3a32a65b8 mlir::heir::polynomial::PolynomialToModArith::runOnOperation() (/home/fizzixnerd/bin/heir-opt+0xf4a5b8)
#21 0x000060c3a5977b44 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/fizzixnerd/bin/heir-opt+0x361bb44)
#22 0x000060c3a5978067 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/home/fizzixnerd/bin/heir-opt+0x361c067)
#23 0x000060c3a597a5b1 mlir::PassManager::run(mlir::Operation*) (/home/fizzixnerd/bin/heir-opt+0x361e5b1)
#24 0x000060c3a3ee34ea performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#25 0x000060c3a3ee3039 llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#26 0x000060c3a5aa456c mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) (/home/fizzixnerd/bin/heir-opt+0x374856c)
#27 0x000060c3a3edc09a mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/fizzixnerd/bin/heir-opt+0x1b8009a)
#28 0x000060c3a3edc3a9 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/home/fizzixnerd/bin/heir-opt+0x1b803a9)
#29 0x000060c3a3edc6e2 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/home/fizzixnerd/bin/heir-opt+0x1b806e2)
#30 0x000060c3a307ba18 main (/home/fizzixnerd/bin/heir-opt+0xd1fa18)
#31 0x000079f9d0e2a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#32 0x000079f9d0e2a28b call_init ./csu/../csu/libc-start.c:128:20
#33 0x000079f9d0e2a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#34 0x000060c3a30797b5 _start (/home/fizzixnerd/bin/heir-opt+0xd1d7b5)
zsh: segmentation fault (core dumped)  heir-opt --polynomial-to-mod-arith mlir/real.mlir

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0