Skip to content

assert in SCEV #4281

@llvmbot

Description

@llvmbot
Bugzilla Link 3909
Resolution WORKSFORME
Resolved on Apr 22, 2009 02:19
Version unspecified
OS Linux
Attachments test case, generated by the LLVM D compiler and simplified manually
Reporter LLVM Bugzilla Contributor
CC @nlewycky

Extended Description

Assembling the attached code with 'llc bug.bc' triggers the assert

ScalarEvolutionExpressions.h:570: RetVal llvm::SCEVVisitor<SC, RetVal>::visitCouldNotCompute(llvm::SCEVCouldNotCompute*) [with SC = llvm::SCEVExpander, RetVal = llvm::Value*]: Assertion `0 && "Invalid use of SCEVCouldNotCompute!"' failed.

with LLVM 2.5. The issue seems to be i64 related: if you replace all i64s with i32s, the code is assembled fine. The backtrace is:

4 libc.so.6 0xb7d01f25 __assert_fail + 245
5 llc 0x08d0fc9a llvm::LoopBasellvm::BasicBlock::isLoopInvariant(llvm::Value*) const + 0
6 llc 0x08d10861 llvm::SCEVVisitor<llvm::SCEVExpander, llvm::Value*>::visit(llvm::SCEV*) + 337
7 llc 0x08d0e3fd llvm::SCEVExpander::expand(llvm::SCEV*) + 161
8 llc 0x08d0f0f2 llvm::SCEVExpander::visitAddRecExpr(llvm::SCEVAddRecExpr*) + 1956
9 llc 0x08d10802 llvm::SCEVVisitor<llvm::SCEVExpander, llvm::Value*>::visit(llvm::SCEV*) + 242
10 llc 0x08d0e3fd llvm::SCEVExpander::expand(llvm::SCEV*) + 161
11 llc 0x08d0e46d llvm::SCEVExpander::expandCodeFor(llvm::SCEVHandle, llvm::Instruction*) + 41
12 llc 0x08c854d0
13 llc 0x08c87748
14 llc 0x08ce83af llvm::LPPassManager::runOnFunction(llvm::Function&) + 911
15 llc 0x08d91a0e llvm::FPPassManager::runOnFunction(llvm::Function&) + 258
16 llc 0x08d91f98 llvm::FunctionPassManagerImpl::run(llvm::Function&) + 116
17 llc 0x08d920f1 llvm::FunctionPassManager::run(llvm::Function&) + 137
18 llc 0x08513503 main + 2479

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzillacompile-failUse [accepts-invalid] and [rejects-valid] insteadworksformeResolved as "works for me"

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions