www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - LLVM trunk now has opaque pointers by default

reply Johan <j j.nl> writes:
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
parent reply kinke <noone nowhere.com> writes:
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
parent Johan <j j.nl> writes:
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