[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch

2020-11-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: llvm/test/Transforms/Inline/inline_nossp.ll:3 +; RUN: opt -passes='cgscc(inline)' %s -S | FileCheck %s +; RUN: opt -always-inline -o - -S %s | FileCheck %s + nickdesaulniers wrote: > aeubanks wrote: > > nickdesau

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch

2020-11-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Simpler approach: https://reviews.llvm.org/D91816 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87956/new/ https://reviews.llvm.org/D87956 ___ cfe-commits mailing list cf

[PATCH] D90194: [Driver] split LangOptions::SSPOff into SSPOFF and SSPUnspecified

2020-11-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers abandoned this revision. nickdesaulniers added a comment. Prefer: https://reviews.llvm.org/D91816 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D90194/new/ https://reviews.llvm.org/D90194

[PATCH] D90348: [Driver] specify -stack-protector 0 for -fno-stack-protector

2020-11-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers abandoned this revision. nickdesaulniers added a comment. Prefer: https://reviews.llvm.org/D91816 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D90348/new/ https://reviews.llvm.org/D90348

[PATCH] D90896: [Clang][Driver] default to nossp

2020-11-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers abandoned this revision. nickdesaulniers added a comment. Prefer: https://reviews.llvm.org/D91816 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D90896/new/ https://reviews.llvm.org/D90896

[PATCH] D91760: [Driver] Default Generic_GCC aarch64 to use -fasynchronous-unwind-tables

2020-11-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers accepted this revision. nickdesaulniers added a comment. This revision is now accepted and ready to land. Thanks for the heads up, I don't see this being a problem for us, especially since GCC already behaves this way; arch/arm64/Makefile: 55 # Avoid generating .eh_frame* sectio

[PATCH] D91760: [Driver] Default Generic_GCC aarch64 to use -fasynchronous-unwind-tables

2020-11-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Also, built and boot tested an aarch64 defconfig just to be safe. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91760/new/ https://reviews.llvm.org/D91760 ___ cfe-commits

[PATCH] D87956: [WIP][IR] add fn attr for no_stack_protector; prevent inlining ssp into no-ssp

2020-09-29 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. bumping for review Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87956/new/ https://reviews.llvm.org/D87956 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https:

[PATCH] D87956: [WIP][IR] add fn attr for no_stack_protector; prevent inlining ssp into no-ssp

2020-10-13 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: llvm/include/llvm/Bitcode/LLVMBitCodes.h:610 + // TODO: reorder + ATTR_KIND_NO_STACK_PROTECT = 70, ATTR_KIND_STACK_PROTECT = 26, nickdesaulniers wrote: > any comments from reviewers before I go and do a tedi

[PATCH] D87956: [WIP][IR] add fn attr for no_stack_protector; prevent inlining ssp into no-ssp

2020-10-13 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 297967. nickdesaulniers marked 2 inline comments as done. nickdesaulniers added a comment. - address todos and review feedback Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87956/new/ https://reviews.ll

[PATCH] D87956: [WIP][IR] add fn attr for no_stack_protector; prevent inlining ssp into no-ssp

2020-10-13 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 297969. nickdesaulniers added a comment. - add -passes='cgscc(inline)' to inline_nossp.ll Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87956/new/ https://reviews.llvm.org/D87956 Files: clang/include

[PATCH] D87956: [WIP][IR] add fn attr for no_stack_protector; prevent inlining ssp into no-ssp

2020-10-13 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: llvm/docs/BitCodeFormat.rst:953 base 2 of the requested alignment, plus 1 +* bit 40: ``nossp`` ah, I should remove this; this block is legacy encodings which I do not modify. Comment at: l

[PATCH] D87956: [WIP][IR] add fn attr for no_stack_protector; prevent inlining ssp into no-ssp

2020-10-13 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 297970. nickdesaulniers added a comment. - remove modification to docs about legacy fn attr encoding Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87956/new/ https://reviews.llvm.org/D87956 Files: cl

[PATCH] D87279: [clang] Fix handling of physical registers in inline assembly operands.

2020-10-13 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. https://bugs.llvm.org/show_bug.cgi?id=47837 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87279/new/ https://reviews.llvm.org/D87279 ___ cfe-commits mailing list cfe-comm

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. nickdesaulniers added reviewers: rsmith, aaron.ballman. Herald added a project: clang. Herald added a subscriber: cfe-commits. nickdesaulniers requested review of this revision. Clang differs slightly than GCC for the pattern: switch (x) { case 0: ++x

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/Sema/AnalysisBasedWarnings.cpp:1156 + const CFGBlock::AdjacentBlock &Succ = *P->succ_begin(); + const Stmt *Term = B.getTerminatorStmt(); + if (Succ->size() == 0 && Term && isa(Term))

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 306787. nickdesaulniers added a comment. - check the successor's terminator Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91895/new/ https://reviews.llvm.org/D91895 Files: clang/lib/Sema/AnalysisBase

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Testing this on the kernel with `-Wimplicit-fallthrough`, there's some additional cases that are still warning: // mm/vmscan.c 1371 mapping = page_mapping(page);

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. And for `drivers/hid/usbhid/hid-core.c` it looks like multiple labels are modeled as individual blocks in the control flow graph. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91895/new/ https://reviews.llvm.org/D9

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 307217. nickdesaulniers added a comment. - rewrite to handle a few more cases from the Linux kernel Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91895/new/ https://reviews.llvm.org/D91895 Files: cla

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 307218. nickdesaulniers added a comment. - git-clang-format HEAD~ Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91895/new/ https://reviews.llvm.org/D91895 Files: clang/lib/Sema/AnalysisBasedWarnings.

[PATCH] D91895: [Clang] improve -Wimplicit-fallthrough GCC compat

2020-11-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/Sema/AnalysisBasedWarnings.cpp:1102 + return llvm::any_of(B->succs(), + [this](const CFGBlock::AdjacentBlock &Succ) { +if (const CFGBlock *S = Succ.getReachableB

[PATCH] D91895: [Clang] improve -Wimplicit-fallthrough GCC compat

2020-11-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. I'm happy to modify the patch based on feedback from LKML, though switch (x) { case 0: ++x; default: break; } is the important case that's 99% of the differences between GCC and Clang, which should not get removed from this patch. Repos

[PATCH] D91789: [clang-tidy] find/fix unneeded trailing semicolons in macros

2020-12-02 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Hi @trixirt , thanks for the follow up. I think the lint feedback about qualifying `auto` with pointers where applicable would be nice to have. Please make those suggested changes. Should https://reviews.llvm.org/D90180 be abandoned in favor of this patch? Wou

[PATCH] D91789: [clang-tidy] find/fix unneeded trailing semicolons in macros

2020-12-04 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang-tools-extra/clang-tidy/linuxkernel/ExtraSemiCheck.h:37 + std::vector SuspectMacros; + enum ExtraSemiFixerKind FixerKind; + const std::string ExtraSemiFixerKindName; aaron.ballman wrote: > You can drop th

[PATCH] D68410: [AttrDocs] document always_inline

2020-12-04 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 309682. nickdesaulniers marked an inline comment as done. nickdesaulniers added a comment. - rebased, s/Inline/Inlining/ Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D68410/new/ https://reviews.llvm.org

[PATCH] D68410: [AttrDocs] document always_inline

2020-12-04 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Sorry, I should not have waiting this long to update this patch... Comment at: clang/include/clang/Basic/AttrDocs.td:4401 +disabled. Does not guarantee that inline substitution actually occurs. +}]; + let Heading = "always_inline";

[PATCH] D68410: [AttrDocs] document always_inline

2020-12-07 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 309971. nickdesaulniers added a comment. s/MSDN/Microsoft Docs/ Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D68410/new/ https://reviews.llvm.org/D68410 Files: clang/include/clang/Basic/Attr.td cla

[PATCH] D68410: [AttrDocs] document always_inline

2020-12-07 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers marked 4 inline comments as done. nickdesaulniers added a comment. @lebedev.ri would you mind re-reviewing when you have a chance? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D68410/new/ https://reviews.llvm.org/D68410 ___

[PATCH] D90271: [clang][ToolChains] explicitly return LangOptions::StackProtectorMode

2020-12-07 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D90271#2436080 , @SolarAquarion wrote: > You missed a change https://bugs.llvm.org/show_bug.cgi?id=48413 Discussed off thread; Arch Linux has patches on top of their distribution of LLVM. Repository: rG LLVM Githu

[PATCH] D87279: [clang] Fix handling of physical registers in inline assembly operands.

2020-10-16 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers requested changes to this revision. nickdesaulniers added a comment. This revision now requires changes to proceed. Thanks for updating the patch. Please add a test case for the earlyclobber case. In particular, if none of the in-tree tests failed for the initial version of this

[PATCH] D57265: [PM/CC1] Add -f[no-]split-cold-code CC1 options to toggle splitting

2020-10-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. It looks like this caused breakage for us for x86 Linux kernels, too: https://github.com/ClangBuiltLinux/linux/issues/1177. The Linux kernel does not and will not link against libgcc_s/compiler-rt, so optimizations at `-Oz` tend to both produce libcalls that ar

[PATCH] D87279: [clang] Fix handling of physical registers in inline assembly operands.

2020-10-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers accepted this revision. nickdesaulniers added a comment. This revision is now accepted and ready to land. Looks great, thanks! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87279/new/ https://reviews.llvm.org/D87279 ___ cfe-co

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining ssp into nossp

2020-10-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. bumping for review Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87956/new/ https://reviews.llvm.org/D87956 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https:

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining ssp into nossp

2020-10-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 299797. nickdesaulniers marked 3 inline comments as done. nickdesaulniers added a comment. - rebase, use stronger language about mutual exclusion, prefer assert Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.o

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining ssp into nossp

2020-10-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers planned changes to this revision. nickdesaulniers added inline comments. Comment at: llvm/docs/LangRef.rst:1829 + +If a function with the ``nossp`` attribute calls a callee function that has +a stack protector function attribute, such as ``ssp``, ``sspreq`

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining ssp into nossp

2020-10-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: llvm/lib/Transforms/Utils/InlineFunction.cpp:1687 + return InlineResult::failure( + "non-stack-protected caller would inline stack-protected callee"); + nickdesaulniers wrote: > Is there a better wa

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining ssp into nossp

2020-10-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: llvm/lib/Transforms/Utils/InlineFunction.cpp:1687 + return InlineResult::failure( + "non-stack-protected caller would inline stack-protected callee"); + nickdesaulniers wrote: > nickdesaulniers wrot

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining ssp into nossp

2020-10-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 299813. nickdesaulniers added a comment. - handle additional case of ssp caller w/ nossp callee, update docs, add -Rpass-missed=inline test Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87956/new/ http

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining ssp into nossp

2020-10-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added subscribers: jakubjelinek, marxin. nickdesaulniers added a comment. Started a thread with GCC folks (@marxin @jakubjelinek ) on this topic as well: https://lore.kernel.org/linux-toolchains/CAKwvOdnUB-SrPRXEF-oHpPvUfbuRL06Zd7LT9=jjqjs0vh2...@mail.gmail.com/T/#u Repository:

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch

2020-10-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: llvm/lib/IR/Attributes.cpp:1901-1902 + // caller was explicitly annotated as nossp. + if (Caller.hasFnAttribute(Attribute::NoStackProtect)) +return; // If upgrading the SSP attribute, clear out the old SSP Attributes fir

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch

2020-10-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In phab here, it looks like my newly added clang/test/Frontend/optimization-remark-missed-inline-stack-protectors.c fails on windows because I redirect stdout to /dev/null. How does that work for other tests? I see other tests in that dir write to /dev/null.

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch

2020-10-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 300124. nickdesaulniers marked 3 inline comments as done. nickdesaulniers added a comment. This revision is now accepted and ready to land. - rebase, add alwaysinline tests, use expected-remark, improve remarks Repository: rG LLVM Github Monorepo

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch

2020-10-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D87956#2348446 , @void wrote: > Why not just use "expected-error" and the like? Ah, brilliant! Thank you! Will wait to submit until tomorrow morning. Comment at: llvm/docs/BitCodeFormat.rst:1072 +*

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch

2020-10-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. As a follow up, I probably want to make `-fno-stack-protector` sprinkle this new fn attr `nossp` all over everything; that and this should fix our LTO bug with no changes to the source, otherwise we can add `__attribute__((no_stack_protector))` to the source (th

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch

2020-10-23 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGb7926ce6d7a8: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch (authored by nickdesaulniers). Repository: rG LLVM Github Mono

[PATCH] D66492: [Clang][CodeGen] set alias linkage on QualType

2020-10-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D66492#2350947 , @iajbar wrote: > Clang crashes when calling getLLVMLinkageVarDefinition() in > EmitAliasDefinition() when compiling this testcase: > enum a_type { a , b, c}; > typedef enum a_type b_type; > void foo(b_t

[PATCH] D90073: [Clang][CodeGen] fix failed assertion

2020-10-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. nickdesaulniers added reviewers: aaron.ballman, iajbar. Herald added a project: clang. Herald added a subscriber: cfe-commits. nickdesaulniers requested review of this revision. Via bugreport: https://reviews.llvm.org/D66492#2350947 Repository: rG LLVM Gi

[PATCH] D66492: [Clang][CodeGen] set alias linkage on QualType

2020-10-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D66492#2350947 , @iajbar wrote: > Clang crashes when calling getLLVMLinkageVarDefinition() in > EmitAliasDefinition() when compiling this testcase: > enum a_type { a , b, c}; > typedef enum a_type b_type; > void foo(b_t

[PATCH] D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch

2020-10-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. I missed adding to llvm/lib/Bitcode/Reader/BitcodeReader.cpp, so LTO is broken with this fn attribute...todo...fix diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index f8069b93103f..a99d6baa8d9d 100644 --

[PATCH] D90073: [Clang][CodeGen] fix failed assertion

2020-10-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 300733. nickdesaulniers added a comment. - dyn_cast, else Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D90073/new/ https://reviews.llvm.org/D90073 Files: clang/lib/CodeGen/CodeGenModule.cpp clang/t

[PATCH] D90073: [Clang][CodeGen] fix failed assertion

2020-10-26 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGc8f84bd0947d: [Clang][CodeGen] fix failed assertion (authored by nickdesaulniers). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D90194: [Driver] differentiate -stack-protector 0 from being unspecified

2020-10-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. nickdesaulniers added reviewers: void, manojgupta, rnk. Herald added subscribers: cfe-commits, dexonsmith, pengfei. Herald added a project: clang. nickdesaulniers requested review of this revision. Follow up to: 1. commit b7926ce6d7a8

[PATCH] D90194: [Driver] differentiate -stack-protector 0 from being unspecified

2020-10-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. > An alternative approach to consider would be not adding a new enum, and > making -stack-protector ALWAYS be specified when invoking cc1. I did not > quantify the amount of changes to existing tests, but am happy to do so if > reviewers would like. Making `-st

[PATCH] D90180: [clang-tidy] find/fix unneeded semicolon after switch

2020-10-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D90180#2354931 , @njames93 wrote: > Is this not already handled by `-Wextra-semi`. If it isn't I feel like it > should be handled there rather than in clang-tidy That was my initial thought too, but I think the value o

[PATCH] D90271: [clang][ToolChains] explicitly return LangOptions::StackProtectorMode

2020-10-27 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. nickdesaulniers added reviewers: void, rnk, phosek, srhines. Herald added a project: clang. Herald added a subscriber: cfe-commits. nickdesaulniers requested review of this revision. Make the virtual method Toolchain::GetDefaultStackProtectorLevel() return an

[PATCH] D90194: [Driver] differentiate -stack-protector 0 from being unspecified

2020-10-27 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers planned changes to this revision. nickdesaulniers added a comment. I split out the first logical change into https://reviews.llvm.org/D90271. I think I'll rework this to both be rebased, and to not add the new enum value. Repository: rG LLVM Github Monorepo CHANGES SINCE LAS

[PATCH] D90271: [clang][ToolChains] explicitly return LangOptions::StackProtectorMode

2020-10-28 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGcdff3bd93287: [clang][ToolChains] explicitly return LangOptions::StackProtectorMode (authored by nickdesaulniers). Repository: rG LLVM Github Mono

[PATCH] D90194: [Driver] differentiate -stack-protector 0 from being unspecified

2020-10-28 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. > It's trivial to not create a new enum value and always pass -stack-protector > along That was incorrect. Rebasing this on top of D90271 causes 49 test failures, because the diff I posted above didn't actually remove the new

[PATCH] D90194: [Driver] differentiate -stack-protector 0 from being unspecified

2020-10-28 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 301458. nickdesaulniers added a comment. - rebase on D90271 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D90194/new/ https://reviews.llvm.org/D90194 Files: clang/inc

[PATCH] D90348: [Driver] specify -stack-protector 0 for -fno-stack-protector

2020-10-28 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. nickdesaulniers added reviewers: void, manojgupta. Herald added a project: clang. Herald added a subscriber: cfe-commits. nickdesaulniers requested review of this revision. `-fno-stack-protector` now explicitly sets `-stack-protector 0` for the invocation of

[PATCH] D90348: [Driver] specify -stack-protector 0 for -fno-stack-protector

2020-10-28 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Might be nice to add an integration test where `-fno-stack-protector` results in `nossp` function attributes (so `-fno-stack-protector` -> `-stack-protector 0` -> `nossp` fn attrs). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://revi

[PATCH] D90348: [Driver] specify -stack-protector 0 for -fno-stack-protector

2020-10-28 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D90348#2360621 , @nickdesaulniers wrote: > Might be nice to add an integration test where `-fno-stack-protector` results > in `nossp` function attributes (so `-fno-stack-protector` -> > `-stack-protector 0` -> `nossp`

[PATCH] D100919: [AArch64] Support customizing stack protector guard

2021-05-14 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 345587. nickdesaulniers added a comment. Herald added a subscriber: dang. - support up to +/- 4096 non-multiples of 8. We could get crazy with psuedo instructions and register scavenging, but this is really overkill; the very first case of positive m

[PATCH] D102585: [M68k] Support inline asm operands w/ simple constraints

2021-05-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. LGTM but please review the linter warnings. Comment at: clang/lib/Basic/Targets/M68k.cpp:145 case 'd': // data register - case 'f': // floating point register info.setAllowsRegister(); did you mean to drop support for `

[PATCH] D102568: [Driver] Delete -mimplicit-it=

2021-05-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers accepted this revision. nickdesaulniers added a comment. This revision is now accepted and ready to land. Seems fine to me; the only reference in all of Android that looks problematic might be building libaom for windows: https://android.googlesource.com/platform/external/libaom/

[PATCH] D100919: [AArch64] Support customizing stack protector guard

2021-05-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 345949. nickdesaulniers added a comment. - braces, typo fix, add comment about additional approaches Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100919/new/ https://reviews.llvm.org/D100919 Files:

[PATCH] D100919: [AArch64] Support customizing stack protector guard

2021-05-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers marked 3 inline comments as done. nickdesaulniers added inline comments. Comment at: llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:1954 + // than 23760. + // It might be nice to use AArch64::MOVi32imm here, which would get + // expanded in PreSched2

[PATCH] D100919: [AArch64] Support customizing stack protector guard

2021-05-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers marked an inline comment as done. nickdesaulniers added a comment. Appreciate the reviews; ++beers_owed; Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100919/new/ https://reviews.llvm.org/D100919 ___

[PATCH] D100919: [AArch64] Support customizing stack protector guard

2021-05-17 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG0f417789192e: [AArch64] Support customizing stack protector guard (authored by nickdesaulniers). Repository: rG LLVM Github Monorepo CHANGES SINC

[PATCH] D101327: [Clang][Driver] validate sysregs for -mstack-protector-guard-reg=

2021-05-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers abandoned this revision. nickdesaulniers added a comment. I don't plan to land this; I wrote it in case it comes up in code review. llvm's codegen will `report_fatal_error` for garbage sysregs. If it comes up again in the future, this phab review will still exist for reference,

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. nickdesaulniers added reviewers: MaskRay, pcc, xiangzhangllvm. Herald added subscribers: dexonsmith, hiraditya, kristof.beyls. nickdesaulniers requested review of this revision. Herald added projects: clang, LLVM. Herald added subscribers: llvm-commits, cfe-co

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers planned changes to this revision. nickdesaulniers added a comment. Obviously needs work/cleanup, changes to x86, and tests, but posting for early feedback about module level attributes vs function level attributes, or possibly something else. I tested this quickly with thin LTO

[PATCH] D102568: [Driver] Delete -mimplicit-it=

2021-05-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D102568#2768224 , @mstorsjo wrote: > I would request that this commit should be reverted. Sure, @MaskRay would you mind reverting? > But this change did break my build in these places: > https://code.videolan.org/vide

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 346573. nickdesaulniers added a comment. Herald added a subscriber: pengfei. - remove TargetOption members, update tests Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102742/new/ https://reviews.llvm.or

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers planned changes to this revision. nickdesaulniers added inline comments. Comment at: clang/lib/CodeGen/CodeGenModule.cpp:776-783 + if (getCodeGenOpts().StackProtectorGuard != "") +getModule().setStackProtectorGuard(getCodeGenOpts().StackProtectorGuard); + if

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: llvm/include/llvm/IR/Module.h:898 + // enum class StackProtectorGuards { None, TLS, Global, SysReg }; + StringRef getStackProtectorGuard() const; TODO: delete this comment Repository: rG LLVM Github Monor

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 346584. nickdesaulniers added a comment. Herald added a subscriber: dang. - add cc1 test Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102742/new/ https://reviews.llvm.org/D102742 Files: clang/includ

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 346585. nickdesaulniers added a comment. - remove spurious comment Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102742/new/ https://reviews.llvm.org/D102742 Files: clang/include/clang/Driver/Options

[PATCH] D102585: [M68k] Support inline asm operands w/ simple constraints

2021-05-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Looking good @myhsu . Also, I got your LLVM book recently! You'll need to sign it for me at the next llvm conf in person. Comment at: clang/lib/Basic/Targets/M68k.cpp:197-199 +std::string R = std::string("^") + std::string(Constraint, 2);

[PATCH] D102805: [M68k] Allow user to preserve certain registers

2021-05-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Please fix up the linter warnings; LGTM. Comment at: llvm/lib/Target/M68k/M68kRegisterInfo.cpp:137 + // Registers reserved by users + for (size_t Reg = 0; Reg < getNumRegs(); ++Reg) { +if (MF.getSubtarget().isRegisterReservedByUser(Reg)) -

[PATCH] D20401: [Lexer] Don't merge macro args from different macro files

2021-05-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. I know this was sped up slightly in 3339c568c43e4644f02289e5edfc78c860f19c9f, but this change makes `updateConsecutiveMacroArgTokens` the hottest function in clang in a bottom up profile of an entire build of the Linux kernel. It thrashes the one entry LastFile

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 346800. nickdesaulniers added a comment. - fix lints Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102742/new/ https://reviews.llvm.org/D102742 Files: clang/include/clang/Driver/Options.td clang/li

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 347068. nickdesaulniers added a comment. - upgrade module merge strategy to Error Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102742/new/ https://reviews.llvm.org/D102742 Files: clang/include/clang

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D102742#2773954 , @tejohnson wrote: > In D102742#2767569 , > @nickdesaulniers wrote: > >> Obviously needs work/cleanup, changes to x86, and tests, but posting for >> early fee

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D102742#2774562 , @tejohnson wrote: > In D102742#2774185 , > @nickdesaulniers wrote: > >> - upgrade module merge strategy to Error > > Probably want a test using llvm-link or l

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 347113. nickdesaulniers marked 2 inline comments as done. nickdesaulniers added a comment. - doxygen comments, test that module flags aren't emitted without flags Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers planned changes to this revision. nickdesaulniers added a comment. Will work on explicit LTO tests. Comment at: clang/include/clang/Driver/Options.td:3429 HelpText<"Use the given reg for addressing the stack-protector guard">, - MarshallingInfoString, [{"non

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 347124. nickdesaulniers added a comment. Herald added a subscriber: steven_wu. - add llvm/tests/LTO/AArch64/ and test case for module attr mismatch. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102742/n

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: llvm/test/LTO/AArch64/stack-protector-guard-module-attrs.ll:2-5 +; RUN: not llvm-link %t/a.ll %t/b.ll 2>&1 | FileCheck --check-prefix=CHECK-KIND %s +; RUN: not llvm-link %t/c.ll %t/d.ll 2>&1 | FileCheck --check-prefix=CHECK-REG

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/include/clang/Driver/Options.td:3429 HelpText<"Use the given reg for addressing the stack-protector guard">, - MarshallingInfoString, [{"none"}]>; + MarshallingInfoString>; def mfentry : Flag<["-"], "mfentry">, HelpTe

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: llvm/test/LTO/AArch64/stack-protector-guard-module-attrs.ll:2-5 +; RUN: not llvm-link %t/a.ll %t/b.ll 2>&1 | FileCheck --check-prefix=CHECK-KIND %s +; RUN: not llvm-link %t/c.ll %t/d.ll 2>&1 | FileCheck --check-prefix=CHECK-REG

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 347130. nickdesaulniers added a comment. - moved module attr mismatch test to llvm/test/Linker/ Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102742/new/ https://reviews.llvm.org/D102742 Files: clang

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG033138ea452f: [IR] make stack-protector-guard-* flags into module attrs (authored by nickdesaulniers). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102742/n

[PATCH] D102742: [IR] make stack-protector-guard-* flags into module attrs

2021-05-21 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/include/clang/Driver/Options.td:3429 HelpText<"Use the given reg for addressing the stack-protector guard">, - MarshallingInfoString, [{"none"}]>; + MarshallingInfoString>; def mfentry : Flag<["-"], "mfentry">, HelpTe

[PATCH] D103036: [cfe][inline-asm] Support target-specific escaped character in inline asm

2021-05-24 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/include/clang/Basic/TargetInfo.h:1094-1095 + // Replace some escaped characters with another string based on + // target-specific rules + virtual llvm::Optional handleAsmEscapedChar(char C) const { Use

[PATCH] D103036: [cfe][inline-asm] Support target-specific escaped character in inline asm

2021-05-24 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers accepted this revision. nickdesaulniers added a comment. This revision is now accepted and ready to land. LGTM; please fix up minor nits. Thanks for the patch! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103036/new/ https://review

[PATCH] D103048: [IR] make -stack-alignment= into a module attr

2021-05-24 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. nickdesaulniers added reviewers: tejohnson, craig.topper, RKSimon. Herald added subscribers: dexonsmith, pengfei, hiraditya, qcolombet. nickdesaulniers requested review of this revision. Herald added projects: clang, LLVM. Herald added subscribers: llvm-commit

[PATCH] D103048: [IR] make -stack-alignment= into a module attr

2021-06-01 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. bumping for review (or suggestions of additional reviewers) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103048/new/ https://reviews.llvm.org/D103048 ___ cfe-commits mai

[PATCH] D103184: [AArch64] handle -Wa,-march=

2021-06-01 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/test/Driver/aarch64-target-as-march.s:4 + +/// The last -march wins, and is handled before -Wa,march. All the values of -Wa,march options are added. +// RUN: %clang --target=aarch64-linux-gnueabi -### -c -Wa,-march=armv8.1

<    1   2   3   4   5   6   7   8   9   10   >