[llvm-dev] Manipulating global address inside GlobalAddress SDNode in (RISCV) LLVM backend

Reshabh Sharma via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 9 06:48:53 PDT 2019


Hello,

Brief background: We are trying to support 64 bit pointers in RISCV 32 bit
backend
http://lists.llvm.org/pipermail/llvm-dev/2019-June/132805.html

To pass the legalizer we plan to break the 64 bit GlobalAddress into 32 bit
GlobalAddress having the other 32 bit glued to the node. We could not find
a direct way to convert the 64 bit GlobalAddress Node into a 32 bit node.

For a GlobalAddress node say i64 = GlobalAddress<0xHighLow> we want to
convert it into i32 = GlobalAddress<0xLow>.

[The below part is in reference with the RISCV LLVM backend]
If there is no direct way to do this, we plan to fall back on a backup plan
to convert the GlobalAddress node into the required LUI and ADDI pair but
that would require the addition of two new target flag in RISCVII
namespace.

- Reshabh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190709/aa10043d/attachment.html>


More information about the llvm-dev mailing list