File tree Expand file tree Collapse file tree 3 files changed +16
-4
lines changed Expand file tree Collapse file tree 3 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -6900,19 +6900,24 @@ void* gtPinData::getGTPinInfoBuffer(unsigned int &bufferSize)
69006900 gtpin::igc::igc_init_t t;
69016901 std::vector<unsigned char > buffer;
69026902 unsigned int numTokens = 0 ;
6903+ auto stackABI = kernel.fg .getIsStackCallFunc () || kernel.fg .getHasStackCalls ();
69036904 bufferSize = 0 ;
69046905
69056906 memset (&t, 0 , sizeof (t));
69066907
69076908 t.version = gtpin::igc::GTPIN_IGC_INTERFACE_VERSION;
69086909 if (gtpin_init->grf_info )
69096910 {
6910- t.grf_info = 1 ;
6911+ if (!stackABI)
6912+ t.grf_info = 1 ;
69116913 numTokens++;
69126914 }
69136915
69146916 if (gtpin_init->re_ra )
6915- t.re_ra = 1 ;
6917+ {
6918+ if (!stackABI)
6919+ t.re_ra = 1 ;
6920+ }
69166921
69176922 if (gtpin_init->srcline_mapping && kernel.getOptions ()->getOption (vISA_GenerateDebugInfo))
69186923 t.srcline_mapping = 1 ;
Original file line number Diff line number Diff line change @@ -9540,14 +9540,17 @@ int GlobalRA::coloringRegAlloc()
95409540 jitInfo->spillMemUsed =
95419541 (builder.kernel .fg .paramOverflowAreaOffset +
95429542 builder.kernel .fg .paramOverflowAreaSize ) * 16 - globalScratchOffset;
9543+
9544+ // reserve spillMemUsed #bytes before 8kb boundary
9545+ kernel.getGTPinData ()->setScratchNextFree (8 *1024 - (kernel.getGTPinData ()->getGTPinInit () ?
9546+ kernel.getGTPinData ()->getGTPinInit ()->scratch_area_size : 0 ));
95439547 } else {
95449548 jitInfo->spillMemUsed = spillMemUsed;
9549+ kernel.getGTPinData ()->setScratchNextFree (spillMemUsed);
95459550 }
95469551 jitInfo->numGRFSpillFill = GRFSpillFillCount;
95479552 }
95489553
9549- kernel.getGTPinData ()->setScratchNextFree (spillMemUsed);
9550-
95519554 if (builder.getOption (vISA_LocalDeclareSplitInGlobalRA))
95529555 {
95539556 removeSplitDecl ();
Original file line number Diff line number Diff line change @@ -858,6 +858,10 @@ bool Optimizer::isCopyPropProfitable(G4_INST* movInst) const
858858
859859void Optimizer::reRAPostSchedule ()
860860{
861+ // No rera for stackcall functions
862+ if (kernel.fg .getHasStackCalls () || kernel.fg .getIsStackCallFunc ())
863+ return ;
864+
861865 std::vector<Assignment> assignments;
862866 auto finalizerInfo = *builder.getJitInfo ();
863867 auto oldRAType = kernel.getRAType ();
You can’t perform that action at this time.
0 commit comments