Skip to content

Commit 3b14b0c

Browse files
JIT: Enable compaction of all BBJ_ALWAYS blocks (#103785)
1 parent 7fe3451 commit 3b14b0c

File tree

7 files changed

+167
-236
lines changed

7 files changed

+167
-236
lines changed

src/coreclr/jit/block.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ enum BasicBlockFlags : uint64_t
468468
// Flags to update when two blocks are compacted
469469

470470
BBF_COMPACT_UPD = BBF_GC_SAFE_POINT | BBF_NEEDS_GCPOLL | BBF_HAS_JMP | BBF_HAS_IDX_LEN | BBF_HAS_MD_IDX_LEN | BBF_BACKWARD_JUMP | \
471-
BBF_HAS_NEWOBJ | BBF_HAS_NULLCHECK | BBF_HAS_MDARRAYREF,
471+
BBF_HAS_NEWOBJ | BBF_HAS_NULLCHECK | BBF_HAS_MDARRAYREF | BBF_LOOP_HEAD,
472472

473473
// Flags a block should not have had before it is split.
474474

src/coreclr/jit/compiler.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -6088,9 +6088,9 @@ class Compiler
60886088

60896089
void fgPrepareCallFinallyRetForRemoval(BasicBlock* block);
60906090

6091-
bool fgCanCompactBlocks(BasicBlock* block, BasicBlock* bNext);
6091+
bool fgCanCompactBlock(BasicBlock* block);
60926092

6093-
void fgCompactBlocks(BasicBlock* block, BasicBlock* bNext DEBUGARG(bool doDebugCheck = true));
6093+
void fgCompactBlock(BasicBlock* block);
60946094

60956095
BasicBlock* fgConnectFallThrough(BasicBlock* bSrc, BasicBlock* bDst);
60966096

@@ -6159,7 +6159,7 @@ class Compiler
61596159

61606160
bool fgIsForwardBranch(BasicBlock* bJump, BasicBlock* bDest, BasicBlock* bSrc = nullptr);
61616161

6162-
bool fgUpdateFlowGraph(bool doTailDup = false, bool isPhase = false);
6162+
bool fgUpdateFlowGraph(bool doTailDup = false, bool isPhase = false, bool doAggressiveCompaction = true);
61636163
PhaseStatus fgUpdateFlowGraphPhase();
61646164

61656165
PhaseStatus fgDfsBlocksAndRemove();

src/coreclr/jit/fgdiagnostic.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ void Compiler::fgDebugCheckUpdate()
139139

140140
/* no un-compacted blocks */
141141

142-
if (fgCanCompactBlocks(block, block->Next()))
142+
if (fgCanCompactBlock(block))
143143
{
144144
noway_assert(!"Found un-compacted blocks!");
145145
}

0 commit comments

Comments
 (0)