The @llvmorg Developer Meeting videos are up! Check out our panel discussion about moving Clang C++ compiler to MLIR + opportunities and tradeoffs that entails. Thx to Ivan for initiating, Johannes as protagonist🧐 and Bruno/Alex/Mehdi for a great chat. https://t.co/DJf6ERaOQ0
@jfbastien@__simt__@GorNishanov 😂 that would have been great for building llvm faster in my laptop. Hope it doesn't take few millions of light-years for such release to come tho
@jon_roelofs@aDifferentJT@jfbastien@Cor3ntin On `<name-yours>::vector` awareness, what @jon_roelofs says and/or additional specifications of such library-compiler contract (e.g. compiler tablegen definitions specifying assumed behavior of certain core operations).
@jon_roelofs@aDifferentJT@jfbastien@Cor3ntin On reserve(), possible but requires some handwaving: inserting reserve() is not legal because it moves the vector data and there may be deps on them. A price some might be willing to pay. Also a valuable transformation for CIR based linters to suggest and code mod tools to apply.
@jfbastien@Cor3ntin On constexpr evaluation: a lot of it happens during Sema, at which point ClangIR doesn't exit. But for the ones currently done during CodeGen, we should leverage on generic MLIR passes to solve (and cache) for us.
LLVM Weekly - #443, June 27th 2022. LLVM 14.0.6 released, more CIR discussions, opaque types, ZStandard support, LoongArch codegen, very early Verilog support in clang-format, and more https://t.co/3DoFVsoIQz
@AlisdairMered I'm not super familiar with the contracts proposal but I could see a potential on static components / annotations being leveraged to allow the compiler to make more assumptions and improve diagnostics on top of library usage.
Just sent out a proposal for ClangIR, a new MLIR based IR for Clang. Very excited with the new diagnostics possibilities for C++. Check out the RFC for github links and more information!
https://t.co/41sG0fqt6T
@brunosy just published his proposal to add an MLIR-based Clang IR for C++, for better diagnostics and optimizations. He also released a prototype that he has been working on with some useful use-cases. https://t.co/TqxCn2keXo
@jfbastien@pati_gallardo@Cor3ntin @PeterSommerlad The most creative quote for this I've seen so far (most coming from kids tho). You should be sorry indeed, one shall not talk about it!
It's great to see the work of @mcypark and @brunosy on pattern matching in C++(https://t.co/01PNTlAbAZ) available in compiler explorer (thanks @lenary).
https://t.co/sR1vVYxg49
@lafp There's probably room for further opt once patmat is more broadly used and we can detect some idioms/opportunities out of real code. I can already imagine some cool things we might be able to do with SIMD :)
Experimental implementation of C++ pattern matching (https://t.co/DIZYzsKV9v) is available on Compiler Explorer!
A silly fizz buzz example: https://t.co/axgXd9Vnzo
Thank you to @brunosy for the on-going implementation work and @lenary for the Compiler Explorer deployment.
#cpp
@lafp Good question. I'm not too familiar with Rust's IR codegen, but regular LLVM cond branches for C++ have been enough for the LLVM optimizer to kick-in and eliminate everything I'd expect it too.