[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: https://github.com/llvm/llvm-project/commit/ccd8b7b103470beb79140ecf9d6ccfaddf7fbc11.di

[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 t

[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

[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 ___

[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 No

[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] 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: https://github.com/llvm/llvm-project/commit/e34078f121a58b503d225cf715d1494117e7948b.di

[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 argu

[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
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
iii-i wrote: There is special byval handling in MSan: ``` void visitCallBase(CallBase &CB, IRBuilder<> &IRB) 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 b

[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 prop

[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 param

[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: https://github.com/llvm/llvm-project/commit/a3e56a8792ffaf3a3d3538736e1042b8db45ab89.di

[clang] [llvm] Revert changes in AddDefaultGCCPrefixes() for SystemZTriples. (PR #94729)

2024-07-03 Thread Ilya Leoshkevich via cfe-commits
iii-i wrote: Looking at the code, this is because `Generic_GCC::GCCInstallationDetector::init()` will not try to strip any vendor except `unknown`. This will in turn cause `s390x-ibm-linux-gnu` to not detect GCC installation with prefix `s390x-linux-gnu`, which Debian and Ubuntu have. On the

[clang] [llvm] Revert changes in AddDefaultGCCPrefixes() for SystemZTriples. (PR #94729)

2024-06-12 Thread Ilya Leoshkevich via cfe-commits
iii-i wrote: This is still failing for me on Debian. The problem seems to be that `/etc/lsb-release` does not exist. There are ``` # cat /etc/os-release PRETTY_NAME="Debian GNU/Linux bookworm/sid" NAME="Debian GNU/Linux" VERSION_CODENAME=bookworm ID=debian HOME_URL="https://www.debian.org/"; SU