[PATCH] D158641: [AArch64] Fix FMV ifunc resolver usage on old Android APIs. Rename internal compiler-rt FMV functions.

2023-09-29 Thread Pavel Iliin via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG8ec50d64464c: [AArch64] Fix FMV ifunc resolver usage on old Android APIs. Rename internal… (authored by ilinpv). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org

[PATCH] D158641: [AArch64] Fix FMV ifunc resolver usage on old Android APIs. Rename internal compiler-rt FMV functions.

2023-09-25 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. The patch tested on NDK r26 bulding simple Function Multi Versioning project and running on Android API 25,29,30,33 - works fine. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D158641/new/ https://reviews.llvm.org/D158641 _

[PATCH] D158641: [AArch64] Fix FMV ifunc resolver usage on old Android APIs. Rename internal compiler-rt FMV functions.

2023-09-25 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 557332. ilinpv retitled this revision from "[AArch64][Android][DRAFT] Fix FMV ifunc resolver usage on old Android APIs." to "[AArch64] Fix FMV ifunc resolver usage on old Android APIs. Rename internal compiler-rt FMV functions.". ilinpv edited the summary of t

[PATCH] D158641: [AArch64][Android][DRAFT] Fix FMV ifunc resolver usage on old Android APIs.

2023-09-08 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: compiler-rt/lib/builtins/cpu_model.c:1382 +return; +#if defined(__ANDROID__) + // ifunc resolvers don't have hwcaps in arguments on Android API lower enh wrote: > rprichard wrote: > > enh wrote: > > > srhines wrote:

[PATCH] D158641: [AArch64][Android][DRAFT] Fix FMV ifunc resolver usage on old Android APIs.

2023-09-08 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: compiler-rt/lib/builtins/cpu_model.c:1379 +void init_cpu_features_resolver(unsigned long hwcap, const __ifunc_arg_t *arg) { + if (__aarch64_cpu_features.features) ilinpv wrote: > MaskRay wrote: > > It seems that we do

[PATCH] D158641: [AArch64][Android][DRAFT] Fix FMV ifunc resolver usage on old Android APIs.

2023-09-08 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: compiler-rt/lib/builtins/cpu_model.c:1379 +void init_cpu_features_resolver(unsigned long hwcap, const __ifunc_arg_t *arg) { + if (__aarch64_cpu_features.features) MaskRay wrote: > It seems that we don't need the `_con

[PATCH] D150867: [AArch64][FMV] Prevent target attribute using for multiversioning.

2023-09-06 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: clang/lib/Sema/SemaDecl.cpp:11544 + // Target attribute on AArch64 is not used for multiversioning + if (NewTA && S.getASTContext().getTargetInfo().getTriple().isAArch64()) +return false; Allen wrote: > I find the a

[PATCH] D158963: [CodeGen] Function multi-versioning: don't set comdat for internal linkage resolvers

2023-09-04 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: clang/docs/ReleaseNotes.rst:208 (`#61334 `_) +- For function multi-versioning using the ``target`` or ``target_clones`` + attributes, remove comdat for internal linkage functions. ---

[PATCH] D159398: [AArch64][Clang] Disable outline atomics in freestanding env

2023-09-04 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. > Offtopic: Outlining atomics seems to be very CPU specific thing. In my > experience LSE were ~= old exclusive semantics. So adding extra call + extra > bit check (too bad IFUNCs are not used :)) each time it would be executed > seems to be quite an extra load (for CPU,

[PATCH] D159398: [AArch64][Clang] Disable outline atomics in freestanding env

2023-09-04 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. > I understand that you could disable it with extra option and that for now it > would be different with gcc, but it looks debatable to me that such a > behaviour in gcc is correct and expected, maybe someone need to change it > there too. (Please keep in mind that I mig

[PATCH] D159398: [AArch64][Clang] Disable outline atomics in freestanding env

2023-09-04 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. Outline atomics are dependent on runtime library availability ( libgcc or compler-rt ). If there are no proper library available they will be disabled. So if in freestanding mode compiler is not dependent on runtime library you can remove it and get rid of outline atomic

[PATCH] D159398: [AArch64][Clang] Disable outline atomics in freestanding env

2023-09-04 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. From what i understand in freestanding environment runtime library is not used and clang driver can detect this situation and set outline atomics off by default ( see ##clang/lib/Driver/ToolChains/Linux.cpp## ##Linux::IsAArch64OutlineAtomicsDefault## -> ##GetRuntimeLibTy

[PATCH] D159174: [Clang] Use stable_sort in AppendTargetMangling

2023-09-04 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D159174#4635886 , @BeMg wrote: > I'm working on RISC-V FMV support, and we found the large set of extension > features is hard to maintain the priority that doesn't collision at all. On AArch64 for FMV we are using ##target_ve

[PATCH] D158641: [AArch64][Android][DRAFT] Fix FMV ifunc resolver usage on old Android APIs.

2023-08-24 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: compiler-rt/lib/builtins/cpu_model.c:1382 +return; +#if defined(__ANDROID__) + // ifunc resolvers don't have hwcaps in arguments on Android API lower MaskRay wrote: > I am unfamiliar with how Android ndk builds compi

[PATCH] D158641: [AArch64][Android][DRAFT] Fix FMV ifunc resolver usage on old Android APIs.

2023-08-23 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv created this revision. ilinpv added reviewers: srhines, danielkiss, enh, MaskRay, rprichard. Herald added subscribers: Enna1, kristof.beyls, krytarowski. Herald added a project: All. ilinpv requested review of this revision. Herald added projects: clang, Sanitizers. Herald added subscribers:

[PATCH] D152914: [Draft] Make __builtin_cpu builtins target-independent

2023-08-21 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. Friendly ping, are there any questions remained to proceed with target-independent __builtin_cpu_supports ? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D152914/new/ https://reviews.llvm.org/D152914 ___

[PATCH] D152914: [Draft] Make __builtin_cpu builtins target-independent

2023-07-24 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: llvm/include/llvm/IR/Intrinsics.td:903-907 +// Load of a value provided by the system library at a fixed address. Used for +// accessing things like HWCAP word provided by GLIBC. +def int_fixed_addr_ld +: DefaultAttrsIntrinsic<[llvm_i

[PATCH] D152914: [Draft] Make __builtin_cpu builtins target-independent

2023-07-19 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D152914#4497599 , @nemanjai wrote: > I took a quick look at your patch. I think it would be preferable to make the > builtins target-independent rather than implementing the builtin by the same > name for multiple targets. Alt

[PATCH] D152914: [Draft] Make __builtin_cpu builtins target-independent

2023-06-16 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. Thank you for the patch, it comes in the right time - we are also working on AArch64 __builtin_cpu_supports, and I was thinking how to make it more general. I uploaded our RFC version for review https://reviews.llvm.org/D153153 It would be great to have in __builtin_cpu_su

[PATCH] D153153: [AArch64][RFC][Draft] Implement __builtin_cpu_supports, compiler-rt tests.

2023-06-16 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv created this revision. ilinpv added reviewers: danielkiss, kristof.beyls, nemanjai, arsenm. Herald added subscribers: Enna1, dberris. Herald added a project: All. ilinpv requested review of this revision. Herald added subscribers: Sanitizers, cfe-commits, wdng. Herald added projects: clang,

[PATCH] D150867: [AArch64][FMV] Prevent target attribute using for multiversioning.

2023-05-23 Thread Pavel Iliin via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGb6db864a2fdf: [AArch64][FMV] Prevent target attribute using for multiversioning. (authored by ilinpv). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150867/n

[PATCH] D150800: [AArch64][FMV] Fix name mangling.

2023-05-23 Thread Pavel Iliin via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG30b0fdfff193: [AArch64][FMV] Fix name mangling. (authored by ilinpv). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150800/new/ https://reviews.llvm.org/D15

[PATCH] D150867: [AArch64][FMV] Prevent target attribute using for multiversioning.

2023-05-18 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv created this revision. ilinpv added a reviewer: danielkiss. Herald added a subscriber: kristof.beyls. Herald added a project: All. ilinpv requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. On AArch64 for function multiversioning target_

[PATCH] D150800: [AArch64][FMV] Fix name mangling.

2023-05-17 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv created this revision. ilinpv added a reviewer: danielkiss. Herald added a subscriber: kristof.beyls. Herald added a project: All. ilinpv requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Put features into function version name in incr

[PATCH] D145538: [NFC][AArch64] Document and improve FMV code.

2023-03-08 Thread Pavel Iliin via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG124b46a897a7: [NFC][AArch64] Document and improve FMV code. (authored by ilinpv). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D145538/new/ https://reviews.

[PATCH] D145538: [NFC][AArch64] Document and improve FMV code.

2023-03-08 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv marked 5 inline comments as done. ilinpv added inline comments. Comment at: llvm/include/llvm/TargetParser/AArch64TargetParser.h:567-568 + +// For given features returns a mask to check if CPU support them. The mask is +// used in Function Multi Versioning resolver conditi

[PATCH] D145538: [NFC][AArch64] Document and improve FMV code.

2023-03-08 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 503446. ilinpv added a comment. Rebasing and addressing comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D145538/new/ https://reviews.llvm.org/D145538 Files: clang/include/clang/Basic/TargetInfo.h cla

[PATCH] D145538: [NFC][AArch64] Document and improve FMV code.

2023-03-07 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv created this revision. ilinpv added reviewers: tmatheson, danielkiss. Herald added a subscriber: kristof.beyls. Herald added a reviewer: aaron.ballman. Herald added a project: All. ilinpv requested review of this revision. Herald added projects: clang, LLVM. Herald added subscribers: llvm-co

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2023-03-07 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: compiler-rt/lib/builtins/cpu_model.c:1338 + hwcap = getauxval(AT_HWCAP); + hwcap2 = getauxval(AT_HWCAP2); +#endif // defined(__FreeBSD__) nikic wrote: > This breaks the build with glibc 2.17. Thanks for https://reviews.

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2023-01-30 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#4085171 , @tmatheson wrote: > This patch has made it considerably harder to understand what is going on in > the TargetParser. If you get a chance, please could you add some clarifying > comments and tidy-ups. I apprec

[PATCH] D142265: [AArch64] Function multi-versioning release notes added. NFC.

2023-01-23 Thread Pavel Iliin 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 rGc57eaf1c8ce3: [AArch64] Function multi-versioning release notes added. NFC. (authored by ilinpv). Repository: rG LLVM Github Monorepo CHANGES SIN

[PATCH] D141606: [AArch64] Remove AES, SHA2, SHA3 and SM4 features from armv8.6-a+

2023-01-23 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. Sorry, commit rG5474d7d93271 is not related to this, I put wrong differential revision link Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141606/new/ ht

[PATCH] D141606: [AArch64] Remove AES, SHA2, SHA3 and SM4 features from armv8.6-a+

2023-01-23 Thread Pavel Iliin 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 rG5474d7d93271: [AArch64] Function multi-versioning release notes added. NFC. (authored by ilinpv). Herald added a project: clang. Herald added a subsc

[PATCH] D142265: [AArch64] Function multi-versioning release notes added. NFC.

2023-01-20 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv created this revision. ilinpv added reviewers: danielkiss, samtebbs, dmgreen. Herald added a subscriber: kristof.beyls. Herald added a project: All. ilinpv requested review of this revision. Herald added projects: clang, LLVM. Herald added subscribers: llvm-commits, cfe-commits. Repository:

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2023-01-07 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#4031994 , @smeenai wrote: > You're right that it conceptually makes sense for this to be in `cpu_model.c` > though. An alternative would be providing an option for compiler-rt to be > built without the multiversioning

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2023-01-06 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#4031313 , @smeenai wrote: > We can use `-mno-fmv` to avoid that dependency, right? We're interested in > using that for our own code (where we don't make use of function > multi-versioning), and want to prevent the com

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2023-01-06 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#4030881 , @smeenai wrote: > We're not actually using multi-versioning anywhere, but we're still paying > the size cost for it as a result. Would we consider moving the newly added > functions into their own file (or pe

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-28 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#4018490 , @mceier wrote: > Checked the changes I'm suggesting and they fix the standalone build. Thanks! Fix committed 2184fcf17ee00a939b3bde98a28ef586c67d6b1a

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-22 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#4012283 , @hctim wrote: > I'm not sure "MSan didn't handle correctly SmallVector" is the case. Given > your diagnosis of 3-elements-vs-2, I'm guessing the root cause is that > `clang/lib/Sema/SemaDecl.cpp:11369` is wro

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-21 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. I've managed to reproduce "MemorySanitizer: use-of-uninitialized-value" error locally, thank you @hctim for help! If I understand it right, it seems **MSan didn't handle correctly SmallVector** - a variable-sized array with some number of elements in-place and heap alloc

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-21 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#4011437 , @hctim wrote: > 2. Build a sanitizer libcxx. > > $ cd /tmp/2 > $ cmake \ > -DCMAKE_C_COMPILER=/tmp/1/bin/clang \ > -DCMAKE_CXX_COMPILER=/tmp/1/bin/clang++ \ > -GNinja \ > -DLLVM_USE_SANITIZER=Memory

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-21 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#4010993 , @hctim wrote: > Hmm, not exactly sure what's going on with the `could NOT find Threads` > there. A quick googling seems to point to pthreads.so not being in the right > places, but I don't think the buildbot

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-21 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#4009577 , @hctim wrote: > In D127812#4009447 , @hctim wrote: > >> Hi, this looks like a candidate for breaking the MSan bot: >> https://lab.llvm.org/buildbot/#/builders/5/buil

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-20 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#4009014 , @paulkirth wrote: > Hi, thanks for the fix. that unblocked our builder. Unfortunately, we still > see some errors in tests. > > FAIL: Clang :: Driver/aarch64-features.c (7460 of 16622) > **

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-20 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#4008451 , @paulkirth wrote: > Hi, we're seeing a build failure in Fuchsia's Clang CI. We're seeing this on > all of our builders: arm64 & x64 linux, mac and windows > > FAILED: CMakeFiles/clang_rt.builtins-aarch64.dir

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-19 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. Does anyone have any more objections? I'm going to merge it. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127812/new/ https://reviews.llvm.org/D127812 ___ cfe-commits mailing lis

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-01 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: llvm/include/llvm/Support/AArch64TargetParser.def:115 +AARCH64_ARCH_EXT_NAME("rdm", AArch64::AEK_RDM, "+rdm", "-rdm", \ +RDM, "+rdm,+fp-armv8,+neon,+jsconv,+complxnum",

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-01 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: llvm/include/llvm/Support/AArch64TargetParser.def:115 +AARCH64_ARCH_EXT_NAME("rdm", AArch64::AEK_RDM, "+rdm", "-rdm", \ +RDM, "+rdm,+fp-armv8,+neon,+jsconv,+complxnum",

[PATCH] D127812: [AArch64] FMV support and necessary target features dependencies.

2022-12-01 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv marked an inline comment as done. ilinpv added inline comments. Comment at: compiler-rt/lib/builtins/cpu_model.c:1311 + // CPU features already initialized. + if (__aarch64_cpu_features.features) +return; danielkiss wrote: > I'd add a init value for

[PATCH] D129802: [DRAFT] Implementing new atomic orderings in LLVM and generate barriers for legacy __sync builtins. Support corresponding memory model in outline atomics as well.

2022-09-26 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. @sebpop could you ellaborate on __sync_* operations usage, are you getting issues with current Clang implementation? Do Clang need to keep supporting them and fix introducing new memory model? It seems we need compelling reasons to do that. >> However if sync primitives

[PATCH] D127812: [AArch64] Function multiversioning support added.

2022-07-14 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: llvm/lib/Target/AArch64/AArch64.td:74 +def FeatureFMV : SubtargetFeature<"fmv", "HasFMV", "true", + "Enable Function Multi Versioning support.">; echristo wrote: > What is this for? FMV is a target feature which is ena

[PATCH] D127812: [AArch64] Function multiversioning support added.

2022-06-20 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: clang/docs/ClangCommandLineReference.rst:1086 +.. option:: -mno-fmv + xbolva00 wrote: > ilinpv wrote: > > MaskRay wrote: > > > This file is auto-generated. Don't touch it. > > It looked out of sync with options td files

[PATCH] D128116: [clang][docs] Sync generated command line doc with td files.

2022-06-20 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv closed this revision. ilinpv added a comment. Commited in af6d2a0b6825e71965f3e2701a63c239fa0ad70f Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D128116/new/ https://revie

[PATCH] D128116: [clang][docs] Sync generated command line doc with td files.

2022-06-18 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv created this revision. ilinpv added a reviewer: MaskRay. Herald added a subscriber: StephenFan. Herald added a project: All. ilinpv requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. It seems auto-generated ClangCommandLineReference.rst

[PATCH] D127812: [AArch64] Function multiversioning support added.

2022-06-15 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: clang/include/clang/AST/ASTContext.h:3090 + std::vector + filterFunctionTargetVersionAttrs(const TargetVersionAttr *TV) const; erichkeane wrote: > It is concerning that this differs from the above. target_version su

[PATCH] D127812: [AArch64] Function multiversioning support added.

2022-06-15 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: clang/docs/ClangCommandLineReference.rst:1086 +.. option:: -mno-fmv + MaskRay wrote: > This file is auto-generated. Don't touch it. It looked out of sync with options td files: ``` +.. option:: -gen-reproducer=, -fno-c

[PATCH] D127812: [AArch64] Function multiversioning support added.

2022-06-15 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. In D127812#3585249 , @erichkeane wrote: > I'm concerned as to the design of this addition, I don't particularly > appreciate the reasons for making 'target_clones' different, nor the purpose > for adding a new attribute instead

[PATCH] D91157: [AArch64] Out-of-line atomics (-moutline-atomics) implementation.

2022-05-17 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. I think it looks reasonable to define 5th memory model, add barriers __sync_* builtins and to outline-atomics calls as well. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91157/new/ https://reviews.llvm.org/D91157

[PATCH] D97510: [AArch64][Docs] Release notes 12.x on outline atomics

2021-03-01 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv closed this revision. ilinpv added a comment. Tim, thank you for review, noticed typos and overall support to outline atomics patches! Notes pushed rG98f06b16a313ece593f5711778d7da9037f3a2ef Repository: rG LLVM Gith

[PATCH] D97510: [AArch64][Docs] Release notes 12.x on outline atomics

2021-02-25 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 326550. ilinpv added a comment. Fixing typos Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D97510/new/ https://reviews.llvm.org/D97510 Files: clang/docs/ReleaseNotes.rst Index: clang/docs/ReleaseNotes.rst ==

[PATCH] D97510: [AArch64][Docs] Release notes 12.x on outline atomics

2021-02-25 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv created this revision. ilinpv added reviewers: willlovett, ktkachov. Herald added subscribers: danielkiss, jfb, kristof.beyls. ilinpv requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Description for AArch64 -moutline-atomics, -mno-out

[PATCH] D93585: [AArch64][Clang][Linux] Enable out-of-line atomics by default.

2021-01-29 Thread Pavel Iliin 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 rGc5e7e649d537: [AArch64][Clang][Linux] Enable out-of-line atomics by default. (authored by ilinpv). Repository: rG LLVM Github Monorepo CHANGES SI

[PATCH] D93585: [AArch64][Clang][Linux] Enable out-of-line atomics by default.

2021-01-29 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 320142. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D93585/new/ https://reviews.llvm.org/D93585 Files: clang/include/clang/Driver/ToolChain.h clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChai

[PATCH] D93585: [AArch64][Clang][Linux] Enable out-of-line atomics by default.

2021-01-29 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 320123. ilinpv added a comment. Tests for "-m[no]outline-atomics" options added. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D93585/new/ https://reviews.llvm.org/D93585 Files: clang/include/clang/Driver/Tool

[PATCH] D93585: [AArch64][Clang][Linux] Enable out-of-line atomics by default.

2021-01-28 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 319951. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D93585/new/ https://reviews.llvm.org/D93585 Files: clang/include/clang/Driver/ToolChain.h clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChai

[PATCH] D93585: [AArch64][Clang][Linux] Enable out-of-line atomics by default.

2021-01-27 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 319693. ilinpv added a comment. Clang driver tests for outline atomics were added. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D93585/new/ https://reviews.llvm.org/D93585 Files: clang/include/clang/Driver/To

[PATCH] D93585: [AArch64][Clang][Linux] Enable out-of-line atomics by default.

2021-01-25 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. @t.p.northover sorry for pinging you, do you have any concerns about latest patch? It enables outline atomics by default on Aarch64/Linux/Clang with libraries check. I am hoping to get this in before LLVM 12 branch. Repository: rG LLVM Github Monorepo CHANGES SINCE L

[PATCH] D93585: [AArch64][Clang][Linux] Enable out-of-line atomics by default.

2021-01-20 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 317849. ilinpv retitled this revision from "[AArch64] Enable out-of-line atomics by default." to "[AArch64][Clang][Linux] Enable out-of-line atomics by default.". ilinpv edited the summary of this revision. Repository: rG LLVM Github Monorepo CHANGES SINCE

[PATCH] D93585: [AArch64] Enable out-of-line atomics by default.

2021-01-13 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv marked 2 inline comments as done. ilinpv added inline comments. Comment at: llvm/lib/Target/AArch64/AArch64.td:1087 FeatureNEON, + FeatureOutlineAtomics, FeaturePerfMon, t.p.northover wrote: >

[PATCH] D93585: [AArch64] Enable out-of-line atomics by default.

2021-01-13 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 316471. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D93585/new/ https://reviews.llvm.org/D93585 Files: clang/include/clang/Driver/ToolChain.h clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChai

[PATCH] D93585: [AArch64] Enable out-of-line atomics by default.

2021-01-09 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 315613. ilinpv edited the summary of this revision. ilinpv added a comment. Herald added a project: clang. Herald added a subscriber: cfe-commits. RT library detection and check for outline atomics support added to the driver. Repository: rG LLVM Github Mon

[PATCH] D91157: [AArch64] Out-of-line atomics (-moutline-atomics) implementation.

2020-11-19 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: clang/lib/Driver/ToolChains/Clang.cpp:6377 +} else { + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("-outline-atomics"); jyknight wrote: > We don't usually explicitly use negative features like

[PATCH] D91157: [AArch64] Out-of-line atomics (-moutline-atomics) implementation.

2020-11-19 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. Have you got any further comments? Comment at: llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp:2170 + SmallVector Ops; + if (TLI.getLibcallName(LC)) { +Ops.append(Node->op_begin() + 2, Node->op_end()); t.p.northover wrote: >

[PATCH] D91157: [AArch64] Out-of-line atomics (-moutline-atomics) implementation.

2020-11-11 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv marked 10 inline comments as done. ilinpv added inline comments. Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:15653 +// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0493r1.pdf +// (2) low level libgcc and compiler-rt support implemented

[PATCH] D91157: [AArch64] Out-of-line atomics (-moutline-atomics) implementation.

2020-11-10 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv created this revision. ilinpv added reviewers: jyknight, eli.friedman. Herald added subscribers: llvm-commits, cfe-commits, dexonsmith, dang, danielkiss, jfb, hiraditya, kristof.beyls. Herald added projects: clang, LLVM. ilinpv requested review of this revision. This patch implements out o

[PATCH] D78252: [AArch64] FMLA/FMLS patterns improvement.

2020-04-23 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv marked an inline comment as done. ilinpv added inline comments. Comment at: llvm/lib/Target/AArch64/AArch64InstrFormats.td:8058 + def : Pat<(v8f16 (OpNode (v8f16 V128:$Rd), (v8f16 V128:$Rn), + (AArch64duplane16 (v8f16 V128:$Rm), +

[PATCH] D78252: [AArch64] FMLA/FMLS patterns improvement.

2020-04-22 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added a comment. Patterns corrected to comply with encoding 4eca1c06a4a9183fcf7bb230d894617caf3cf3be Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78252/new/ https://rev

[PATCH] D78252: [AArch64] FMLA/FMLS patterns improvement.

2020-04-22 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv marked 2 inline comments as done. ilinpv added inline comments. Comment at: llvm/lib/Target/AArch64/AArch64InstrFormats.td:8058 + def : Pat<(v8f16 (OpNode (v8f16 V128:$Rd), (v8f16 V128:$Rn), + (AArch64duplane16 (v8f16 V128:$Rm), +

[PATCH] D78252: [AArch64] FMLA/FMLS patterns improvement.

2020-04-21 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv closed this revision. ilinpv added a comment. Committed be881e2831735d6879ee43710f5a4d1c8d50c615 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78252/new/ https://reviews.

[PATCH] D78252: [AArch64] FMLA/FMLS patterns improvement.

2020-04-21 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 259008. ilinpv edited the summary of this revision. ilinpv added a comment. v2f32 pattern removed, test added. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78252/new/ https://reviews.llvm.org/D78252 Files: c

[PATCH] D78252: [AArch64] FMLA/FMLS patterns improvement.

2020-04-20 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 258865. ilinpv added a comment. Patterns corrected, vector_extract tests added. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78252/new/ https://reviews.llvm.org/D78252 Files: clang/test/CodeGen/aarch64-v8.2a

[PATCH] D78252: [AArch64] FMLA/FMLS patterns improvement.

2020-04-18 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv marked an inline comment as not done. ilinpv added inline comments. Comment at: llvm/lib/Target/AArch64/AArch64InstrFormats.td:8055 multiclass SIMDFPIndexedTiedPatterns { + let Predicates = [HasNEON, HasFullFP16] in { + // 1 variant for the .8h version: DUPLANE from 128

[PATCH] D78252: [AArch64] FMLA/FMLS patterns improvement.

2020-04-17 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv added inline comments. Comment at: llvm/lib/Target/AArch64/AArch64InstrFormats.td:8055 multiclass SIMDFPIndexedTiedPatterns { + let Predicates = [HasNEON, HasFullFP16] in { + // 1 variant for the .8h version: DUPLANE from 128-bit dmgreen wrote: > Should

[PATCH] D78252: [AArch64] FMLA/FMLS patterns improvement.

2020-04-17 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv updated this revision to Diff 258337. ilinpv marked an inline comment as done. ilinpv edited the summary of this revision. ilinpv added a comment. More patterns added. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78252/new/ https://reviews.

[PATCH] D78252: [AArch64] FMLA/FMLS patterns improvement.

2020-04-15 Thread Pavel Iliin via Phabricator via cfe-commits
ilinpv created this revision. ilinpv added reviewers: samparker, dmgreen, SjoerdMeijer. Herald added subscribers: cfe-commits, danielkiss, hiraditya, kristof.beyls. Herald added a project: clang. FMLA/FMLS 8H duplane indexed patterns added. Fixes https://bugs.llvm.org/show_bug.cgi?id=45467 Repos