llvm-project/llvm/test/Transforms/PGOProfile
Amy Kwan 150681f2f3 [PowerPC] Prevent the optimizer from producing wide vector types in IR.
This patch prevents the optimizer from producing wide vectors in the IR,
specifically the MMA types (v256i1, v512i1). The idea is that on Power, we only
want to be producing these types only if the vector_pair and vector_quad types
are used specifically.

To prevent the optimizer from producing these types in the IR,
vectorCostAdjustmentFactor() is updated to return an instruction cost factor or
an invalid instruction cost if the current type is that of an MMA type. An
invalid instruction cost returned by this function signifies to other cost
computing functions to return the maximum instruction cost to inform the
optimizer that producing these types within the IR is expensive, and should not
be produced in the first place.

This issue was first seen in the test case included within this patch.

Differential Revision: https://reviews.llvm.org/D113900
2021-11-25 12:35:26 -06:00
..
Inputs [CSPGO] Fix lost IRPGOFlag in CSPGO instrumentation 2021-08-24 09:41:29 -07:00
X86
PR28219.ll
PR41279.ll
PR41279_2.ll
bfi_verification.ll [PGO] Use the sum of profile counts to fix the function entry count 2020-12-16 13:37:43 -08:00
branch1.ll
branch2.ll
callbr.ll
chr.ll [SimplifyCFG] Don't speculatively execute BB[s] if they are predictably not taken 2021-07-26 02:55:15 +03:00
comdat.ll [InstrProfiling] Keep profd non-private for non-renamable comdat functions 2021-08-24 20:14:03 -07:00
comdat_internal.ll [InstrProfiling] Make CountersPtr in __profd_ relative 2021-07-30 11:52:18 -07:00
comdat_rename.ll
consecutive-zeros.ll [LTO] Fix test failures caused by 6da7d31416 2021-02-23 14:58:30 -08:00
counter_promo.ll [InstrProfiling] Use ELF section groups for counters, data and values 2021-02-22 14:00:02 -08:00
counter_promo_exit_catchswitch.ll [InstrProf] Use i32 for GEP index from lowering llvm.instrprof.increment 2021-11-19 15:45:14 -08:00
counter_promo_exit_merge.ll
counter_promo_mexits.ll [InstrProfiling] Use ELF section groups for counters, data and values 2021-02-22 14:00:02 -08:00
counter_promo_nest-inseltpoison.ll Precommit transform tests that have poison as insertelement's placeholder 2020-12-24 11:46:17 +09:00
counter_promo_nest.ll
criticaledge.ll
cspgo_profile_summary.ll [SimplifyCFG] Rerun PHI deduplication after common code sinkinkg (PR51092) 2021-07-15 16:34:34 +03:00
diag_FE_profile.ll
diag_mismatch.ll [llvm-profdata] Make diagnostics consistent with the (no capitalization, no period) style 2021-06-19 14:54:25 -07:00
diag_no_funcprofdata.ll [llvm-profdata] Make diagnostics consistent with the (no capitalization, no period) style 2021-06-19 14:54:25 -07:00
diag_no_profile.ll
diag_no_value_sites.ll
do-not-instrument.ll
fix_bfi.ll [PGO] Use the sum of profile counts to fix the function entry count 2020-12-16 13:37:43 -08:00
fix_entry_count.ll
func_entry.ll
hash_mismatch_metadata.ll Emit metadata when instr. profiles hash mismatch occurs. 2021-01-29 12:56:01 -08:00
icp_covariant_call_return.ll
icp_covariant_invoke_return.ll
icp_invoke.ll
icp_invoke_nouse.ll
icp_mismatch_msg.ll
icp_sample.ll
icp_vararg.ll
icp_vararg_sret.ll
indirect_call_annotation.ll
indirect_call_profile.ll [InstrProfiling] Make CountersPtr in __profd_ relative 2021-07-30 11:52:18 -07:00
indirect_call_profile_funclet.ll
indirect_call_promotion.ll
indirect_call_promotion_byval.ll
indirect_call_promotion_musttail.ll
indirect_call_promotion_unique.ll [IndirectCallPromotion] Recommit "Don't strip ".__uniq." suffix when it strips 2021-03-12 13:48:14 -08:00
indirect_call_promotion_vla.ll
indirectbr.ll
infinite_loop.ll
infinite_loop_gen.ll
instr_entry_bb.ll [InstrProf] Use i32 for GEP index from lowering llvm.instrprof.increment 2021-11-19 15:45:14 -08:00
irreducible.ll
landingpad.ll
large_count_remarks.ll
loop1.ll
loop2.ll
lto_cspgo_gen.ll [CSPGO] Fix lost IRPGOFlag in CSPGO instrumentation 2021-08-24 09:41:29 -07:00
memcpy.ll [InstrProfiling] Make CountersPtr in __profd_ relative 2021-07-30 11:52:18 -07:00
memop_clone.ll
memop_hash.ll
memop_profile_funclet.ll
memop_size_annotation.ll
memop_size_from_strlen.ll
memop_size_opt.ll [PGO] Fix two issues in PGOMemOPSizeOpt. 2021-03-11 09:53:05 -08:00
memop_size_opt_skip_ranges_promote_three.ll [PGO] Fix two issues in PGOMemOPSizeOpt. 2021-03-11 09:53:05 -08:00
memop_size_opt_zero.ll
mismatched-byval.ll [CallPromotion] Check for inalloca/byval mismatch 2021-08-13 16:52:04 -07:00
mismatched-inalloca.ll [CallPromotion] Check for inalloca/byval mismatch 2021-08-13 16:52:04 -07:00
multiple_hash_profile.ll
noprofile.ll Support for instrumenting only selected files or functions 2021-01-26 17:13:34 -08:00
noreturncall.ll
not_promote_ret_exit.ll
ppc-prevent-mma-types.ll [PowerPC] Prevent the optimizer from producing wide vector types in IR. 2021-11-25 12:35:26 -06:00
preinline.ll
remap.ll
select1.ll
select2.ll
select_hash_conflict.ll
single_bb.ll
split-indirectbr-critical-edges.ll
statics_counter_naming.ll
suppl-profile.ll
switch.ll
thinlto_cspgo_gen.ll [CSPGO] Fix lost IRPGOFlag in CSPGO instrumentation 2021-08-24 09:41:29 -07:00
thinlto_cspgo_use.ll [Passes] Run sinking/hoisting in SimplifyCFG earlier. 2021-04-30 12:23:57 +01:00
thinlto_indirect_call_promotion.ll
thinlto_samplepgo_icp.ll
thinlto_samplepgo_icp2.ll
thinlto_samplepgo_icp3.ll
thinlto_samplepgo_icp_droppeddead.ll
unreachable_bb.ll