[PATCH] D128649: [clang-cl] Accept a pragma alloc_text corner case accepted by MSVC

2022-06-27 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. MSVC's pragma alloc_text accepts a function that was redeclared in a non extern-C context if the previous declaration was

[PATCH] D128649: [clang-cl] Accept a pragma alloc_text corner case accepted by MSVC

2022-06-27 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. This does make us accept, but MSVC doesn't: static void f(); extern "C" { static void f(); } #pragma alloc_text(c, f); static void f() {} MSVC and GCC fail with an error for conflicting declaration. GCC: https://godbolt.org/z/Tavvx88E4 MSVC: https://godbol

[PATCH] D128649: [clang-cl] Accept a pragma alloc_text corner case accepted by MSVC

2022-06-27 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 440268. steplong added a comment. - Use `getCanonicalDecl()`. This does make us reject (MSVC rejects it already because of conflicting declarations): static void f(); extern "C" { static void f(); } static void f() {} - Error if not function decl

[PATCH] D128649: [clang-cl] Handle some pragma alloc_text corner cases handled by MSVC

2022-06-27 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. > Isn't the question whether `f` is considered "extern C" in the end or not? I > thought `isExternC()` checks that? Are you saying it would return false for > `f` in your example? Yup, `isExternC()` is returning false for that case because there's "static". > I'm prob

[PATCH] D128649: [clang-cl] Handle some pragma alloc_text corner cases handled by MSVC

2022-06-27 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 440344. steplong added a comment. - Error for c also Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D128649/new/ https://reviews.llvm.org/D128649 Files: clang/include/clang/Basic/DiagnosticSemaKinds.td clan

[PATCH] D128649: [clang-cl] Handle some pragma alloc_text corner cases handled by MSVC

2022-06-28 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 440618. steplong added a comment. - Rework logic for rejecting non-functions and non-extern C functions when C++ Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D128649/new/ https://reviews.llvm.org/D128649 File

[PATCH] D128649: [clang-cl] Handle some pragma alloc_text corner cases handled by MSVC

2022-06-29 Thread Stephen Long 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 rGf382545b2ba8: [clang-cl] Handle some pragma alloc_text corner cases handled by MSVC (authored by steplong). Repository: rG LLVM Github Monorepo C

[PATCH] D127641: [clang-cl][MSVC] Enable /Zc:alignedNew for C++17 and /Zc:sizedDealloc by default

2022-08-01 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 449140. steplong added a comment. Herald added a subscriber: steakhal. - Change unittest to match Num Args 1 or 2 I won't merge this. Just want to see if this passes the unittest Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://re

[PATCH] D127641: [clang-cl][MSVC] Enable /Zc:alignedNew for C++17 and /Zc:sizedDealloc by default

2022-08-02 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 449303. steplong added a comment. - Add necessary includes to use EXPECT_THAT and MatchesRegex Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127641/new/ https://reviews.llvm.org/D127641 Files: clang-tools-e

[PATCH] D124026: [Headers][MSVC] Define wchar_t in stddef.h like MSVC if not using the builtin type

2022-04-19 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. steplong added reviewers: rnk, efriedma. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. MSVC expects wchar_t to be defined in stddef.h if /Zc:wchar_t- is specified Rep

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-04-29 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. steplong added reviewers: gchatelet, aaron.ballman, courbet, rsmith. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Support for `__attribute__((no_builtin("foo")))` was

[PATCH] D124702: [MSVC] Add support for pragma function

2022-04-29 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. steplong added reviewers: rnk, rsmith, whunt, hans, thakis. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. MSVC pragma function tells the compiler to generate calls to f

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-02 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. In D124701#3485317 , @hans wrote: > If I understand correctly, D68028 made it > so that LLVM doesn't add any builtin calls (e.g. turning for-loops into > memcpy), but Clang could still turn cal

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-02 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 426400. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124701/new/ https://reviews.llvm.org/D124701 Files: clang/lib/CodeGen/CGExpr.cpp clang/test/CodeGen/no-builtin-2.c Index: clang/test/CodeGen/no-builti

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-02 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. In D124702#3485475 , @hans wrote: > From the MS docs: > >> Once a function pragma is seen, it takes effect at the first function >> definition that contains a specified intrinsic function. The effect >> continues to the end of

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-02 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 426433. steplong edited the summary of this revision. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124702/new/ https://reviews.llvm.org/D124702 Files: clang/include/clang/Parse/Parser.h clang/include/clang

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-03 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 426700. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124701/new/ https://reviews.llvm.org/D124701 Files: clang/lib/CodeGen/CGExpr.cpp clang/test/CodeGen/no-builtin-2.c Index: clang/test/CodeGen/no-builti

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-03 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 426702. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124702/new/ https://reviews.llvm.org/D124702 Files: clang/include/clang/Parse/Parser.h clang/include/clang/Sema/Sema.h clang/lib/Parse/ParsePragma.cpp

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-03 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 426795. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124701/new/ https://reviews.llvm.org/D124701 Files: clang/lib/CodeGen/CGExpr.cpp clang/test/CodeGen/no-builtin-2.c Index: clang/test/CodeGen/no-builti

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-03 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 426802. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124702/new/ https://reviews.llvm.org/D124702 Files: clang/include/clang/Parse/Parser.h clang/include/clang/Sema/Sema.h clang/lib/Parse/ParsePragma.cpp

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-04 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 426998. steplong added a comment. Removed unnecessary braces (mentioned in the LLVM coding standard) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124702/new/ https://reviews.llvm.org/D124702 Files: clang/i

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-04 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 427040. steplong added a comment. Changed std::vector to llvm::SmallVector Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124702/new/ https://reviews.llvm.org/D124702 Files: clang/include/clang/Parse/Parser.

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-04 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/lib/Parse/ParsePragma.cpp:3561 << "intrinsic"; return; } hans wrote: > since the above is just a warning, we should probably still call the ActOn.. > method? Hmm, I'm not sure because all the msg

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-04 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/lib/CodeGen/CGExpr.cpp:5219 +// function. +else if (!CGF.CurFn->getAttributes().hasFnAttr(AttributeNoBuiltin)) return CGCallee::forBuiltin(builtinID, FD); hans wrote: > What if CurFn has the "wildca

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-04 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 427127. steplong added a comment. Error if pragma function/intrinsic is used inside a function Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124702/new/ https://reviews.llvm.org/D124702 Files: clang/include

[PATCH] D125011: [MSVC] Add support for pragma alloc_text

2022-05-05 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. `#pragma alloc_text` is a MSVC pragma that names the code section where functions should be placed. It only applies to fu

[PATCH] D125011: [MSVC] Add support for pragma alloc_text

2022-05-05 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 427329. steplong added reviewers: rnk, aaron.ballman, hans. steplong added a comment. Update patch to error out if a function is not C linkage. Not sure how to check if a function has been declared Repository: rG LLVM Github Monorepo CHANGES SINCE LAST

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-06 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. In D124702#3496534 , @hans wrote: > It needs tests for the warnings about badly formed pragmas, and for pragmas > outside file/namespace scope. Appreciate the comments. I have a couple of questions: Is the tests for badly form

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-06 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/lib/Sema/SemaAttr.cpp:1079 + MSFunctionNoBuiltins.insert(MSFunctionNoBuiltins.end(), + NoBuiltins.begin(), NoBuiltins.end()); +} hans wrote: > steplong wrote: > > hans wrote: > > > Do

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-06 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 427716. steplong added a reviewer: aaron.ballman. steplong added a comment. Changed it to use SmallSetVector instead of SmallVector. Had to use an temporary SmallVector in AddRangeBasedNoBuiltin() because I'm not sure how to get a pointer to StringRef. getA

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-06 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 427741. steplong added a comment. Update patch to accept __attribute__((no_builtin("*")). It adds no-builtins to the function attributes, but it still doesn't affect the calls. The calls in the function still become builtin calls. Repository: rG LLVM Gi

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-09 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 428195. steplong added a comment. clang-formatted patch CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124701/new/ https://reviews.llvm.org/D124701 Files: clang/lib/CodeGen/CGExpr.cpp clang/lib/Sema/SemaDeclAttr.cpp clang/test/CodeGen/no-buil

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-10 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/lib/Parse/ParsePragma.cpp:3578 + + if (Tok.isNot(tok::l_paren)) { +PP.Diag(Tok.getLocation(), diag::warn_pragma_expected_lparen) aaron.ballman wrote: > Can we use `ExpectAndConsume()` here instead? I don't th

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-10 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 428375. steplong edited the summary of this revision. steplong added a comment. - Clang-formatted patch - Split out the pragma intrinsic stuff - Replaced SmallSetVector in pragma handler with SmallVector. MSNoBuiltins is still a SmallSetVector in Sema. - Com

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-10 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/lib/Sema/SemaAttr.cpp:1070 +SourceLocation Loc, const llvm::SmallSetVector &Intrinsics) { + if (!CurContext->getRedeclContext()->isFileContext()) { +Diag(Loc, diag::err_pragma_intrinsic_function_scope); a

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-10 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/lib/Sema/SemaAttr.cpp:1070 +SourceLocation Loc, const llvm::SmallSetVector &Intrinsics) { + if (!CurContext->getRedeclContext()->isFileContext()) { +Diag(Loc, diag::err_pragma_intrinsic_function_scope); a

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-10 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 428456. steplong added a comment. - Changed pragma-ms-functions.c to only check that the no-builtin attributes are added to the functions - Moved pragma handler to Parser - Changed scope check to only file scope. MSVC accepts stuff like that we don't: str

[PATCH] D125011: [MSVC] Add support for pragma alloc_text

2022-05-10 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 428536. steplong added a comment. - Added Sema tests - Added checking of c linkage - Changed some parsing logic in the parser handler e.g #pragma alloc_text(a, foo without the right paren is only a warning Repository: rG LLVM Github Monorepo CHANGES SI

[PATCH] D125011: [MSVC] Add support for pragma alloc_text

2022-05-11 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/test/Sema/pragma-ms-alloc-text.cpp:5 +#pragma alloc_text(a// expected-warning {{expected ',' in '#pragma alloc_text'}} +#pragma alloc_text(a, a // expected-warning {{missing ')' after '#pragma alloc_text'}} expected-

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-11 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 428657. steplong added a comment. - Renamed `AddRangeBasedNoBuiltin` to `AddImplicitMSFunctionNoBuiltinAttr` - Renamed `err_pragma_intrinsic_function_scope` to `err_pragma_expected_file_scope` - Added comment about MSVC accepting struct test - Removed `->get

[PATCH] D125011: [MSVC] Add support for pragma alloc_text

2022-05-11 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 428727. steplong added a comment. - Reject `#pragma alloc_text(a, a` - On Line 1180, I didn't use `ExpectAndConsume()` there because I wanted to accept both identifiers and strings (i.e `pragma alloc_text(a, foo)` and `pragma alloc_text("a", foo)` - It look

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-11 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/test/Preprocessor/pragma_microsoft.c:210 +#pragma function(main) // expected-warning {{'main' is not a recognized builtin; consider including }} +#pragma function(// expected-warning {{mi

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-12 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 428941. steplong added a comment. - Added test case for the `getRedeclContext()` case - Brought back `getRedeclContext()` - Clang-formatted - Added description in docs Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.o

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-12 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 428970. steplong edited the summary of this revision. steplong added a comment. - Added `isPredefinedLibFunction()` check - Added testcase for __attribute__((no_builtin("*"))) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://review

[PATCH] D124026: [Headers][MSVC] Define wchar_t in stddef.h like MSVC if not using the builtin type

2022-05-12 Thread Stephen Long via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG7f9837cfa636: [Headers][MSVC] Define wchar_t in stddef.h like MSVC if not using the builtin… (authored by steplong). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-12 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 428981. steplong added a comment. - Updated line in docs Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124702/new/ https://reviews.llvm.org/D124702 Files: clang/docs/ReleaseNotes.rst clang/include/clang/B

[PATCH] D125011: [MSVC] Add support for pragma alloc_text

2022-05-12 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 429000. steplong added a comment. - Added description in release notes - Fixed up some comments in Sema.h Will merge once build passes Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125011/new/ https://reviews

[PATCH] D124702: [MSVC] Add support for pragma function

2022-05-13 Thread Stephen Long via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG3946de0456fc: [MSVC] Add support for pragma function (authored by steplong). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124702/new/ https://reviews.llvm.

[PATCH] D125011: [MSVC] Add support for pragma alloc_text

2022-05-13 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 429261. steplong added a comment. - Rebased patch Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125011/new/ https://reviews.llvm.org/D125011 Files: clang/docs/ReleaseNotes.rst clang/include/clang/Basic/Di

[PATCH] D125011: [MSVC] Add support for pragma alloc_text

2022-05-13 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 429320. steplong added a comment. - Clang-formatted. It didn't like the empty line before the bracket in clang/test/CodeGen/msvc_pragma_alloc_text.cpp Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125011/new/

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-16 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 429703. steplong added a comment. - Update documentation Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124701/new/ https://reviews.llvm.org/D124701 Files: clang/docs/ReleaseNotes.rst clang/include/clang/B

[PATCH] D125011: [MSVC] Add support for pragma alloc_text

2022-05-16 Thread Stephen Long via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGb147717bb36c: [MSVC] Add support for pragma alloc_text (authored by steplong). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125011/new/ https://reviews.llv

[PATCH] D125719: [Attribute] Add attribute NeverOptimizeNone

2022-05-16 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added a reviewer: aaron.ballman. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Add NeverOptimizeNone to facilitate removing OptimizeNone. This allows us to remov

[PATCH] D125720: [Attribute] Add clang frame_pointer attribute

2022-05-16 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added a reviewer: aaron.ballman. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Add the ability to put __attribute__((frame_pointer(arg))) on functions. arg is on

[PATCH] D125722: [Attribute] Add clang optsize attribute

2022-05-16 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added a reviewer: aaron.ballman. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Add the ability to put `__attribute__((optsize))` on functions. Depends on D12572

[PATCH] D125723: [MSVC] Add support for MSVC pragma optimize

2022-05-16 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. MSVC's pragma optimize turns optimizations on or off based on the list passed. Depends on D125722

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-17 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/test/CodeGen/no-builtin-2.c:51 +// CHECK: {{.*}}call {{.*}} @memmove +void foo4(char *s, char *d, size_t n) __attribute__((no_builtin("*"))) { + bar(s); hans wrote: > In AttrDocs.td it says the wildcard case is

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-17 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 430060. steplong added a comment. - Removed `__attribute__((no_builtin("*")))` from test - Remove the logic that accepted `__attribute__((no_builtin("*")))` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124701/

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-18 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 430365. steplong added a comment. - Fixed comment about __attribute__((no_builtin)) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124701/new/ https://reviews.llvm.org/D124701 Files: clang/docs/ReleaseNotes.

[PATCH] D126023: [MSVC, ARM64] Add __writex18 intrinsics

2022-05-19 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added a subscriber: kristof.beyls. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. https://docs.microsoft.com/en-us/cpp/intrinsics/arm64-intrinsics?view=msvc-170

[PATCH] D126023: [MSVC, ARM64] Add __writex18 intrinsics

2022-05-19 Thread Stephen Long via Phabricator via cfe-commits
steplong added reviewers: hans, rnk, efriedma, thakis, mstorsjo. steplong added a comment. The generated assembly is a little different from MSVC's: MSVC LLVM __writex18byte: strbw1, [x18

[PATCH] D126024: [MSVC, ARM64] Add __readx18 intrinsics

2022-05-19 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added a subscriber: kristof.beyls. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. https://docs.microsoft.com/en-us/cpp/intrinsics/arm64-intrinsics?view=msvc-170

[PATCH] D126024: [MSVC, ARM64] Add __readx18 intrinsics

2022-05-19 Thread Stephen Long via Phabricator via cfe-commits
steplong added reviewers: hans, mstorsjo, rnk, efriedma, thakis. steplong added a comment. Like D126023 , the generated assembly for MSVC is slightly different: MSVC LLVM __readx18byte

[PATCH] D126023: [MSVC, ARM64] Add __writex18 intrinsics

2022-05-19 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 430831. steplong added a comment. - Rebased it on top of main instead of D126024 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126023/new/ https://reviews.llvm.org/D126023

[PATCH] D124701: [clang] Honor __attribute__((no_builtin("foo"))) on functions

2022-05-20 Thread Stephen Long via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGae80024fbe51: [clang] Honor __attribute__((no_builtin("foo"))) on functions (authored by steplong). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124701/new

[PATCH] D126023: [MSVC, ARM64] Add __writex18 intrinsics

2022-05-20 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 430979. steplong added a comment. The assembly for LLVM now looks like: __writex18byte: strbw1, [x18, w0, uxtw] ret __writex18word: strhw1, [x18, w0, uxtw]

[PATCH] D126024: [MSVC, ARM64] Add __readx18 intrinsics

2022-05-20 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 430994. steplong added a comment. The assembly for LLVM is now: __readx18byte: ldrbw0, [x18, w0, uxtw] __readx18word: ldrhw0, [x18, w0, uxtw] __readx18dword: ldr w0, [x18, w0, uxtw] __readx18qword: ldr

[PATCH] D126023: [MSVC, ARM64] Add __writex18 intrinsics

2022-05-20 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. In D126023#3528077 , @rnk wrote: > I was unable to find any documentation for the meaning of AArch64 > addrspace(256), and I wasn't able to figure it out after studying the code in > llvm/lib/Target/AArch64 for ten minutes or s

[PATCH] D126024: [MSVC, ARM64] Add __readx18 intrinsics

2022-05-20 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 431011. steplong added a comment. - Change addrspace(256) to the default addrspace 0 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126024/new/ https://reviews.llvm.org/D126024 Files: clang/include/clang/Bas

[PATCH] D126023: [MSVC, ARM64] Add __writex18 intrinsics

2022-05-20 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 431013. steplong added a comment. - Changed addrspace(256) to the default addrspace 0 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126023/new/ https://reviews.llvm.org/D126023 Files: clang/include/clang/Ba

[PATCH] D126023: [MSVC, ARM64] Add __writex18 intrinsics

2022-05-20 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 431019. steplong added a comment. - Switch to `CharUnits::One()` instead of `getContext().getTypeInChars()` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126023/new/ https://reviews.llvm.org/D126023 Files:

[PATCH] D126024: [MSVC, ARM64] Add __readx18 intrinsics

2022-05-20 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 431021. steplong added a comment. - Use `CharUnits::One()` instead of `getTypeAlignInChars()` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126024/new/ https://reviews.llvm.org/D126024 Files: clang/include/

[PATCH] D126023: [MSVC, ARM64] Add __writex18 intrinsics

2022-05-23 Thread Stephen Long via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG3e0be5610ff0: [MSVC, ARM64] Add __writex18 intrinsics (authored by steplong). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126023/new/ https://reviews.llvm

[PATCH] D126024: [MSVC, ARM64] Add __readx18 intrinsics

2022-05-23 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 431392. steplong added a comment. - Rebased patch on top of main Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126024/new/ https://reviews.llvm.org/D126024 Files: clang/include/clang/Basic/BuiltinsAArch64.d

[PATCH] D126024: [MSVC, ARM64] Add __readx18 intrinsics

2022-05-23 Thread Stephen Long via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG4f1e64b54f59: [MSVC, ARM64] Add __readx18 intrinsics (authored by steplong). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126024/new/ https://reviews.llvm.

[PATCH] D93428: [AArch64] Add bti note property when compiling asm files with -mbranch-protection=bti

2020-12-16 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added subscribers: danielkiss, kristof.beyls. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Generate the .note.gnu.property section with GNU_PROPERTY_AARCH64_FEATURE_1_BTI when compiling ass

[PATCH] D93428: [AArch64] Add bti note property when compiling asm files with -mbranch-protection=bti

2020-12-17 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. In D93428#2460032 , @danielkiss wrote: > The `.note.gnu.property` is already generated when C/C++ files are compiled > with `-mbranch-protection=bti`. > `-mmark-bti-property` is only for assembly file where the > `.note.gnu.pr

[PATCH] D127641: [clang-cl][MSVC] Enable /Zc:alignedNew for C++17 and /Zc:sizedDealloc by default

2022-08-11 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 452062. steplong added a comment. - Change (1|2) to [12]. Test is failing because () isn't supported Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127641/new/ https://reviews.llvm.org/D127641 Files: clang-t

[PATCH] D127641: [clang-cl][MSVC] Enable /Zc:alignedNew for C++17 and /Zc:sizedDealloc by default

2022-08-15 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 452655. steplong added a comment. - Update unit test to see if this regex works Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127641/new/ https://reviews.llvm.org/D127641 Files: clang-tools-extra/test/clang

[PATCH] D127641: [clang-cl][MSVC] Enable /Zc:alignedNew for C++17 and /Zc:sizedDealloc by default

2022-08-15 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/lib/Driver/ToolChains/Clang.cpp:6649 + } else if (IsCPP17Onwards) { +CmdArgs.push_back("-faligned-allocation"); } thakis wrote: > Do we want to do this in the driver? From what I understand, we already do

[PATCH] D127641: [clang-cl][MSVC] Enable /Zc:alignedNew for C++17 and /Zc:sizedDealloc by default

2022-08-15 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 452757. steplong added a comment. - Clang-format test The regex isn't optimal since it will still accept strings that aren't "Num Args: 1\n" or "Num Args: 2\n" such as "Num Args: \n2\n" Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION ht

[PATCH] D127641: [clang-cl][MSVC] Enable /Zc:alignedNew for C++17 and /Zc:sizedDealloc by default

2022-08-18 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. @thakis @hans What do you both think of the latest version? I would like to get this merged Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127641/new/ https://reviews.llvm.org/D127641 _

[PATCH] D126984: [clang] Add initial support for gcc's optimize function attribute

2022-06-10 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. In D126984#3571573 , @aeubanks wrote: > IIRC in the past there was a strong preference to not have the pass manager > support this sort of thing > if you want to support this, there should be an RFC for how the optimization > p

[PATCH] D126984: [clang] Add initial support for gcc's optimize function attribute

2022-06-10 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. In D126984#3574077 , @aeubanks wrote: > In D126984#3574046 , @aaron.ballman > wrote: > >> In D126984#3571573 , @aeubanks >> wrote: >> >>> IIRC

[PATCH] D127519: [clang-cl] Accept /FA[c][s][u], but ignore the arguments

2022-06-10 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added a project: All. steplong requested review of this revision. Herald added subscribers: cfe-commits, MaskRay. Herald added a project: clang. Previously, /FAsc would emit a warning. Now, it will just do what /FA does. https://docs.microsoft.com/en-us/cpp/

[PATCH] D127519: [clang-cl] Accept /FA[c][s][u], but ignore the arguments

2022-06-10 Thread Stephen Long via Phabricator via cfe-commits
steplong added reviewers: rnk, hans. steplong added a comment. I'm not sure which test file to modify and how to test this. I do see it generating the `.asm` file now when I pass `/FAsc`, not the `.codd` file though since we are ignoring the `c` argument. Repository: rG LLVM Github Monorepo

[PATCH] D126984: [clang] Add initial support for gcc's optimize function attribute

2022-06-10 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/test/CodeGen/attr-optimize.c:4 + +__attribute__((optimize("O0"))) void f1(void) {} +// O2: @f1{{.*}}[[ATTR_OPTNONE:#[0-9]+]] xbolva00 wrote: > No support for > ``` > __attribute__ ((__optimize__ (0))) > ``` > >

[PATCH] D127452: [clang-cl][MSVC] Map /external:Wn n=1-4 to -Wsystem-headers

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. Hmm do you know how I can restart the pre-merge checks? It looks like the x64 debian openmp tests failed. I don't think this patch is related, but I want to make sure Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127452/n

[PATCH] D127641: [clang-cl][MSVC] Add default /Zc conformance arguments

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added a project: All. steplong requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This patch doesn't turn on all the "on by default" /Zc arguments, but this should be a good enough starting point. https:

[PATCH] D127641: [clang-cl][MSVC] Add default /Zc conformance arguments

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong added reviewers: rnk, hans, thakis. steplong added a comment. I'm not sure how to check for `/std:` at this stage to turn on arguments like `/Zc:alignedNew` Comment at: clang/test/Driver/cl-zc.cpp:98 // thread safe statics are off for versions < 19. // RUN: %clang_c

[PATCH] D127452: [clang-cl][MSVC] Map /external:Wn n=1-4 to -Wsystem-headers

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 436394. steplong added a comment. - Rebase patch Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127452/new/ https://reviews.llvm.org/D127452 Files: clang/include/clang/Driver/Options.td clang/test/Driver/c

[PATCH] D127519: [clang-cl] Accept /FA[c][s][u], but ignore the arguments

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 436436. steplong added a comment. - Removed SLASH_FA_joined and made SLASH_FA a CLJoined - Add some /FAcsu tests. Just copies of /FA tests, but passing /FAcsu Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D12751

[PATCH] D126984: [clang] Add initial support for gcc's optimize function attribute

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 436443. steplong added a comment. - Add llvm::Attribute::MinSize when OptimizeAttr::Oz - Add test for checking minsize Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126984/new/ https://reviews.llvm.org/D126984

[PATCH] D125723: [MSVC] Add support for MSVC pragma optimize

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 436476. steplong added a comment. - Parse the string in the pragma - Some of the tests should fail. I'll fix them up once D126984 looks good Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://revie

[PATCH] D125723: [MSVC] Add support for MSVC pragma optimize

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong added inline comments. Comment at: clang/include/clang/Sema/Sema.h:768 + /// (i.e. `ModifyFnAttributeMSPragmaOptimze()` does nothing) + bool MSPragmaOptimizeIsOn = true; + This might be confusing. `ModifyFnAttributeMSPragmaOptimize()` adds optnone to

[PATCH] D126984: [clang] Add initial support for gcc's optimize function attribute

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. >> and even for the MSVC pragma `#pragma optimize("t", on)`, what are we >> supporting if the user compiles their code with `-O0`? because right now we >> won't optimize anything with `-O0` > > @steplong -- what are your thoughts on this? Hmm, I think I'm ok with ignor

[PATCH] D127452: [clang-cl][MSVC] Map /external:Wn n=1-4 to -Wsystem-headers

2022-06-13 Thread Stephen Long 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 rGee6ad7af45a0: [clang-cl][MSVC] Map /external:Wn n=1-4 to -Wsystem-headers (authored by steplong). Repository: rG LLVM Github Monorepo CHANGES SIN

[PATCH] D125722: [Attribute] Add clang optsize attribute

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong abandoned this revision. steplong added a comment. Abandoning in favor of D126984 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125722/new/ https://reviews.llvm.org/D125722 __

[PATCH] D125720: [Attribute] Add clang frame_pointer attribute

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong abandoned this revision. steplong added a comment. Abandoning in favor of D126984 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125720/new/ https://reviews.llvm.org/D125720 __

[PATCH] D125719: [Attribute] Add attribute NeverOptimizeNone

2022-06-13 Thread Stephen Long via Phabricator via cfe-commits
steplong abandoned this revision. steplong added a comment. Abandoning in favor of D126984 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125719/new/ https://reviews.llvm.org/D125719 __

  1   2   >