@@ -3710,6 +3710,22 @@ int regAlloc(IR_Builder& builder, PhyRegPool& regPool, G4_Kernel& kernel)
37103710 }
37113711 }
37123712
3713+ if (builder.getOption (vISA_DumpDotAll))
3714+ {
3715+ kernel.dumpDotFile (" PreRegAlloc" );
3716+ }
3717+
3718+ kernel.fg .callerSaveAreaOffset = kernel.fg .calleeSaveAreaOffset = kernel.fg .paramOverflowAreaOffset =
3719+ kernel.fg .paramOverflowAreaSize = 0 ;
3720+
3721+ // This must be done before Points-to analysis as it may modify CFG and add new BB!
3722+ if (kernel.fg .getHasStackCalls () || kernel.fg .getIsStackCallFunc ())
3723+ {
3724+ kernel.fg .setABIForStackCallFunctionCalls ();
3725+ kernel.fg .addFrameSetupDeclares (builder, regPool);
3726+ kernel.fg .NormalizeFlowGraph ();
3727+ }
3728+
37133729 kernel.fg .reassignBlockIDs ();
37143730
37153731 if (kernel.getOptions ()->getTarget () == VISA_3D)
@@ -3728,23 +3744,6 @@ int regAlloc(IR_Builder& builder, PhyRegPool& regPool, G4_Kernel& kernel)
37283744 DEBUG_VERBOSE (std::endl);
37293745 }
37303746#endif
3731-
3732- }
3733-
3734- if (builder.getOption (vISA_DumpDotAll))
3735- {
3736- kernel.dumpDotFile (" PreRegAlloc" );
3737- }
3738-
3739- kernel.fg .callerSaveAreaOffset = kernel.fg .calleeSaveAreaOffset = kernel.fg .paramOverflowAreaOffset =
3740- kernel.fg .paramOverflowAreaSize = 0 ;
3741-
3742- // This must be done before Points-to analysis as it may modify CFG and add new BB!
3743- if (kernel.fg .getHasStackCalls () || kernel.fg .getIsStackCallFunc ())
3744- {
3745- kernel.fg .setABIForStackCallFunctionCalls ();
3746- kernel.fg .addFrameSetupDeclares (builder, regPool);
3747- kernel.fg .NormalizeFlowGraph ();
37483747 }
37493748
37503749 //
0 commit comments