llvm-project/llvm/test/Transforms/PGOProfile
Taewook Oh 923c216da5 [ICP] Do not attempt type matching for variable length arguments.
Summary:
When performing indirect call promotion, current implementation inspects "all" parameters of the callsite and attemps to match with the formal argument type of the callee function. However, it is not possible to find the type for variable length arguments, and the compiler crashes when it attemps to match the type for variable lenght argument.

It seems that the bug is introduced with D40658. Prior to that, the type matching is performed only for the parameters whose ID is less than callee->getFunctionNumParams(). The attached test case will crash without the patch.

Reviewers: mssimpso, davidxl, davide

Reviewed By: mssimpso

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D46026

llvm-svn: 330844
2018-04-25 17:19:21 +00:00
..
Inputs [PGO] Fix branch probability remarks assert 2018-03-27 18:55:56 +00:00
X86
PR28219.ll
branch1.ll [PGO] add MST min edge selection heuristic to ensure non-zero entry count 2017-12-18 17:56:19 +00:00
branch2.ll
comdat_internal.ll
comdat_rename.ll
counter_promo.ll [PGO] add MST min edge selection heuristic to ensure non-zero entry count 2017-12-18 17:56:19 +00:00
counter_promo_exit_merge.ll
counter_promo_mexits.ll
counter_promo_nest.ll
criticaledge.ll
diag_FE_profile.ll
diag_mismatch.ll
diag_no_funcprofdata.ll
diag_no_profile.ll
do-not-instrument.ll
icp_covariant_call_return.ll [ICP] Expose unconditional call promotion interface 2017-12-20 19:26:37 +00:00
icp_covariant_invoke_return.ll [ICP] Expose unconditional call promotion interface 2017-12-20 19:26:37 +00:00
icp_invoke.ll [ICP] Expose unconditional call promotion interface 2017-12-20 19:26:37 +00:00
icp_invoke_nouse.ll [ICP] Expose unconditional call promotion interface 2017-12-20 19:26:37 +00:00
icp_mismatch_msg.ll
icp_sample.ll
icp_vararg.ll [ICP] Expose unconditional call promotion interface 2017-12-20 19:26:37 +00:00
indirect_call_annotation.ll
indirect_call_profile.ll
indirect_call_promotion.ll [ICP] Expose unconditional call promotion interface 2017-12-20 19:26:37 +00:00
indirect_call_promotion_vla.ll [ICP] Do not attempt type matching for variable length arguments. 2018-04-25 17:19:21 +00:00
indirectbr.ll Split IndirectBr critical edges before PGO gen/use passes. 2017-12-12 19:07:43 +00:00
infinite_loop.ll [PGO] Skip counter promotion for infinite loops 2017-11-30 19:16:25 +00:00
infinite_loop_gen.ll [PGO] add MST min edge selection heuristic to ensure non-zero entry count 2017-12-18 17:56:19 +00:00
irreducible.ll Add heuristics for irreducible loop metadata under PGO 2017-11-20 21:03:38 +00:00
landingpad.ll [PGO] add MST min edge selection heuristic to ensure non-zero entry count 2017-12-18 17:56:19 +00:00
large_count_remarks.ll [PGO] Fix branch probability remarks assert 2018-03-27 18:55:56 +00:00
loop1.ll [PGO] add MST min edge selection heuristic to ensure non-zero entry count 2017-12-18 17:56:19 +00:00
loop2.ll [PGO] add MST min edge selection heuristic to ensure non-zero entry count 2017-12-18 17:56:19 +00:00
memcpy.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memop_clone.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memop_size_annotation.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memop_size_from_strlen.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memop_size_opt.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memop_size_opt_zero.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
multiple_hash_profile.ll
noreturncall.ll [PGO] add MST min edge selection heuristic to ensure non-zero entry count 2017-12-18 17:56:19 +00:00
preinline.ll
select1.ll
select2.ll
single_bb.ll
split-indirectbr-critical-edges.ll Split IndirectBr critical edges before PGO gen/use passes. 2017-12-12 19:07:43 +00:00
statics_counter_naming.ll
switch.ll
thinlto_indirect_call_promotion.ll
thinlto_samplepgo_icp.ll
thinlto_samplepgo_icp2.ll [LTO] Make processing of combined module more consistent 2017-12-16 02:10:00 +00:00
thinlto_samplepgo_icp3.ll [ThinLTO] Recommit of import global variables 2018-03-12 10:30:50 +00:00
thinlto_samplepgo_icp_droppeddead.ll [ThinLTO] Remove dead and dropped symbol declarations when possible 2018-02-06 00:43:39 +00:00
unreachable_bb.ll