Hi Hal, I see that you worked on early if conversion and on the isel instruction generation. I found some hotspot in Graph500 where using isel generates a 10% slowdown compared to the traditional solution using branches (this is for POWER8). It appears that using branches is almost always better than using isel for P7 and P8, because of branch prediction — the decision outcome has to be almost completely random for isel to win. I also noticed that isel has a way higher latency for P8 than for A2. I was wondering if you actually measured some improvements using isel on P7? Otherwise, we could only use isel for A2 and disable it for the other subtargets. Please tell me what you think. Thanks, Olivier -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150310/76fa6cb6/attachment.html>
Hi Olivier, I don't recall now what the performance on the P7 looked like, and many other things have changed since then. If you don't see any performance benefit to leaving it on, please feel free to turn it off. -Hal ----- Original Message -----> From: "Olivier H Sallenave" <ohsallen at us.ibm.com> > To: llvmdev at cs.uiuc.edu > Cc: "Hal Finkel" <hfinkel at anl.gov> > Sent: Tuesday, March 10, 2015 5:14:27 PM > Subject: Only use isel on A2 for PPC? > > > > Hi Hal, > > I see that you worked on early if conversion and on the isel > instruction generation. I found some hotspot in Graph500 where using > isel generates a 10% slowdown compared to the traditional solution > using branches (this is for POWER8). It appears that using branches > is almost always better than using isel for P7 and P8, because of > branch prediction — the decision outcome has to be almost completely > random for isel to win. I also noticed that isel has a way higher > latency for P8 than for A2. > > I was wondering if you actually measured some improvements using isel > on P7? Otherwise, we could only use isel for A2 and disable it for > the other subtargets. Please tell me what you think. > > Thanks, > > Olivier-- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory
Olivier, Also, we should leave it enabled for the Freescale cores. -Hal ----- Original Message -----> From: "Olivier H Sallenave" <ohsallen at us.ibm.com> > To: llvmdev at cs.uiuc.edu > Cc: "Hal Finkel" <hfinkel at anl.gov> > Sent: Tuesday, March 10, 2015 5:14:27 PM > Subject: Only use isel on A2 for PPC? > > > > Hi Hal, > > I see that you worked on early if conversion and on the isel > instruction generation. I found some hotspot in Graph500 where using > isel generates a 10% slowdown compared to the traditional solution > using branches (this is for POWER8). It appears that using branches > is almost always better than using isel for P7 and P8, because of > branch prediction — the decision outcome has to be almost completely > random for isel to win. I also noticed that isel has a way higher > latency for P8 than for A2. > > I was wondering if you actually measured some improvements using isel > on P7? Otherwise, we could only use isel for A2 and disable it for > the other subtargets. Please tell me what you think. > > Thanks, > > Olivier-- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory