User Details
- User Since
- Apr 14 2013, 11:48 AM (518 w, 4 d)
Yesterday
Tue, Mar 21
The 128-bit logic doesn't look quite right to me. I think what should be used there is:
- "r" constraint - GPR register pair
- "f" constraint - FPR register pair if hard-float, error if soft-float
- "v" constraint - single VR if vector support enabled, error otherwise
LGTM, thanks for taking care of s390x!
Fri, Mar 17
I believe the imm32zx6 operand definition is now unused and should be removed as well. Otherwise this LGTM.
Tue, Mar 14
LGTM as well, thanks!
Feb 16 2023
I believe the situation between the __sync and __atomic builtins is a bit different, though. For __atomic, if the compiler cannot prove correct alignment, it will emit a library call. This should always do the correct thing, however may have a performance overhead - which is what the warning says.
Feb 6 2023
Fix by checking this attribute on the current function. Alternatively, one could try the callee first, but this is pointless, since one should not be mixing hardfloat and softfloat code anyway.
Feb 1 2023
LGTM
Jan 31 2023
There are probably other SystemZISD nodes that could go in here, but I am not quite sure how this is supposed to work: It seems to me that some kind of undef/poison value is recognized and at some point a freeze instruction is inserted in the IR. Then the DAGCombiner optimizes it away because there is a target node that now says that it is never undef..? This is contradictory but probably still worthwhile somehow, but I can't quite figure out how..?
These points all look good to me, but shouldn't the __int128 alignment change (https://reviews.llvm.org/D130900) also be mentioned?
Jan 27 2023
Thanks! Minor commit nit inline, otherwise this now LGTM.
Jan 26 2023
Well, with this test case:
typedef __attribute__((vector_size(32))) int v8i32;
Jan 20 2023
Jan 15 2023
Jan 11 2023
Huh. We still get the lr :-( That now seems an inefficiency in the RXSBG optimization pass, so it's not a problem with this patch, which now LGTM. Thanks again!
I was actually thinking of the case
struct arg { char x; v8i32 y; };
With the changes pointed out by @nikic this looks good to me.
Jan 9 2023
I don't think this is quite correct, as we do support 128-bit atomics on properly aligned addresses. In any case, the back-end implements atomic load, store, and cmpxchg for i128. We do not currently implement atomicrmw, but that could be handled in terms of cmpxchg of course. For non-aligned addresses, we do need to fall back to the library routine, however.
Thanks for working on this!
Dec 12 2022
LGTM, thanks!
Dec 9 2022
LGTM, thanks!
Dec 7 2022
Dec 6 2022
See one inline comment, otherwise LGTM now. Thanks!
Dec 5 2022
Nov 23 2022
LGTM, thanks!
Nov 22 2022
Looking into this a bit more, the argument to GET_CCMASK is known to be a boolean value (either 0 or 1), so we don't need to verify that after all, and can just accept truncates in general.
Nov 17 2022
LGTM, thanks!
Nov 8 2022
Nov 4 2022
Nov 2 2022
Nov 1 2022
LGTM, thanks!
Oct 25 2022
LGTM now! Thanks for making those changes.
Oct 24 2022
Oct 19 2022
This fixed the s390x build bot again. Thanks!
This is breaking the mlir-s390x-linux builder (https://lab.llvm.org/buildbot/#/builders/199/builds/11463):
CMake Error at /home/uweigand/sandbox/buildbot/mlir-s390x-linux/llvm-project/mlir/lib/ExecutionEngine/SparseTensor/CMakeLists.txt:12 (add_library): add_library INTERFACE library requires no source arguments.
Oct 18 2022
Oct 17 2022
The SystemZ change is a clear improvement, so that part LGTM. Thanks!
Oct 12 2022
LGTM, thanks!
Oct 5 2022
Sep 22 2022
SystemZ content LGTM. Thanks!
Sep 20 2022
Sorry for the delay, I was traveling last week. Thanks for the use case, it's good to have some validation that the output in this form is actually usable.
Sep 13 2022
This LGTM now, but maybe some of the PowerPC reviewers would like to comment as well. @nemanjai ?
Sep 8 2022
LGTM, thanks!
Sep 7 2022
I think it is correct to implement this in Clang. Note that on SystemZ (another big-endian platform), we also implement this in EmitVAArg. Of course the details are different since we're not using emitVoidPtrVAArg on that platform.
Sep 2 2022
This causes builder failures on s390x to reappear:
https://lab.llvm.org/buildbot/#/builders/199/builds/9247
Aug 29 2022
Aug 26 2022
Can you explain what this is, and where this marked-up assembler could be useful? I see so far only ARM supports that feature, but I don't really understand the point ...
Aug 24 2022
Aug 22 2022
Hi @rriddle , as of commit https://github.com/llvm/llvm-project/commit/93cf0e8a28e8c682f65d3e5c394d1eb169ca09ce the s390x build bot is still red due to "unexpected success":
XPASS: MLIR::invalid-string_section.mlir XPASS: MLIR::invalid_attr_type_offset_section.mlir XPASS: MLIR::invalid_attr_type_section.mlir XPASS: MLIR::invalid-structure.mlir XPASS: MLIR::invalid-ir_section.mlir XPASS: MLIR::invalid-dialect_section.mlir
(see https://lab.llvm.org/buildbot/#/builders/199/builds/8674)
Aug 4 2022
It seems that SPEC builds identically both for z15 and zEC12, which is promising.
Aug 3 2022
LGTM, thanks!
Jul 27 2022
Jul 18 2022
IMO the fun2 regression probably shouldn't block the patch from being merged. I've looked into the sequences, and actually neither of them is even close to optimal.
Jul 15 2022
LGTM, thanks!
The s390x code path should likely follow suit, but I don't have the
hardware to be able to test that, so I didn't modify it here either.
Given Anton's comment, and since nobody else objected, I'm going to approve this. It is indeed a nice improvement for our backend. LGTM.
Jul 14 2022
LGTM, thanks!
Jul 13 2022
LGTM, thanks!
Jul 12 2022
SystemZ mlir builder is now back to green. Of course, the underlying issue still needs to be fixed to we can remove the XFAIL again.
I've now committed both changes in separate commits. Thanks!
Jul 11 2022
We have to fix the alignment tag for real, otherwise there will be failing assertions all over the place. With that fix in, there's still a failing test case - that one could indeed be XFAILed for now.
Jul 8 2022
This commit has broken the mlir builder on s390x-ibm-linux: https://lab.llvm.org/buildbot/#/builders/199/builds/6417
Jun 30 2022
LGTM, thanks!
Jun 29 2022
Jun 13 2022
Jun 12 2022
Jun 10 2022
LGTM
Add test case.
FYI @nemanjai
From a SystemZ perspective this looks good to me (and a clear readability enhancement). I'd still like to hear comments from other backend maintainers whether this common tablegen feature might be useful to them as well ...
From a SystemZ perspective this looks good to me.