diff options
author | Graham Hunter <graham.hunter@arm.com> | 2019-08-14 11:48:39 +0100 |
---|---|---|
committer | Graham Hunter <graham.hunter@arm.com> | 2019-11-18 12:30:59 +0000 |
commit | 3f08ad611aa26db2e719705b8fb60f4661d97b98 (patch) | |
tree | 11c5716f2ccf7f1dd34b4a57aaf3cac338636922 /llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | |
parent | 5181adab6183d058509ca6da7c1306ced3a61e1c (diff) | |
download | bcm5719-llvm-3f08ad611aa26db2e719705b8fb60f4661d97b98.tar.gz bcm5719-llvm-3f08ad611aa26db2e719705b8fb60f4661d97b98.zip |
[SVE][CodeGen] Scalable vector MVT size queries
* Implements scalable size queries for MVTs, split out from D53137.
* Contains a fix for FindMemType to avoid using scalable vector type
to contain non-scalable types.
* Explicit casts for several places where implicit integer sign
changes or promotion from 32 to 64 bits caused problems.
* CodeGenDAGPatterns will treat scalable and non-scalable vector types
as different.
Reviewers: greened, cameron.mcinally, sdesmalen, rovka
Reviewed By: rovka
Differential Revision: https://reviews.llvm.org/D66871
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 1b02f96cf27..abd046530ed 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -8842,7 +8842,9 @@ MemSDNode::MemSDNode(unsigned Opc, unsigned Order, const DebugLoc &dl, // We check here that the size of the memory operand fits within the size of // the MMO. This is because the MMO might indicate only a possible address // range instead of specifying the affected memory addresses precisely. - assert(memvt.getStoreSize() <= MMO->getSize() && "Size mismatch!"); + // TODO: Make MachineMemOperands aware of scalable vectors. + assert(memvt.getStoreSize().getKnownMinSize() <= MMO->getSize() && + "Size mismatch!"); } /// Profile - Gather unique data for the node. |