[llvm-bugs] [Bug 42346] New: For -enable-gvn-sink, facing Assertion `i < NumUserOperands && "getOperand() out of range!"' failed

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jun 20 12:49:13 PDT 2019


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

            Bug ID: 42346
           Summary: For -enable-gvn-sink, facing Assertion `i <
                    NumUserOperands && "getOperand() out of range!"'
                    failed
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Global Analyses
          Assignee: unassignedbugs at nondot.org
          Reporter: balarishi.bhogadi at amd.com
                CC: llvm-bugs at lists.llvm.org

=======

// Invoke: clang-9 -cc1 -emit-llvm-bc -w -O2 -mllvm -enable-gvn-sink 
<filename.c>

#define __isl_give
#define __isl_take
#define isl_basic_set   isl_basic_map

typedef struct isl_basic_map isl_basic_map;
typedef struct isl_vec isl_vec;

struct isl_basic_map {
        unsigned n_eq;
};

__isl_give isl_vec *isl_basic_set_sample_bounded;
static __isl_give isl_vec *interval_sample(__isl_take isl_basic_set *bset) ;
static __isl_give isl_vec *sample_eq(__isl_take isl_basic_set *bset,  
__isl_give isl_vec *(__isl_take isl_basic_set *)) ;
unsigned int basic_set_sample_dim;
isl_basic_map * basic_set_sample_bset;

static __isl_give isl_vec *basic_set_sample(__isl_take isl_basic_set *bset,    
int bounded) {
        if (isl_basic_set_plain_is_empty(basic_set_sample_bset))
                return empty_sample(basic_set_sample_bset);
        if (basic_set_sample_bset->n_eq > 0)
                return sample_eq(basic_set_sample_bset,
isl_basic_set_sample_bounded);
        if (basic_set_sample_dim == 1)
                return interval_sample(basic_set_sample_bset);
}

isl_vec *isl_basic_set_sample_vec(__isl_take isl_basic_set *bset) {
        return basic_set_sample;
}

//=======

For the above facing the below error:

clang-7:
/home/amd/JENKINS/workspace/CPUPC_Mirror_Branch/llvm/include/llvm/IR/User.h:171:
llvm::Value* llvm::User::getOperand(unsigned int) const: Assertion `i <
NumUserOperands && "getOperand() out of range!"' failed.
Stack dump:
0.      Program arguments:
/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7 -cc1 -emit-llvm-bc -O2
-mllvm -enable-gvn-sink -w isl_sample_reduced.c
1.      <eof> parser at end of file
2.      Per-module optimization passes
3.      Running pass 'CallGraph Pass Manager' on module 'isl_sample_reduced.c'.
4.      Running pass 'Early GVN sinking of Expressions' on function
'@basic_set_sample'
#0 0x00002b1110b933fa llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/../lib/libLLVM-7svn.so+0x66c3fa)
#1 0x00002b1110b91869 llvm::sys::RunSignalHandlers()
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/../lib/libLLVM-7svn.so+0x66a869)
#2 0x00002b1110b9199d SignalHandler(int)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/../lib/libLLVM-7svn.so+0x66a99d)
#3 0x00002b111031b390 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
#4 0x00002b1113f83428 gsignal
/build/glibc-t3gR2i/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
#5 0x00002b1113f8502a abort /build/glibc-t3gR2i/glibc-2.23/stdlib/abort.c:91:0
#6 0x00002b1113f7bbd7 __assert_fail_base
/build/glibc-t3gR2i/glibc-2.23/assert/assert.c:92:0
#7 0x00002b1113f7bc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
#8 0x00002b1110a30afc (anonymous
namespace)::ModelledPHI::areAllIncomingValuesSame()
const::'lambda'(llvm::Value*)::operator()(llvm::Value*) const (.part.159)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/../lib/libLLVM-7svn.so+0x509afc)
#9 0x00002b1111646364 (anonymous
namespace)::GVNSink::analyzeInstructionForSinking((anonymous
namespace)::LockstepReverseIterator&, unsigned int&, unsigned int&,
llvm::DenseSet<(anonymous namespace)::ModelledPHI, (anonymous
namespace)::DenseMapInfo<(anonymous namespace)::ModelledPHI> >&,
llvm::SmallPtrSetImpl<llvm::Value*>&)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/../lib/libLLVM-7svn.so+0x111f364)
#10 0x00002b11116471ab (anonymous
namespace)::GVNSink::sinkBB(llvm::BasicBlock*)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/../lib/libLLVM-7svn.so+0x11201ab)
#11 0x00002b1111648ad0 (anonymous namespace)::GVNSink::run(llvm::Function&)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/../lib/libLLVM-7svn.so+0x1121ad0)
#12 0x00002b11116492f7 (anonymous
namespace)::GVNSinkLegacyPass::runOnFunction(llvm::Function&) (.part.485)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/../lib/libLLVM-7svn.so+0x11222f7)
#13 0x00002b1110c9a3d3 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/../lib/libLLVM-7svn.so+0x7733d3)
#14 0x00002b111196b57f (anonymous
namespace)::CGPassManager::runOnModule(llvm::Module&)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/../lib/libLLVM-7svn.so+0x144457f)
#15 0x00002b1110c9abc5 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/../lib/libLLVM-7svn.so+0x773bc5)
#16 0x00000000008a6ce1 (anonymous
namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7+0x8a6ce1)
#17 0x00000000008a8d35 clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::HeaderSearchOptions const&, clang::CodeGenOptions const&,
clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout
const&, llvm::Module*, clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7+0x8a8d35)
#18 0x0000000000d5ec0b
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7+0xd5ec0b)
#19 0x00000000012214a2 clang::ParseAST(clang::Sema&, bool, bool)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7+0x12214a2)
#20 0x0000000000d5e24f clang::CodeGenAction::ExecuteAction()
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7+0xd5e24f)
#21 0x0000000000cbc9c6 clang::FrontendAction::Execute()
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7+0xcbc9c6)
#22 0x0000000000c8fa5e
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7+0xc8fa5e)
#23 0x0000000000d59ab2
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7+0xd59ab2)
#24 0x00000000008490d8 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7+0x8490d8)
#25 0x00000000008431e4 main
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7+0x8431e4)
#26 0x00002b1113f6e830 __libc_start_main
/build/glibc-t3gR2i/glibc-2.23/csu/../csu/libc-start.c:325:0
#27 0x000000000084410e _start
(/home/amd/qa/llvm_binaries/MIRROR-BUILD-1011/bin/clang-7+0x84410e)
Aborted (core dumped)

-- 
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/20190620/e3024e56/attachment.html>


More information about the llvm-bugs mailing list