User Details
- User Since
- Oct 9 2015, 6:53 AM (390 w, 1 d)
Feb 14 2020
Feb 13 2020
Feb 12 2020
The function @MaskRay suggested does not address the problem with -march= and others, but it does sound good to use that function. I'm also not sure if -L is a feature that is relied upon at the moment by anybody that uses the baremetal driver. For the moment I'll commit this patch, but a single place across drivers that handles the compiler_rt selection mechanism certainly sounds nice.
Feb 11 2020
Added a test for arm-none-eabi selection
Note that the selection mechanism in the Baremetal driver is rather weak. It does not seem to respond on -mthumb, -march and -mcpu options. The cc1 options show a normalized triple, but the sub-architecture suffix of compiler_rt is the argument exactly as typed on the command line. I'm not going to fix that in this patch, but maybe we want to record this problem somewhere, so we dont forget?
Just noticed the comment from Peter asking for clang/test/Driver/arm-compiler-rt.c, I'll add that in a moment.
With updated tests
Feb 3 2020
Dec 6 2019
I've not read this in detail or followed the list, but I wanted to add that I believe it's important that we have some form of public acknowledgement for the people that have reported security vulnerabilities in there as well.
Sep 9 2019
Mar 18 2019
Committed as r356360
Feb 26 2019
Feb 25 2019
Feb 21 2019
Fixed. The bug number in the subject was the correct one.
Feb 18 2019
Mar 28 2018
Mar 27 2018
Follow up patch at https://reviews.llvm.org/D44941
Mar 23 2018
Committed as r328313
Mar 21 2018
Updated the change to take into account f16 types. I cannot test it yet, as f16 seems to be incomplete. I've reported this to SjoerdMeijer already, and he is fixing f16. I am wondering if we can commit this and once f16 constants are actually lowered, update the test as part of that change.
Feb 14 2018
I've raised https://bugs.llvm.org/show_bug.cgi?id=36382 against this. I think the patch to fix it is trivial.
Feb 12 2018
This looks good to me. Thanks
Thanks for the clarification. Looked at the tests and now see what this is doing.
The code looks good to me.
Thanks
On the previous review (D35375), Geoff Berry suggested to do this in DAG Combine, to see if you can do some further combines, and suggested to not limit this to constants: https://reviews.llvm.org/D35375#810045
Jan 26 2018
Code looks well formatted to me, implementation is reasonable to me. It is a bit of a shame that it can't be done in tablegen as the lowering function gets a bit big. But since i128 is not a legal type, I guess this is the best we can get.
Oct 11 2017
Aug 4 2017
Thanks for the hard work. It looks good. Quite an exhaustive list of tests as well.
Aug 2 2017
With the ok of the author, I'll try to get some movement on this work again.
Jul 19 2017
Jul 17 2017
Please make sure that the build directory is not assumed to be present in the root of the source tree. For the rest I'm happy to approve it.
Jul 14 2017
Jul 13 2017
Few inline comments on the dead register pass. I've not looked in detail to the other changes done in this patch.
Jul 11 2017
Good idea to add a little write-up on that utility. Might want to make it more clear that it is about the machine scheduler models. It does not do anything for the Itinerary based schedule models.
Jun 28 2017
Sorry for missing the API comments. Thanks for the fix chapuni :-)
Jun 27 2017
Jun 22 2017
Added Alexander as he seems to have touched clang-tidy recently.
This looks good to me. But since I have never touch this code, I'll wait a bit till accepting this for others to have a say.
Jun 21 2017
OK, it looks good to me now. Thanks.
Jun 19 2017
I'll go ahead and commit this on the grounds that it was already approved and the changes I made were the last nit-picks of @rnk
Jun 15 2017
Found something else.
Sorry, I was too quick. That blacklist is not working properly. Also, it would be good to add some test that show the blacklisting in operation. I just tried an example:
define void @test_atomic_load_add_i32(i32 %offset) nounwind { %old = atomicrmw add i32* @var32, i32 %offset seq_cst ret void }
Which should not use WZR, but still uses it with the latest patch.
Looks good to me.
If you could still add a comment in the source on why you blacklist the instruction in the DeadRegisterDefinitionPass that would be appreciated.
Thanks for the nice patch. Looking forward to the patterns for the more relaxed memory models.
Jun 14 2017
LGTM
Yes please. Something that makes the connection with a constant pool clear would be helpful for people to make that connection later on.
I was about to approve it but, I have 1 little nitpick that I almost missed. Sorry for the dribble feed. It's about the naming of the global.
Jun 13 2017
The execute-only and PIC features cannot be enabled together. You probably should leave that unreachable in lib/Target/ARM/ARMAsmPrinter.cpp in place. You might even add one under the case ARM::CONSTPOOL_ENTRY in that file for good measure.
Jun 9 2017
This patch is definitely not the right approach. The LEA pseudo instruction should never be selected. I had a bit of a closer look and it seems that (ARMWrapper tconstpool) has various patterns that all match to PC relative pseudo instructions. They all should not happen in XO, so maybe this work is a bit more involved then expected. Also, we still have the ConstantIslandPass that is going to assume these constants pools are present in text and will split basic blocks for no good reason.
Jun 8 2017
Rebased onto current HEAD and addressed the comments from Reid.
This refactoring was ready to land some time ago, except for a few small details. It's a shame if we don't commit this refactoring, so with @sanwou01
his agreement, I'm taking over this patch.
This might be a bit more difficult then expected. The code generator assumes the constant pool is PC-rel addressable using ADR at the moment. This is not the case when the constant pool lives in a different section. I should have known, sorry.
Jun 7 2017
Seems like a good start for 8.1-A atomics to me. There are some things that might be improved upon, like supporting weaker orderings. Do you plan on doing that work as well?
Just a few questions inline.
The ARM code generator emits constant pools in a custom way. I believe that is to get them in-line with the code as a constant-pool in .text. But I think that Eli Friedman is right that for this use case it is possible to use the standard LLVM way of emitting them.
Jun 2 2017
Jun 1 2017
May 31 2017
Mar 14 2017
This landed as https://reviews.llvm.org/rL296454 some time ago. Not sure why it was not auto-closed. Closing manually.
Feb 28 2017
Summary from email conversation:
- GAS redefinitions is considered bad style
- Removing the pre-constructed .text/.bss/.data/... sections from MC is a possible better way, although Rafael did not come back if he likes that approach.
Feb 27 2017
Feb 23 2017
To clarify. This patch fixes some cases where:
clang -S file.c -o - | clang -c - -o file.o
is not identical to:
clang -c file.c -o file.o
because the assembly output 'forgets' some of the flags in the output assembly.
Feb 21 2017
Feb 20 2017
Feb 7 2017
Feb 3 2017
Added tests for ARM and Thumb2 without MOVT support and addressed the inline comments.
Jan 25 2017
Hi Phrakar. I think you mean that there are no processor or OS specific flags with textual representation. But yes, SHF_ARM_PURECODE is the first of its kind. Makes me wonder if we are better of not having a textual representation at all for the flag.
Sep 23 2016
Let me elaborate a bit more on the UB of infinite loops. There existing code lists 2 cases of infinite loops triggered by poison:
Sep 19 2016
Sep 16 2016
Jun 9 2016
Hi Rui.
Jun 8 2016
I've tested it and it removes the issue I saw. The following error is gone:
clang-3.9: error: unsupported option '-fsanitize=address' for target 'aarch64-arm-none-eabi’