@@ -1076,6 +1076,8 @@ Arm and AArch64 Support
in leaf functions after enabling ``-fno-omit-frame-pointer``, you can do so
by adding
the ``-momit-leaf-frame-pointer`` option.
+- For ARM baremetal targets, the frame pointer (FP) is now turned off by
default.
--
https://github.com/stuij updated
https://github.com/llvm/llvm-project/pull/122881
>From 7865fd2bf4e0bb9c35b3d14f362732c994914568 Mon Sep 17 00:00:00 2001
From: Ties Stuij
Date: Tue, 14 Jan 2025 10:01:33 +
Subject: [PATCH 1/2] [clang] document that by default FP turned off for ARM
baremetal
https://github.com/stuij created
https://github.com/llvm/llvm-project/pull/122881
As per #117140.
>From 7865fd2bf4e0bb9c35b3d14f362732c994914568 Mon Sep 17 00:00:00 2001
From: Ties Stuij
Date: Tue, 14 Jan 2025 10:01:33 +
Subject: [PATCH] [clang] document that by default FP turned off for A
https://github.com/stuij closed https://github.com/llvm/llvm-project/pull/117140
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/stuij updated
https://github.com/llvm/llvm-project/pull/117140
>From 4a85a0cd98bf328f31465d47c56640abdf7ec08c Mon Sep 17 00:00:00 2001
From: Ties Stuij
Date: Fri, 15 Nov 2024 13:19:08 +
Subject: [PATCH 1/7] [clang][ARM] disable frame pointers by default for bare
metal AR
@@ -128,12 +128,14 @@ BareMetal::BareMetal(const Driver &D, const llvm::Triple
&Triple,
}
}
+namespace clang {
+namespace driver {
+namespace toolchains {
/// Is the triple {arm,armeb,thumb,thumbeb}-none-none-{eabi,eabihf} ?
-static bool isARMBareMetal(const llvm::Triple &
@@ -151,6 +152,9 @@ static bool useFramePointerForTargetByDefault(const
llvm::opt::ArgList &Args,
}
}
+ if (toolchains::isARMBareMetal(Triple))
stuij wrote:
done!
https://github.com/llvm/llvm-project/pull/117140
__
https://github.com/stuij updated
https://github.com/llvm/llvm-project/pull/117140
>From 4a85a0cd98bf328f31465d47c56640abdf7ec08c Mon Sep 17 00:00:00 2001
From: Ties Stuij
Date: Fri, 15 Nov 2024 13:19:08 +
Subject: [PATCH 1/6] [clang][ARM] disable frame pointers by default for bare
metal AR
@@ -151,6 +152,9 @@ static bool useFramePointerForTargetByDefault(const
llvm::opt::ArgList &Args,
}
}
+ if (toolchains::isARMBareMetal(Triple))
stuij wrote:
`isArmEABIBareMetal`?
https://github.com/llvm/llvm-project/pull/117140
__
@@ -151,6 +152,9 @@ static bool useFramePointerForTargetByDefault(const
llvm::opt::ArgList &Args,
}
}
+ if (toolchains::isARMBareMetal(Triple))
stuij wrote:
Perhaps renaming `isARMBareMetal` to `isEABIBareMetal` would make things
clearer?
https://gi
https://github.com/stuij updated
https://github.com/llvm/llvm-project/pull/117140
>From 4a85a0cd98bf328f31465d47c56640abdf7ec08c Mon Sep 17 00:00:00 2001
From: Ties Stuij
Date: Fri, 15 Nov 2024 13:19:08 +
Subject: [PATCH 1/5] [clang][ARM] disable frame pointers by default for bare
metal AR
@@ -151,6 +152,9 @@ static bool useFramePointerForTargetByDefault(const
llvm::opt::ArgList &Args,
}
}
+ if (toolchains::isARMBareMetal(Triple))
stuij wrote:
Hi @jroelofs, adding the check for Apple shouldn't be necessary.
`isARMBareMetal` is trying t
https://github.com/stuij updated
https://github.com/llvm/llvm-project/pull/117140
>From 4a85a0cd98bf328f31465d47c56640abdf7ec08c Mon Sep 17 00:00:00 2001
From: Ties Stuij
Date: Fri, 15 Nov 2024 13:19:08 +
Subject: [PATCH 1/4] [clang][ARM] disable frame pointers by default for bare
metal AR
stuij wrote:
I feel that in `useFramePointerForTargetByDef` fn, in general things are
predicated first on platform and then on arch. That L85 arch switch statement
seems to serve as a "these arches don't do anything special" early return.
It's up to interpretation, but putting the different Ar
@@ -151,6 +152,10 @@ static bool useFramePointerForTargetByDefault(const
llvm::opt::ArgList &Args,
}
}
+ if (toolchains::isARMBareMetal(Triple)) {
+return false;
+ }
stuij wrote:
done!
https://github.com/llvm/llvm-project/pull/117140
___
https://github.com/stuij updated
https://github.com/llvm/llvm-project/pull/117140
>From 4a85a0cd98bf328f31465d47c56640abdf7ec08c Mon Sep 17 00:00:00 2001
From: Ties Stuij
Date: Fri, 15 Nov 2024 13:19:08 +
Subject: [PATCH 1/3] [clang][ARM] disable frame pointers by default for bare
metal AR
@@ -148,6 +151,9 @@ static bool isARMBareMetal(const llvm::Triple &Triple) {
return true;
}
+} // namespace clang
stuij wrote:
thanks! done!
https://github.com/llvm/llvm-project/pull/117140
___
cfe-commits mailin
https://github.com/stuij updated
https://github.com/llvm/llvm-project/pull/117140
>From 4a85a0cd98bf328f31465d47c56640abdf7ec08c Mon Sep 17 00:00:00 2001
From: Ties Stuij
Date: Fri, 15 Nov 2024 13:19:08 +
Subject: [PATCH 1/2] [clang][ARM] disable frame pointers by default for bare
metal AR
stuij wrote:
This change was discussed in the LLVM Embedded Toolchains working group sync up
two weeks ago, and at the time people were in agreement that it made sense:
https://discourse.llvm.org/t/llvm-embedded-toolchains-working-group-sync-up/63270/73#p-334070-peter-frame-pointers-on-or-off-b
https://github.com/stuij created
https://github.com/llvm/llvm-project/pull/117140
because:
- This brings Clang in line with GCC for which this is the default for ARM
- It frees up a register, so performance increase, especially on Thumb/6-M
- It will decrease code size
>From 4a85a0cd98bf328f314
https://github.com/stuij commented:
LGTM, thanks!
https://github.com/llvm/llvm-project/pull/101978
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -209,9 +209,28 @@ llvm::Value *TargetCodeGenInfo::createEnqueuedBlockKernel(
void TargetCodeGenInfo::setBranchProtectionFnAttributes(
const TargetInfo::BranchProtectionInfo &BPI, llvm::Function &F) {
- llvm::AttrBuilder FuncAttrs(F.getContext());
- setBranchProtection
https://github.com/stuij approved this pull request.
This seems like a sensible and unobtrusive solution to me. Also the change is
backed by a change in the Arm ABI, and it looks like the other review comments
have been addressed. I've also built this change locally and ran the lit tests,
and
Author: Ties Stuij
Date: 2023-08-09T14:16:11+01:00
New Revision: 479955a42a71242e3577c639ca276c75f1a3c2b2
URL:
https://github.com/llvm/llvm-project/commit/479955a42a71242e3577c639ca276c75f1a3c2b2
DIFF:
https://github.com/llvm/llvm-project/commit/479955a42a71242e3577c639ca276c75f1a3c2b2.diff
LO
Author: Ties Stuij
Date: 2022-11-22T14:23:12Z
New Revision: cb261e30fbb174085d2eea4f4afc3cef2838b7f7
URL:
https://github.com/llvm/llvm-project/commit/cb261e30fbb174085d2eea4f4afc3cef2838b7f7
DIFF:
https://github.com/llvm/llvm-project/commit/cb261e30fbb174085d2eea4f4afc3cef2838b7f7.diff
LOG: [A
Author: Ties Stuij
Date: 2022-11-16T10:20:14Z
New Revision: 983f63f7f0d1643eb138db004351a18d1b3e91a3
URL:
https://github.com/llvm/llvm-project/commit/983f63f7f0d1643eb138db004351a18d1b3e91a3
DIFF:
https://github.com/llvm/llvm-project/commit/983f63f7f0d1643eb138db004351a18d1b3e91a3.diff
LOG: [A
Author: Ties Stuij
Date: 2022-10-18T14:38:03+01:00
New Revision: 95bbe9a1930886cffc79f1f5b953f5aafff1557f
URL:
https://github.com/llvm/llvm-project/commit/95bbe9a1930886cffc79f1f5b953f5aafff1557f
DIFF:
https://github.com/llvm/llvm-project/commit/95bbe9a1930886cffc79f1f5b953f5aafff1557f.diff
LO
Author: Ties Stuij
Date: 2022-08-18T11:25:20+01:00
New Revision: 27cbfa7cc8cdab121842adf4dd31f6811f523928
URL:
https://github.com/llvm/llvm-project/commit/27cbfa7cc8cdab121842adf4dd31f6811f523928
DIFF:
https://github.com/llvm/llvm-project/commit/27cbfa7cc8cdab121842adf4dd31f6811f523928.diff
LO
Author: Ties Stuij
Date: 2022-03-15T13:44:20Z
New Revision: 352453569b2b044ddd5bd4df0074ff9863828b6f
URL:
https://github.com/llvm/llvm-project/commit/352453569b2b044ddd5bd4df0074ff9863828b6f
DIFF:
https://github.com/llvm/llvm-project/commit/352453569b2b044ddd5bd4df0074ff9863828b6f.diff
LOG: [A
Author: Ties Stuij
Date: 2022-01-31T19:01:25Z
New Revision: 1adfbfcf39f95106861ebe8a7b4245acb0bc6e69
URL:
https://github.com/llvm/llvm-project/commit/1adfbfcf39f95106861ebe8a7b4245acb0bc6e69
DIFF:
https://github.com/llvm/llvm-project/commit/1adfbfcf39f95106861ebe8a7b4245acb0bc6e69.diff
LOG: Ad
Author: Ties Stuij
Date: 2021-12-09T13:37:52Z
New Revision: bfe07195bb1f517b2809107098b91767ad8c9460
URL:
https://github.com/llvm/llvm-project/commit/bfe07195bb1f517b2809107098b91767ad8c9460
DIFF:
https://github.com/llvm/llvm-project/commit/bfe07195bb1f517b2809107098b91767ad8c9460.diff
LOG: [A
Author: Ties Stuij
Date: 2021-12-09T10:39:06Z
New Revision: e32b818db187a6519ee5eba47e8d7dae1d58a723
URL:
https://github.com/llvm/llvm-project/commit/e32b818db187a6519ee5eba47e8d7dae1d58a723
DIFF:
https://github.com/llvm/llvm-project/commit/e32b818db187a6519ee5eba47e8d7dae1d58a723.diff
LOG: [A
Author: Ties Stuij
Date: 2021-12-08T09:44:45Z
New Revision: e6d0b851f854849240bc1f02901b0dbb3be84388
URL:
https://github.com/llvm/llvm-project/commit/e6d0b851f854849240bc1f02901b0dbb3be84388
DIFF:
https://github.com/llvm/llvm-project/commit/e6d0b851f854849240bc1f02901b0dbb3be84388.diff
LOG: [A
Author: Ties Stuij
Date: 2021-12-06T15:03:33Z
New Revision: 53154a83aee0ce969dc07e7168b3914ca1025030
URL:
https://github.com/llvm/llvm-project/commit/53154a83aee0ce969dc07e7168b3914ca1025030
DIFF:
https://github.com/llvm/llvm-project/commit/53154a83aee0ce969dc07e7168b3914ca1025030.diff
LOG: [A
Author: Ties Stuij
Date: 2021-12-06T11:07:10Z
New Revision: 0fbb17458a01a6b388fc67661ffb92969503e977
URL:
https://github.com/llvm/llvm-project/commit/0fbb17458a01a6b388fc67661ffb92969503e977
DIFF:
https://github.com/llvm/llvm-project/commit/0fbb17458a01a6b388fc67661ffb92969503e977.diff
LOG: [A
Author: Ties Stuij
Date: 2021-12-01T12:09:08Z
New Revision: 5b4746f94aed5548cd918357299c585a89e3b524
URL:
https://github.com/llvm/llvm-project/commit/5b4746f94aed5548cd918357299c585a89e3b524
DIFF:
https://github.com/llvm/llvm-project/commit/5b4746f94aed5548cd918357299c585a89e3b524.diff
LOG: [c
Author: Ties Stuij
Date: 2021-12-01T10:46:29Z
New Revision: ab2611d0998c7acade219f1ccb511d3a7e76a681
URL:
https://github.com/llvm/llvm-project/commit/ab2611d0998c7acade219f1ccb511d3a7e76a681
DIFF:
https://github.com/llvm/llvm-project/commit/ab2611d0998c7acade219f1ccb511d3a7e76a681.diff
LOG: [c
Author: Ties Stuij
Date: 2021-12-01T10:37:16Z
New Revision: e3b2f0226bc09f16d5cdba9b94d1db3f15ee7d4a
URL:
https://github.com/llvm/llvm-project/commit/e3b2f0226bc09f16d5cdba9b94d1db3f15ee7d4a
DIFF:
https://github.com/llvm/llvm-project/commit/e3b2f0226bc09f16d5cdba9b94d1db3f15ee7d4a.diff
LOG: [c
Author: Ties Stuij
Date: 2021-02-18T15:41:20Z
New Revision: 5f7715d8780a1d16ad023995d282a7d94cb923a9
URL:
https://github.com/llvm/llvm-project/commit/5f7715d8780a1d16ad023995d282a7d94cb923a9
DIFF:
https://github.com/llvm/llvm-project/commit/5f7715d8780a1d16ad023995d282a7d94cb923a9.diff
LOG: Pa
Author: Ties Stuij
Date: 2020-06-18T18:26:01+01:00
New Revision: 035795659b604246b873f659f8feed8084898247
URL:
https://github.com/llvm/llvm-project/commit/035795659b604246b873f659f8feed8084898247
DIFF:
https://github.com/llvm/llvm-project/commit/035795659b604246b873f659f8feed8084898247.diff
LO
Author: Ties Stuij
Date: 2020-06-07T14:32:37+01:00
New Revision: 5945e9799e77c30baffd0da4a9b735262cda3361
URL:
https://github.com/llvm/llvm-project/commit/5945e9799e77c30baffd0da4a9b735262cda3361
DIFF:
https://github.com/llvm/llvm-project/commit/5945e9799e77c30baffd0da4a9b735262cda3361.diff
LO
Author: Ties Stuij
Date: 2020-06-05T14:35:10+01:00
New Revision: 8b137a430636c6626fcc6ef93b05eb69d6183e57
URL:
https://github.com/llvm/llvm-project/commit/8b137a430636c6626fcc6ef93b05eb69d6183e57
DIFF:
https://github.com/llvm/llvm-project/commit/8b137a430636c6626fcc6ef93b05eb69d6183e57.diff
LO
Author: Ties Stuij
Date: 2020-06-05T14:11:51+01:00
New Revision: a6fcf5ca033a83b815f760664e0cff91c2c13dcd
URL:
https://github.com/llvm/llvm-project/commit/a6fcf5ca033a83b815f760664e0cff91c2c13dcd
DIFF:
https://github.com/llvm/llvm-project/commit/a6fcf5ca033a83b815f760664e0cff91c2c13dcd.diff
LO
Author: Ties Stuij
Date: 2020-06-05T13:04:21+01:00
New Revision: 1e447318339a6e740819ec1568002f4751527efe
URL:
https://github.com/llvm/llvm-project/commit/1e447318339a6e740819ec1568002f4751527efe
DIFF:
https://github.com/llvm/llvm-project/commit/1e447318339a6e740819ec1568002f4751527efe.diff
LO
Author: Ties Stuij
Date: 2020-06-05T10:32:43+01:00
New Revision: ecd682bbf5e69e8690b7e3634258f05ae0a70448
URL:
https://github.com/llvm/llvm-project/commit/ecd682bbf5e69e8690b7e3634258f05ae0a70448
DIFF:
https://github.com/llvm/llvm-project/commit/ecd682bbf5e69e8690b7e3634258f05ae0a70448.diff
LO
Author: Ties Stuij
Date: 2020-05-15T14:43:43+01:00
New Revision: 8c24f33158d81d5f4b0c5d27c2f07396f0f1484b
URL:
https://github.com/llvm/llvm-project/commit/8c24f33158d81d5f4b0c5d27c2f07396f0f1484b
DIFF:
https://github.com/llvm/llvm-project/commit/8c24f33158d81d5f4b0c5d27c2f07396f0f1484b.diff
LO
Author: Ties Stuij
Date: 2020-03-26T09:17:20Z
New Revision: 71ae267d1f4117473eb00d9fd3391733b843ca3c
URL:
https://github.com/llvm/llvm-project/commit/71ae267d1f4117473eb00d9fd3391733b843ca3c
DIFF:
https://github.com/llvm/llvm-project/commit/71ae267d1f4117473eb00d9fd3391733b843ca3c.diff
LOG: [P
47 matches
Mail list logo