Skip to content
This repository has been archived by the owner on Jan 7, 2023. It is now read-only.

Commit

Permalink
Re-prepared patch
Browse files Browse the repository at this point in the history
Change-Id: Ibb8c0a57e15e0c8ac899fca828b0c2d9c0ff0dbd
  • Loading branch information
AnupamaChandrasekhar committed Mar 16, 2018
1 parent 8b33f1d commit 3d82c83
Showing 1 changed file with 10 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -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;

0 comments on commit 3d82c83

Please sign in to comment.