From 3d82c83bb8908584607b9da3a9dc0472cb9679e3 Mon Sep 17 00:00:00 2001 From: achand7 Date: Thu, 15 Mar 2018 09:36:50 -0700 Subject: [PATCH] Re-prepared patch Change-Id: Ibb8c0a57e15e0c8ac899fca828b0c2d9c0ff0dbd --- ...orarily-disable-the-combination-on-b.patch | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/releases/4.0.0/patches_external/07-Temporarily-disable-the-combination-on-b.patch b/releases/4.0.0/patches_external/07-Temporarily-disable-the-combination-on-b.patch index e05da16..be60b79 100644 --- a/releases/4.0.0/patches_external/07-Temporarily-disable-the-combination-on-b.patch +++ b/releases/4.0.0/patches_external/07-Temporarily-disable-the-combination-on-b.patch @@ -1,30 +1,25 @@ # Description : Temporarily disable the combination on bitcasts through PHI # When Fixed in Open Source : Needed till a cleaner solution is worked out. -# P4V CL : 679800(4.0.0) # Category : Optimization -# Author : hliao -# Open Source Classification : Internal Only # Impact : Performance -# Failing Workload/Commandline : OCL luxmark3 # Notes : Under certain code pattern, that opt creates lots of redundant # PHI nodes which is hard to eliminated or coalesced and hence # increase register pressure significantly. diff -Naur --strip-trailing-cr a/lib/Transforms/InstCombine/InstCombineCasts.cpp b/lib/Transforms/InstCombine/InstCombineCasts.cpp ---- a/lib/Transforms/InstCombine/InstCombineCasts.cpp 2017-10-23 09:53:04.931214744 -0400 -+++ b/lib/Transforms/InstCombine/InstCombineCasts.cpp 2017-10-23 13:38:30.378684858 -0400 -@@ -1886,6 +1886,14 @@ +--- a/lib/Transforms/InstCombine/InstCombineCasts.cpp 2016-12-14 03:57:17.000000000 -0800 ++++ b/lib/Transforms/InstCombine/InstCombineCasts.cpp 2018-03-15 17:56:36.824041000 -0700 +@@ -1886,6 +1886,12 @@ /// All the related PHI nodes can be replaced by new PHI nodes with type A. /// The uses of \p CI can be changed to the new PHI node corresponding to \p PN. Instruction *InstCombiner::optimizeBitCastFromPhi(CastInst &CI, PHINode *PN) { -+ // Temporarily disable optimization of bitcasts through phi as it creates -+ // significant amount of PHI nodes under certain patterns. As IGC has no -+ // general register coalescing, these PHI nodes won't be coalesced. It -+ // results in huge register pressure and slowdown lots of benchmarks -+ // significantly. -+ // https://jira01.devtools.intel.com/browse/IGC-1085 is created to track this -+ // issue. -+ return nullptr; ++ // Temporarily disable optimization of bitcasts through phi as it creates ++ // significant amount of PHI nodes under certain patterns. As IGC has no ++ // general register coalescing, these PHI nodes won't be coalesced. It ++ // results in huge register pressure and slowdown lots of benchmarks ++ // significantly. ++ return nullptr; // BitCast used by Store can be handled in InstCombineLoadStoreAlloca.cpp. if (hasStoreUsersOnly(CI)) return nullptr; +