How to track down a bad llvm optimization pass

Dan Olson via digitalmars-d-ldc digitalmars-d-ldc at
Tue Jun 21 12:41:59 PDT 2016

On Tuesday, 21 June 2016 at 07:00:35 UTC, Joakim wrote:
> On Tuesday, 21 June 2016 at 05:51:56 UTC, Joakim wrote:
>> On Monday, 20 June 2016 at 20:15:52 UTC, Rainer Schuetze wrote:
>>> On 19.06.2016 08:58, Joakim wrote:
>>>> [...]
>>> If it fails in a specific optimization pass, it has already 
>>> passed a number of verification passes. When I posted some 
>>> bug reports, the LLVM people (who have been very helpful) 
>>> considered it an LLVM bug if an invalid IR passes the 
>>> verifier. So even if some assumptions are broken, I would 
>>> suggest to report to the LLVM bug tracker.
>> OK, will do.  I think the fact that the exact same ldc 
>> frontend linked with llvm 3.7.1 doesn't have this problem, 
>> only when linked against llvm 3.8.0, indicates this most 
>> likely isn't a problem on our end.
> Filed:

Hmmm.  I looked at failing code in std.conv.  I think it does a 
negative shift, which is undefined in C.  It is the opSlice() 

More information about the digitalmars-d-ldc mailing list