[PATCH] Handle some cases of mismatched types in IRCE

Sanjoy Das sanjoy at playingwithpointers.com
Sat Jan 24 12:57:38 PST 2015


> I understood your motivation, I just don't understand the code ;) -- why does calling forgetLoop(L) not clear the cache of backedge counts for loop L?

AFAICT it does, but only if NDEBUG is #defined and VerifyIndVars is
true.  In other words, SimplifyIndVars has the "correct" behavior in
debug mode when run with '-verify-indvars'.

So one way to fix the problem is to just unconditionally call
SE->forgetLoop() after running indvars.  But I am not sure if
SE->forgetLoop() is too big of a hammer when all I need is to adjust
the type of the backedge taken count.

-- Sanjoy



More information about the llvm-commits mailing list