[PATCH] D123300: [Clang] Enable opaque pointers by default
    Markus Lavin via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Apr 20 01:31:40 PDT 2022
    
    
  
markus added a comment.
In D123300#3459023 <https://reviews.llvm.org/D123300#3459023>, @nikic wrote:
> @markus Without tracing through it in detail, I'd guess that without opaque pointers this creates two getelementptr constant expressions that get folded together. With opaque pointers, the first one (which would be a zero-index GEP) is omitted, and only the second one is left. ConstantFolding will later canonicalize the GEP source type, but this only happens when InstCombine runs, while you're looking at unoptimized IR.
Yes, that appears to have been the case. Thanks for explaining.
> Are you encountering some particular issue relating to this? For well-written optimizations, the exact GEP representation shouldn't matter either way.
One of our target specific passes ran into problems with this as it made some assumptions that no longer hold with opaque pointers.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D123300/new/
https://reviews.llvm.org/D123300
    
    
More information about the llvm-commits
mailing list