From 4722b28a3ea6d290803931fb1d1907d729014572 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 16 Jul 2014 16:27:31 +0000 Subject: [PATCH] Added documentation for SizeMultiplier in the ARM subtarget hook for register coalescing. Also fixed some 80 col violations. No functional code changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213169 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMSubtarget.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp index ea9e2b84c19..e605b86d7c9 100644 --- a/lib/Target/ARM/ARMSubtarget.cpp +++ b/lib/Target/ARM/ARMSubtarget.cpp @@ -476,8 +476,17 @@ bool ARMSubtarget::shouldCoalesce(MachineInstr *MI, auto AFI = MF->getInfo(); auto It = AFI->getCoalescedWeight(MBB); - DEBUG(dbgs() << "\tARM::shouldCoalesce - Coalesced Weight: " << It->second << "\n"); - DEBUG(dbgs() << "\tARM::shouldCoalesce - Reg Weight: " << NewRCWeight.RegWeight << "\n"); + DEBUG(dbgs() << "\tARM::shouldCoalesce - Coalesced Weight: " + << It->second << "\n"); + DEBUG(dbgs() << "\tARM::shouldCoalesce - Reg Weight: " + << NewRCWeight.RegWeight << "\n"); + + // This number is the largest round number that which meets the criteria: + // (1) addresses PR18825 + // (2) generates better code in some test cases (like vldm-shed-a9.ll) + // (3) Doesn't regress any test cases (in-tree, test-suite, and SPEC) + // In practice the SizeMultiplier will only factor in for straight line code + // that uses a lot of NEON vectors, which isn't terribly common. unsigned SizeMultiplier = MBB->size()/100; SizeMultiplier = SizeMultiplier ? SizeMultiplier : 1; if (It->second < NewRCWeight.WeightLimit * SizeMultiplier) { -- 2.34.1