Thread overview
LLVM trunk now has opaque pointers by default
Jun 06, 2022
Johan
Jun 06, 2022
kinke
Jun 06, 2022
Johan
June 06, 2022

See: https://reviews.llvm.org/rG41d5033eb162

"""
This enabled opaque pointers by default in LLVM. The effect of this
is twofold:

If IR that contains neither explicit ptr nor %T* types is passed to tools, we will now use opaque pointer mode, unless -opaque-pointers=0 has been explicitly passed.
Users of LLVM as a library will now default to opaque pointers. It is possible to opt-out by calling setOpaquePointers(false) on LLVMContext.
A cmake option to toggle this default will not be provided. Frontends
or other tools that want to (temporarily) keep using typed pointers
should disable opaque pointers via LLVMContext.
"""

Thought it's good to put that here so more people know how to change the default back to older LLVM versions, in case we need it. We probably want to disable it for the near future, and then update all our tests in one go and stop testing older LLVMs that don't have opaque pointer support?

-Johan

June 06, 2022

Ouch, it'll probably land in 15 then, with 14 introducing it (as an option) AFAIK. Good that we can opt out for some time; codegen and extra LLVM passes currently depend on the IR pointer types in various places. - New Orc API, new pass manager API, opaque pointers... we're not running out of LLVM compatibility tasks anytime soon. :)

June 06, 2022

On Monday, 6 June 2022 at 21:45:20 UTC, kinke wrote:

>

Ouch, it'll probably land in 15 then, with 14 introducing it (as an option) AFAIK. Good that we can opt out for some time; codegen and extra LLVM passes currently depend on the IR pointer types in various places. - New Orc API, new pass manager API, opaque pointers... we're not running out of LLVM compatibility tasks anytime soon. :)

Indeed...
I hope to find more time to work on LDC soon.

-Johan