This is an archive of the discontinued LLVM Phabricator instance.

[Utils] Check for generated functions inline if possible
Changes PlannedPublic

Authored by jdoerfert on May 15 2021, 11:31 AM.

Details

Summary

With D83004 we allowed to check for generated functions. However, since
those might be generated in various places we did simply check for all
functions in the end. Furthermore, this prevented us from reusing check
prefixes across run lines. For every run line we checked for all functions
regardless if the functions were equal across prefixes.

To reduce the number of check lines we now allow to reuse them across
run lines. That is, we can have prefixes that span multiple run lines
even when we check for generated functions. This will only reduce the
run lines if we can find a total order of the generated functions
though. The check lines for generated functions are placed in-between
check lines of existing functions or at the end, as necessary.

The IR update script needs adjusts similar to the CC one.

Diff Detail

Event Timeline

jdoerfert created this revision.May 15 2021, 11:31 AM
jdoerfert requested review of this revision.May 15 2021, 11:31 AM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptMay 15 2021, 11:31 AM
ggeorgakoudis added inline comments.May 17 2021, 5:19 PM
clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected
100

The checks for the outlined function are missing?

clang/test/utils/update_cc_test_checks/Inputs/lots-of-generated-funcs.c.lots-of-generated.expected
8

Checks for .ompu_outlined. are missing

47

Checks for .omp_outlined..3 are missing

86

Checks for .omp_outlined..6 are missing

jdoerfert updated this revision to Diff 346030.May 17 2021, 6:23 PM
jdoerfert marked 4 inline comments as done.

Skip duplicates in the line2spell_and_mangled_list as that causes functions to be missed.

clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected
100

Good catch. It turns out functions that showed up in line2spell_and_mangled_list multiple times confused the script. I needed to skip duplicates. Fixed now.

clang/test/utils/update_cc_test_checks/Inputs/lots-of-generated-funcs.c.lots-of-generated.expected
8

same as above :)

jdoerfert planned changes to this revision.EditedMay 19 2021, 7:31 PM

This doesn't work properly yet :(
When I run this on the OpenMP tests I get sometimes a total order where there should be none.