llvm-project/llvm/lib/CodeGen/GlobalISel
Amara Emerson 03bce0bf4e [GlobalISel][Localizer] Don't localize phi operands which are used more than once in the phi.
The current algorithm just tries to localize defs as far as they can go, and in
the case of G_PHI operands, it clones the def into the predecessor block for
each incoming edge. When multiple edges have the same register value, this can
cause unnecessary code bloat, and inhibit later optimizations.

This change checks if a given phi operand is unique in the phi, if not the
def of that register is not localized to the predecessor.

Differential Revision: https://reviews.llvm.org/D95406
2021-01-25 17:48:04 -08:00
..
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
CSEInfo.cpp [GISel]: Fix one more CSE Non determinism 2020-08-27 09:06:21 -07:00
CSEMIRBuilder.cpp [llvm] Use llvm::all_of (NFC) 2021-01-06 18:27:36 -08:00
CallLowering.cpp AArch64/GlobalISel: Factor out parametersInCSRMatch 2021-01-21 10:32:48 -05:00
Combiner.cpp [GlobalISel] fix a compilation error with gcc 6.3.0 2020-08-28 09:16:52 -07:00
CombinerHelper.cpp Fix buildbot after cfc6073017 2021-01-19 10:38:04 -08:00
GISelChangeObserver.cpp GlobalISel: Use Register 2020-08-19 13:45:31 -04:00
GISelKnownBits.cpp [Analysis,CodeGen] Make use of KnownBits::makeConstant. NFC. 2021-01-14 14:02:43 +00:00
GlobalISel.cpp
IRTranslator.cpp [GlobalISel] Base implementation for sret demotion. 2021-01-06 10:30:50 +05:30
InlineAsmLowering.cpp [GlobalISel][InlineAsm] Fix matching input constraint to physreg 2020-08-06 14:35:51 +02:00
InstructionSelect.cpp [llvm] Remove redundant string initialization (NFC) 2021-01-12 21:43:46 -08:00
InstructionSelector.cpp [GlobalISel] Add missing operand update when copy is required 2021-01-20 10:32:52 +01:00
LegalityPredicates.cpp [CodeGen, Transforms] Use llvm::any_of (NFC) 2020-12-24 09:08:36 -08:00
LegalizeMutations.cpp GlobalISel: Add scalarSameSizeAs LegalizeRule 2020-07-23 21:17:31 -04:00
Legalizer.cpp GlobalISel: Improve dead instruction debug printing 2020-08-24 10:12:00 -04:00
LegalizerHelper.cpp Revert "Revert "[GlobalISel] LegalizerHelper - Extract widenScalarAddoSubo method"" 2021-01-25 16:22:22 -08:00
LegalizerInfo.cpp GlobalISel: Assert if MoreElements uses a non-vector type 2020-09-30 10:36:00 -04:00
Localizer.cpp [GlobalISel][Localizer] Don't localize phi operands which are used more than once in the phi. 2021-01-25 17:48:04 -08:00
LostDebugLocObserver.cpp Give helpers internal linkage. NFC. 2020-04-25 11:50:52 +02:00
MachineIRBuilder.cpp [llvm] Use llvm::all_of (NFC) 2021-01-06 18:27:36 -08:00
RegBankSelect.cpp [GlobalISel][InlineAsm] Add support for basic output operand constraints 2020-05-06 10:06:13 +02:00
RegisterBank.cpp Revert "[TableGen][GlobalISel] Account for HwMode in RegisterBank register sizes" 2020-03-20 11:02:50 +01:00
RegisterBankInfo.cpp [CodeGen] Use llvm::append_range (NFC) 2021-01-21 19:59:46 -08:00
Utils.cpp [AMDGPU][GlobalISel] Avoid selecting S_PACK with constants 2021-01-20 11:54:53 +01:00