Skip to content

Vector handling insertElement instruction #470

@mortkever

Description

@mortkever

Hello,

I've run into quiet a few programs in the spec 2006 benhcmarking suite where the following assert is thrown:
Assertion `fromTempAlloc && "Is not an allocation node"' (in Instructions.cpp line 402)
If I understand correctly, DG expects every insertElement instruction operates on a vector that was just allocated (if not constant or undef).
It seems to me this is an incorrect assumption and the cause of a few of the assertion errors I run into.

In some cases getOperand returns a load, phi node, shufflevector or call instruction.
Is the design such that the analysis should look past those nodes till its finds an alloc node or should it handle, at that point in the code, other instructions instead?

I'm trying to familiarize myself with the code in hopes of contributing a solution myself. Would it be possible to explain what the create element function does and how it fits in the larger code base? More specifically the use of PSNodesSeq?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions