Add annotations to testcases that are expected to fail when using certain compilers
Details
- Reviewers
Hahnfeld protze.joachim jlpeyton omalyshe - Commits
- rG633bc4ca994c: [OMPT] Add annotations to testcases that are expected to fail when using…
rL321262: [OMPT] Add annotations to testcases that are expected to fail when using…
rOMP321262: [OMPT] Add annotations to testcases that are expected to fail when using…
Diff Detail
Event Timeline
runtime/test/ompt/misc/control_tool.c | ||
---|---|---|
3 | This works on LLVM's buildbot, so this can't be entirely correct: http://lab.llvm.org:8011/builders/openmp-ompt-gcc-x86_64-linux-debian/builds/14/steps/test-libomp/logs/stdio Why did you want to deactivate this? | |
runtime/test/ompt/worksharing/sections.c | ||
4 | I thought versions 17 and 18 of the Intel Compiler pass in the data to differentiate between sections and loops? |
@omalyshe Which version of icc introduced the ident information for workshare constructs?
runtime/test/ompt/misc/control_tool.c | ||
---|---|---|
3 | Which gcc version does the buildbot use? For me the testcase fails for versions up to 7.2 (I haven't tested more recent versions). |
In that case cancel/cancel_worksharing.c should fail for icc-17, icc-18 too?
runtime/test/ompt/misc/control_tool.c | ||
---|---|---|
3 | GCC 7.2.0, probably the system default in Debian: http://lab.llvm.org:8011/builders/openmp-ompt-gcc-x86_64-linux-debian/builds/16/steps/configure-openmp/logs/stdio Maybe the distribution carries some downstream patches?!? |
No, the ident information was only missing for the worksharing constructs. For cancellation constructs, the compiler generates a call to '__kmpc_cancel(...)' with the correct kind parameter. icc-16 however did not generate the correct call.
runtime/test/ompt/misc/control_tool.c | ||
---|---|---|
3 | The context is this (fixed) issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81687 |
runtime/test/ompt/misc/control_tool.c | ||
---|---|---|
3 | Yes, so the fix has been backported to GCC 5, 6, 7. This has happened after 7.2.0 has been released, but probably Debian tracks a more recent commit (which most distributions do unfortunately). So although I don't like we might need to turn this into an UNSUPPORTED because a passing XFAIL is treated as error :-( |
runtime/test/ompt/misc/control_tool.c | ||
---|---|---|
3 | Yes, the fix has been included in gcc-7.2.0-5 (http://metadata.ftp-master.debian.org/changelogs/main/g/gcc-7/gcc-7_7.2.0-16_changelog) |
runtime/test/ompt/misc/control_tool.c | ||
---|---|---|
3 | So This would affect all tests, that have this line in this patch. |
runtime/test/ompt/misc/control_tool.c | ||
---|---|---|
3 | I think we don't have gcc-7.0 gcc-7.1 at the moment, only gcc-7. And we could possibly get in trouble with the older versions as well because the fix was backported to GCC 5 and 6, too. |
Right, the ident information is needed only to distinguish worksharing constructs. ICC 17.0 will NOT have ident flags implemented; as for 18.0 - probably Update 2 will have it.
So we need to treat compilers with "fixes" in minor versions as UNSUPPORTED because we don't know when distributions will backport patches and what version they give their "patched" compiler. To avoid any hassles with GCC 5 and 6 which might see a maintenance release or not, I'd propose the following:
- For https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81687: UNSUPPORTED: gcc-4, gcc-5, gcc-6, gcc-7, GCC 8 will certainly have the fix
- ident information:
- XFAIL: icc-16, icc-17 (these will not be updated according to @omalyshe), UNSUPPORTED: icc-18 (might get them in update 2), later versions will have the information for sure.
- XFAIL: clang-3, clang-4, clang-5 can stay because the patch was not backported from trunk which will become Clang 6 (I do really hope no downstream distribution will do that on their own)
Thoughts?
runtime/test/ompt/tasks/dependences.c | ||
---|---|---|
3 | btw, this one must be failing for a different reason, unrelated to the problem with labels: http://lab.llvm.org:8011/builders/openmp-ompt-gcc-x86_64-linux-debian/builds/20/steps/test-libomp/logs/FAIL%3A%20libomp%3A%3Adependences.c |
runtime/test/ompt/tasks/dependences.c | ||
---|---|---|
3 | You're right, this testcase also (currently) fails with a fixed compiler. I will publish a fix in another revision. |
Two small things to considers, looks good otherwise.
Maybe we can commit all changes because of the GCC bug separately and add a meaningfull description? (no need to split this revision though)
runtime/test/ompt/cancel/cancel_taskgroup.c | ||
---|---|---|
3 | Please add clang-4.0.0 if this test case triggers the hang on cancellation | |
runtime/test/ompt/tasks/dependences.c | ||
3 | Shouldn't this be UNSUPPORTED as well? |
Please add clang-4.0.0 if this test case triggers the hang on cancellation