[clang] [SystemZ] Do not run mbackchain-4.c test without SystemZ target (PR #71678)

2023-11-08 Thread Ilya Leoshkevich via cfe-commits
https://github.com/iii-i closed https://github.com/llvm/llvm-project/pull/71678 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SystemZ] Do not run mbackchain-4.c test without SystemZ target (PR #71678)

2023-11-08 Thread Ilya Leoshkevich via cfe-commits
https://github.com/iii-i created https://github.com/llvm/llvm-project/pull/71678 mbackchain-4.c requires running the backend and causes CI failures when this target is not configured. >From 284f2d4f844a03ece42eb6dbe7c0d889cf1b01e4 Mon Sep 17 00:00:00 2001 From: Ilya Leoshkevich Date: Wed, 8

[clang] [llvm] [SystemZ] Add backchain target-feature (PR #71668)

2023-11-08 Thread Ilya Leoshkevich via cfe-commits
iii-i wrote: This is now causing a CI failure: https://lab.llvm.org/buildbot/#/builders/139/builds/53143 I think I need something like `// REQUIRES: s390x-registered-target` in the new test. I will open a PR with the fix soon. https://github.com/llvm/llvm-project/pull/71668

[llvm] [clang] [SystemZ] Add backchain target-feature (PR #71668)

2023-11-08 Thread Ilya Leoshkevich via cfe-commits
https://github.com/iii-i closed https://github.com/llvm/llvm-project/pull/71668 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang] [SystemZ] Add backchain target-feature (PR #71668)

2023-11-08 Thread Ilya Leoshkevich via cfe-commits
https://github.com/iii-i created https://github.com/llvm/llvm-project/pull/71668 GCC supports building individual functions with backchain using the __attribute__((target("backchain"))) syntax, and Clang should too. Clang translates this into the "target-features"="+backchain" attribute, and

[clang] [clang][CodeGen] Use byval for SystemZ indirect arguments (PR #66404)

2023-09-15 Thread Ilya Leoshkevich via cfe-commits
iii-i wrote: Sorry, I my wording was not precise enough, it is indeed important that we create a copy, and not pass a pointer to the original. Still, what you described matches the s390x ABI: ``` 1.2.2.3. Parameter Area The parameter area shall be allocated by a calling function if some

[clang] [clang][CodeGen] Use byval for SystemZ indirect arguments (PR #66404)

2023-09-15 Thread Ilya Leoshkevich via cfe-commits
iii-i wrote: I don't quite get why can't we use byval here. How is this different from x86_64? Both s390x and x86_64 ABIs require passing large structs via a pointer, why can x86_64 implement this using byval in LLVM and s390x can't? I agree that currently s390x backend does not handle it

[clang] [clang][CodeGen] Use byval for SystemZ indirect arguments (PR #66404)

2023-09-14 Thread Ilya Leoshkevich via cfe-commits
iii-i wrote: There is special byval handling in MSan: ``` void visitCallBase(CallBase , IRBuilder<> ) override { ... for (const auto &[ArgNo, A] : llvm::enumerate(CB.args())) { ... bool IsByVal = CB.paramHasAttr(ArgNo, Attribute::ByVal); ``` If a target does not make use of byval,

[clang] [clang][CodeGen] Use byval for SystemZ indirect arguments (PR #66404)

2023-09-14 Thread Ilya Leoshkevich via cfe-commits
iii-i wrote: I just checked with a few small examples, and while the ABI does not seem to change, the code generation looks broken for tail recursion: ``` $ cat 1.c void baz(long double); void quux(void) { baz((long double)1); } $ ./bin/clang -O3 -S 1.c $ cat 1.s [...] aghi%r15,

[clang] [clang][CodeGen] Use byval for SystemZ indirect arguments (PR #66404)

2023-09-14 Thread Ilya Leoshkevich via cfe-commits
https://github.com/iii-i review_requested https://github.com/llvm/llvm-project/pull/66404 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][CodeGen] Use byval for SystemZ indirect arguments (PR #66404)

2023-09-14 Thread Ilya Leoshkevich via cfe-commits
https://github.com/iii-i created https://github.com/llvm/llvm-project/pull/66404: SystemZ ABI mandates that in order to pass large objects by value, one should be place them on stack and pass the callee a pointer. Currently on LLVM IR level it's impossible to distinguish whether a pointer

[clang] a3e56a8 - [KMSAN] Enable on SystemZ

2023-04-27 Thread Ilya Leoshkevich via cfe-commits
Author: Ilya Leoshkevich Date: 2023-04-27T13:44:54+02:00 New Revision: a3e56a8792ffaf3a3d3538736e1042b8db45ab89 URL: https://github.com/llvm/llvm-project/commit/a3e56a8792ffaf3a3d3538736e1042b8db45ab89 DIFF:

[clang] e34078f - [TSan] Enable SystemZ support

2021-07-15 Thread Ilya Leoshkevich via cfe-commits
Author: Ilya Leoshkevich Date: 2021-07-15T12:18:48+02:00 New Revision: e34078f121a58b503d225cf715d1494117e7948b URL: https://github.com/llvm/llvm-project/commit/e34078f121a58b503d225cf715d1494117e7948b DIFF:

[clang] ccd8b7b - [LSan] Enable for SystemZ

2020-06-16 Thread Ilya Leoshkevich via cfe-commits
Author: Ilya Leoshkevich Date: 2020-06-16T13:45:29+02:00 New Revision: ccd8b7b103470beb79140ecf9d6ccfaddf7fbc11 URL: https://github.com/llvm/llvm-project/commit/ccd8b7b103470beb79140ecf9d6ccfaddf7fbc11 DIFF: