[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-09-30 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv added a comment. > Does this have any significant impact on -fsyntax-only performance? I'm sure there are pathological cases where this hurts perf, but my intuition tells me that we won't get bitten badly by any of them in the real world. It should be a branch per cast + full

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-09-30 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv updated this revision to Diff 222525. george.burgess.iv marked 6 inline comments as done. george.burgess.iv added a comment. Herald added subscribers: llvm-commits, hiraditya. Herald added a project: LLVM. Addressed feedback CHANGES SINCE LAST ACTION https://reviews.llvm.org/

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-09-24 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a subscriber: rsmith. efriedma added a comment. Does this have any significant impact on -fsyntax-only performance? Hopefully @rsmith can take a quick look at the use of ConstantExpr here; I think it's fine, but we don't use ConstantExpr like that elsewhere. Co

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-09-16 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv added a comment. Apologies for the latency of my updates. > Something I ran into when reviewing https://reviews.llvm.org/D62639 is that > on AArch64, for varargs functions, we emit floating-point stores when > noimplicitfloat is specified. That seems fine for -mno-implicit-flo

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-09-16 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv updated this revision to Diff 220416. george.burgess.iv marked 4 inline comments as done. george.burgess.iv added a reviewer: efriedma. george.burgess.iv added a comment. Chatted with Eli offline; updated here to reflect the conclusions of that. Importantly, this patch readds so

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-05-31 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. Something I ran into when reviewing https://reviews.llvm.org/D62639 is that on AArch64, for varargs functions, we emit floating-point stores when noimplicitfloat is specified. That seems fine for -mno-implicit-float, but maybe not for -mgeneral-regs-only? CHANGES SI

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-05-23 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added inline comments. Comment at: clang/lib/Sema/SemaExprCXX.cpp:8003 +!isRValueOfIllegalType(E) && +E->isConstantInitializer(S.getASTContext(), /*ForRef=*/false)) { + resetDiagnosticState(InitialState); george.burgess.iv wrote: > e

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-05-23 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv added a comment. Thanks for the feedback! > With this patch, do we pass the general-regs-only attribute to the backend? > If so, would that be the attribute we'd want to check to emit errors from the > backend from any "accidental" floating-point operations? Yeah, the current

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-05-23 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv updated this revision to Diff 201047. george.burgess.iv marked 10 inline comments as done. george.burgess.iv added a comment. Addressed feedback, modulo the constant foldable comment thread. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D38479/new/ https://reviews.llvm.

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-05-22 Thread Bill Wendling via Phabricator via cfe-commits
void added inline comments. Comment at: clang/include/clang/Basic/LangOptions.def:143 LANGOPT(RelaxedTemplateTemplateArgs, 1, 0, "C++17 relaxed matching of template template arguments") +LANGOPT(GeneralOpsOnly, 1, 0, "Whether to diagnose the use of floating-point or vector

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-05-21 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added inline comments. Comment at: clang/lib/Sema/SemaExprCXX.cpp:7951 + // they don't have to write out memcpy() for simple cases. For that reason, + // it's very limited in what it will detect. + // We don't always lower struct copies to memcpy(); I

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-05-21 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. We don't necessarily need to block the clang changes on the backend error reporting actually being implemented, I guess, if the architecture we want is settled. With this patch, do we pass the general-regs-only attribute to the backend? If so, would that be the attri

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-05-20 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv updated this revision to Diff 200388. george.burgess.iv added a comment. Rebased CHANGES SINCE LAST ACTION https://reviews.llvm.org/D38479/new/ https://reviews.llvm.org/D38479 Files: clang/docs/UsersManual.rst clang/include/clang/Basic/DiagnosticSemaKinds.td clang/inc

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-05-19 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv added a comment. I'm happy to give rebasing it a shot later this week. My recollection of the prior state of this patch was that we wanted some backend work done to double-check that no illegal ops get generated by optimizations and such, since these checks are purely done in

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-05-19 Thread Bill Wendling via Phabricator via cfe-commits
void added a comment. In D38479#1507435 , @phosek wrote: > We (Fuchsia) would like to see this landed as well so we can start using this > in our kernel. I get the feeling that this patch has been abandoned by the author. Would someone like to resurrec

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2019-05-17 Thread Petr Hosek via Phabricator via cfe-commits
phosek added a comment. We (Fuchsia) would like to see this landed as well so we can start using this in our kernel. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D38479/new/ https://reviews.llvm.org/D38479 ___ cfe-commits mailing list cfe-

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2018-11-27 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Bump, this is still listed as a TODO in the Linux kernel that works around the issue. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D38479/new/ https://reviews.llvm.org/D38479 ___ cfe-commits mailing list cf

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2018-04-09 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv updated this revision to Diff 141693. george.burgess.iv added a comment. Rebased https://reviews.llvm.org/D38479 Files: docs/UsersManual.rst include/clang/Basic/DiagnosticSemaKinds.td include/clang/Basic/LangOptions.def include/clang/Driver/CC1Options.td include/clan

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2018-04-09 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv added a comment. Hi! It fell off my radar, but I'm happy to put it back on my queue. :) There's still a few aarch64-specific backend bits I need to fix before this patch should go in. https://reviews.llvm.org/D38479 ___ cfe-commi

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2018-04-06 Thread Bill Wendling via Phabricator via cfe-commits
void added a comment. Hallo! I was wondering what the status of this patch was. :-) https://reviews.llvm.org/D38479 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2017-10-18 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv updated this revision to Diff 119499. george.burgess.iv marked 2 inline comments as done. george.burgess.iv added a comment. Addressed feedback. Thanks! After looking around and internalizing a little bit of how backends in LLVM work, the path forward I have in mind is to basic

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2017-10-18 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv added a comment. > However, the tests cover floating point, but they don't cover vector calls > (arm_neon.h). `#include ` gives me ~12,000 errors, presumably because there are so many functions that take vectors/floats defined in it. The hope was that calling `bar` and `foo`

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2017-10-04 Thread Renato Golin via Phabricator via cfe-commits
rengolin added a comment. In https://reviews.llvm.org/D38479#886587, @efriedma wrote: > 1. We don't correctly ignore inline asm clobbers for registers which aren't > allocatable (https://bugs.llvm.org/show_bug.cgi?id=30792) This looks like a different (but related) issue. That should be fixed

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2017-10-02 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv added a comment. I like the idea of fixing those things, too; I'll start poking them soon. :) Even if we do end up fixing all of that, I still think it would be good to try to diagnose this in the frontend. So, if anyone has comments on this while I'm staring at the aarch64 ba

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2017-10-02 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. As far as I can see, there are three significant issues with the current -mgeneral-regs-only: 1. We don't correctly ignore inline asm clobbers for registers which aren't allocatable (https://bugs.llvm.org/show_bug.cgi?id=30792) 2. We don't diagnose calls which need vec

[PATCH] D38479: Make -mgeneral-regs-only more like GCC's

2017-10-02 Thread George Burgess IV via Phabricator via cfe-commits
george.burgess.iv created this revision. Herald added a subscriber: javed.absar. (Copy/pasting the reviewer list from https://reviews.llvm.org/D26856.) Addresses https://bugs.llvm.org/show_bug.cgi?id=30792 . In GCC, -mgeneral-regs-only emits errors upon trying to emit floating-point or vector op