[PATCH] Handle some cases of mismatched types in IRCE
Hal Finkel
hfinkel at anl.gov
Sat Jan 24 13:11:07 PST 2015
----- Original Message -----
> From: "Sanjoy Das" <sanjoy at playingwithpointers.com>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "Philip Reames" <listmail at philipreames.com>, "Commit Messages and Patches for LLVM" <llvm-commits at cs.uiuc.edu>,
> reviews+D7082+public+8b032afab4f8a3be at reviews.llvm.org
> Sent: Saturday, January 24, 2015 2:57:38 PM
> Subject: Re: [PATCH] Handle some cases of mismatched types in IRCE
>
> > 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'.
Ack; I see --- that's also bad. NDEBUG should not cause behavioral changes like that.
>
> 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.
Hrmm. Maybe we need a forgetBackedgeCounts(L) function?
-Hal
>
> -- Sanjoy
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the llvm-commits
mailing list