From 06c3d52aa2fa3b6a9aa019906ad8577813efe32a Mon Sep 17 00:00:00 2001 From: Arthur Eubanks Date: Fri, 11 Jun 2021 12:51:25 -0700 Subject: [PATCH] [docs][OpaquePtr] Add some specific examples of what needs to be done --- llvm/docs/OpaquePointers.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/llvm/docs/OpaquePointers.rst b/llvm/docs/OpaquePointers.rst index b1dfe76..c3a02c6 100644 --- a/llvm/docs/OpaquePointers.rst +++ b/llvm/docs/OpaquePointers.rst @@ -108,12 +108,21 @@ particular order: * Fix up existing in-tree users of pointee types to not rely on LLVM pointer pointee types + * Specifically ``PointerType::getElementType`` and + ``Type::getPointerElementType()`` + * Allow bitcode auto-upgrade of legacy pointer type to the new opaque pointer type (not to be turned on until ready) + * To support legacy bitcode, such as legacy stores/loads, we need to track + pointee types for all values since legacy instructions may infer the types + from a pointer operand's pointee type + * Migrate frontends to not keep track of frontend pointee types via LLVM pointer pointee types + * This is mostly Clang, see ``clang::CodeGen::Address::getElementType()`` + * Add option to internally treat all pointer types opaque pointers and see what breaks, starting with LLVM tests, then run Clang over large codebases -- 2.7.4