Skip to content

module-level analysis invalidated but not re-run #2406

Closed
@nlewycky

Description

@nlewycky
Bugzilla Link 2034
Resolution FIXED
Resolved on Mar 19, 2008 20:10
Version trunk
OS Linux
Attachments testcase

Extended Description

Here's an interesting one:

$ llvm-commit/Debug/bin/opt -anders-aa -instcombine -gvn b.bc -debug-pass=Structure

Now before I get to the output, what's happening is that
a) anders-aa registers all the Values up front
b) instcombine folds together two GEPs (%tmp10 and %tmp11) creating a new one (%tmp11) which anders-aa hasn't seen
c) gvn queries anders-aa about the new %tmp11

instcombine is marked as preserving the CFG, but not any AA stuff, so really anders-aa should be re-run before gvn gets to it. Here's the output:

Pass Arguments: -anders-aa -instcombine -domtree -memdep -gvn -preverify -domtree -verify
Target Data Layout
Basic Alias Analysis (default AA impl)
ModulePass Manager
Andersen's Interprocedural Alias Analysis
FunctionPass Manager
Combine redundant instructions
-- Combine redundant instructions
Dominator Tree Construction
Memory Dependence Analysis
Global Value Numbering
-- Global Value Numbering
-- Dominator Tree Construction
-- Memory Dependence Analysis
Preliminary module verification
Dominator Tree Construction
Module Verifier
-- Dominator Tree Construction
-- Module Verifier
-- Preliminary module verification
-- Andersen's Interprocedural Alias Analysis
-- Target Data Layout
%tmp11 = getelementptr %struct.FULL* %tmp9, i32 0, i32 2, i32 0 ; <float**> [#uses=1]

opt: Andersens.cpp:497: unsigned int::Andersens::getNode(llvm::Value*): Assertion `0 && "Value does not have a node in the points-to graph!"' failed.
llvm-commit/Debug/bin/opt[0x85f97ee]
llvm-commit/Debug/bin/opt[0x85f9ab4]
[0xffffe500]
Aborted

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzilla

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions