User Details
- User Since
- Apr 29 2020, 6:48 PM (112 w, 3 d)
May 20 2022
LGTM
May 11 2022
May 6 2022
Or even use clang to generate LLVM IR ahead of time...
This may not be a good idea for the feature of _BitInt() , which aims to offering more optimization opportunities for IR like i256, i257, i512... @erichkeane
Apr 7 2022
LGTM. Will you update the backend libcall?
Mar 21 2022
To be honest, I'm not familiar in compiler-rt component. And my experience before was mainly to find out the feasibility to support arbitrary-bits-division for _BitInt(). Fortunately, my proposal was basically same as this one: emit a new libcall in backend; add library support; use malloc()... And I even used a more simple division algorithm model: sub-shift, which has been shared in the RFC link. So my experience before may not be very helpful here. Anyway I can try my best. So everyone is OK with use malloc(), right? That was my biggest concern. BTW FYI the largest _BitInt() support is 8,388,608 . Hi @mgehre-amd Will you upload another patch to set the bitint.a as a default link library of clang when this patch gets landed in? I believe FE will reopen _BitInt() > 128 bit unless division is supported by default but not by option --rtlib=compiler-rt. @erichkeane @aaron.ballman
Jan 5 2022
All right. I'll commit then.
Thank you both! Your speculating is right! That's the original motivation for this patch.
Jan 3 2022
ping...
Dec 27 2021
Why would TLI be involved in that test. Isn't the sqrt call converted to llvm.sqrt by the frontend?
Dec 19 2021
For example this patch can fix such performance drop on Linux:
Dec 15 2021
CodeGenPasses is a legacy pass manager here. For now. llc.cpp has not switched to the new pass manager. llc.cpp does add this pass. And many passes in codegen need a right TargetLibraryInfo. If not adding it here with the module's triple info. TargetLibraryInfo will be initialized with a null string. That results in setting many library calls unavailable, as conservative as possible. I think it's not reasonable. Welcome discuss! Welcome adding more reviewers.
Dec 13 2021
agree with @pengfei . sorry for noise.
clang-format
changed into unsigned short
Dec 12 2021
Nov 17 2021
Nov 16 2021
convertion -> conversion.
Nov 14 2021
After reading the whole logic, I'll judge this as not a defect. Since TypePromotion::isSupportedValue() has checked before codes here. ReturnInst's operand won't be null. So getReturnValue() here won't return Null. I'll close this PR, sorry for the noise.
Ping.
Nov 8 2021
address comments. add alias for 36 intrinsics in all.
Nov 7 2021
Thx for review. I found I missed many intrinsics, including _fcmul_* series. they need to be aliased with cmul_*. pls wait for update.
Ping.
Nov 3 2021
changed into assert()
Besides, I didn't find difference between StoreInst and ReturnInst, why only warn here?
The difference is Store->getValueOperand() doesn't return a nullptr but Return->getValueOperand() does.
Oct 31 2021
clang-formats.
Oct 28 2021
Oct 14 2021
Yes. It's highly related to the ProcessorFeatures I mentioned above. Does the library changes refer to the compiler-rt/cpu_model.c? I think that change depends on libgcc. For now libgcc has no strong will to update that table.
As mentioned before:
Oct 13 2021
Oct 11 2021
Address comments.
Oct 8 2021
Address part of comments. Thanks for review.
Address comments.
Address comments.
Oct 7 2021
add {{$}}. add comments at first line.
Sorry for late response. Thanks for your comments, @DavidSpickett !
Sep 30 2021
In principle I agree but did you have this failure mode actually happen?
No failure happens for now, but may happen in the future if we continue to use -SAME. Pls read the example I gave in last comment.
Sep 29 2021
I found the old way cannot verify if there are some extra outputs between two different CHECK-SAME. So I changed to CHECK-NEXT. But it will introduce bad format issue. Anyway, the old way has broken clang-format already. So I would prefer the CHECK-NEXT. WDYT?
clean test.
This patch is to align with gcc's behavior on __builtin_thread_pointer () on Linux. Example output of gcc: https://godbolt.org/z/9oTTW53qe
Related bugzilla of gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96200, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96955
Sep 27 2021
LGTM.
LGTM.
Sep 26 2021
Refine tests.
nfc refine.
Thanks for review! Addressed comments.
Sep 23 2021
Example reproduce: https://gcc.godbolt.org/z/czrY74sxv