digitalmars.D.ldc - LLVM trunk now has opaque pointers by default
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
Jun 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. :)
Jun 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
Jun 06 2022