summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
diff options
context:
space:
mode:
authorAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>2019-12-13 19:43:06 +0000
committerAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>2019-12-13 21:40:03 +0000
commitfc83f53a86d802fc2d56aac4eb3dc53998751042 (patch)
treebe64c1a746c70620076eb4d41e38e974a2f814c1 /llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
parentea8888d1af3a992d82d1ff3bf99537220828d388 (diff)
downloadbcm5719-llvm-fc83f53a86d802fc2d56aac4eb3dc53998751042.tar.gz
bcm5719-llvm-fc83f53a86d802fc2d56aac4eb3dc53998751042.zip
[NFC] Implement SelectionDAG::getObjectPtrOffset() using getMemBasePlusOffset()
Summary: This change is preparatory work to use this helper functions in more places. In order to make this change, getMemBasePlusOffset() has been extended to also take a SDNodeFlags parameter. The motivation for this change is our out-of-tree CHERI backend (https://github.com/CTSRD-CHERI/llvm-project). We use a separate register type to store pointers (128-bit capabilities, which are effectively unforgeable and monotonic fat pointers). These capabilities permit a reduced set of operations and therefore use a separate ValueType (iFATPTR). to represent pointers implemented as capabilities. Therefore, we need to avoid using ISD::ADD for our patterns that operate on pointers and need to use a function that chooses ISD::ADD or a new ISD::PTRADD opcode depending on the value type. We originally added a new DAG.getPointerAdd() function, but after this patch series we can modify the implementation of getMemBasePlusOffset() instead. Avoiding direct uses of ISD::ADD for pointer types will significantly reduce the amount of assertion/instruction selection failures for us in future upstream merges. Reviewers: spatel Reviewed By: spatel Subscribers: merge_guards_bot, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71206
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud