I don&#x27;t think it is a bug against LLVM: there are basically two way of doing this: either you extend LLVM with more intrinsic or concept that carry your high-level semantics to the LLVM level (this is what people from Azul are doing [0]) or build an other intermediate representation like Swift and Rust. For the swift case, you can see the talk at last year LLVM Dev Meeting [1]. There are advantages and drawback to each approaches.<p>[0] : &quot;LLVM for a managed language: what we&#x27;ve learned&quot; 
[1] : &quot;Swift&#x27;s High-Level IR: A Case Study of Complementing LLVM IR with Language-Specific Optimization&quot;
Both have slides and video here: <a href="http:&#x2F;&#x2F;llvm.org&#x2F;devmtg&#x2F;2015-10&#x2F;" rel="nofollow">http:&#x2F;&#x2F;llvm.org&#x2F;devmtg&#x2F;2015-10&#x2F;</a>