[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] 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

[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] 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,

[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] 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:

[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

[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

[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] 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

[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

[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

[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/

[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

[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] 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

[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/

[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/

[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

[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

[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

[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

[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

[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

[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

[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'}}

[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

[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:

[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 ) { + if (!CurContext->getRedeclContext()->isFileContext()) { +Diag(Loc, diag::err_pragma_intrinsic_function_scope);

[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 ) { + if (!CurContext->getRedeclContext()->isFileContext()) { +Diag(Loc, diag::err_pragma_intrinsic_function_scope);

[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. -

[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

[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

[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

[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.

[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: > > >

[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

[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] 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

[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:

[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

[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

[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:

[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:

[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

[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:

[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

[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:

[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

[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] 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:

[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

[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

[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] 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

[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 >

[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

<    1   2