HomePhabricator

[SelectionDAG] Allow FindMemType to fail when widening loads & stores

Authored by frasercrmck on Oct 18 2021, 7:16 AM.

Description

[SelectionDAG] Allow FindMemType to fail when widening loads & stores

This patch removes an internal failure found in FindMemType and "bubbles
it up" to the users of that method: GenWidenVectorLoads and
GenWidenVectorStores. FindMemType -- renamed findMemType -- now returns
an optional value, returning None if no such type is found.

Each of the aforementioned users now pre-calculates the list of types it
will use to widen the memory access. If the type breakdown is not
possible they will signal a failure, at which point the compiler will
crash as it does currently.

This patch is preparing the ground for alternative legalization
strategies for vector loads and stores, such as using vector-predication
versions of loads or stores.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D112000

Details

Committed
frasercrmckOct 29 2021, 10:27 AM
Reviewer
RKSimon
Differential Revision
D112000: [SelectionDAG] Allow FindMemType to fail when widening loads & stores
Parents
rG3b285ff5172c: [llvm-profgen] Fix a set-but-unused warning
Branches
Unknown
Tags
Unknown