Remove volatile keyword from ARM inline assembler#1908
Conversation
WalkthroughThe changes systematically remove the Changes
Sequence Diagram(s)Not applicable; the changes only affect inline assembly qualifiers and do not alter control flow or introduce new features. 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (3)
⏰ Context from checks skipped due to timeout of 90000ms (24)
🔇 Additional comments (3)
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop #1908 +/- ##
========================================
Coverage 81.71% 81.72%
========================================
Files 147 147
Lines 13308 13308
Branches 2951 2951
========================================
+ Hits 10875 10876 +1
+ Misses 1526 1486 -40
- Partials 907 946 +39 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
The whole point of using inline assembly is that compiler doesn't understand the intrinsics, so it shouldn't try to reorder the instruction(s) either. Any compiler that has knowledge of the effects of the instruction(s) should already implement the intrinsics correctly. |
|
I encountered this while working on new optimisations, where using |
Specifying the volatile keyword prevents the inlined assembler from being reordered by the compiler.
Summary by CodeRabbit
__volatile__qualifier in various ARM intrinsic functions and configuration checks. No changes to user-facing features or exported interfaces.