This repository has been archived by the owner on Jan 7, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Change-Id: Ibb8c0a57e15e0c8ac899fca828b0c2d9c0ff0dbd
- Loading branch information
1 parent
8b33f1d
commit 3d82c83
Showing
1 changed file
with
10 additions
and
15 deletions.
There are no files selected for viewing
25 changes: 10 additions & 15 deletions
25
releases/4.0.0/patches_external/07-Temporarily-disable-the-combination-on-b.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
|