[lld-macho][nfc] Use alignToPowerOf2 instead of alignTo when possible
authorJez Ng <jezng@fb.com>
Wed, 11 Jan 2023 22:13:33 +0000 (17:13 -0500)
committerJez Ng <jezng@fb.com>
Wed, 11 Jan 2023 22:13:33 +0000 (17:13 -0500)
Skips the divide operation which is generally expensive. Not that it
matters in this diff, the code changed is not particularly hot, but just
for principle & consistency...

Reviewed By: #lld-macho, oontvoo, MaskRay

Differential Revision: https://reviews.llvm.org/D141461

lld/MachO/Writer.cpp

index 880d4290c4e8dc700a90f25018ca17f72c46715c..b88f99c920f67b94d3b7ac7187a7bafb770e1c7f 100644 (file)
@@ -133,8 +133,8 @@ public:
   LCSubFramework(StringRef umbrella) : umbrella(umbrella) {}
 
   uint32_t getSize() const override {
-    return alignTo(sizeof(sub_framework_command) + umbrella.size() + 1,
-                   target->wordSize);
+    return alignToPowerOf2(sizeof(sub_framework_command) + umbrella.size() + 1,
+                           target->wordSize);
   }
 
   void writeTo(uint8_t *buf) const override {
@@ -388,7 +388,8 @@ public:
   explicit LCRPath(StringRef path) : path(path) {}
 
   uint32_t getSize() const override {
-    return alignTo(sizeof(rpath_command) + path.size() + 1, target->wordSize);
+    return alignToPowerOf2(sizeof(rpath_command) + path.size() + 1,
+                           target->wordSize);
   }
 
   void writeTo(uint8_t *buf) const override {
@@ -412,8 +413,8 @@ public:
   explicit LCDyldEnv(StringRef name) : name(name) {}
 
   uint32_t getSize() const override {
-    return alignTo(sizeof(dyld_env_command) + name.size() + 1,
-                   target->wordSize);
+    return alignToPowerOf2(sizeof(dyld_env_command) + name.size() + 1,
+                           target->wordSize);
   }
 
   void writeTo(uint8_t *buf) const override {
@@ -1075,8 +1076,8 @@ void Writer::finalizeAddresses() {
     // `fileOff + fileSize == next segment fileOff`. So we call alignTo() before
     // (instead of after) computing fileSize to ensure that the segments are
     // contiguous. We handle addr / vmSize similarly for the same reason.
-    fileOff = alignTo(fileOff, pageSize);
-    addr = alignTo(addr, pageSize);
+    fileOff = alignToPowerOf2(fileOff, pageSize);
+    addr = alignToPowerOf2(addr, pageSize);
     seg->vmSize = addr - seg->addr;
     seg->fileSize = fileOff - seg->fileOff;
     seg->assignAddressesToStartEndSymbols();