[llvm] [X86] Reimplement bundle alignment mode (PR #175830)

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 14 19:22:27 PDT 2026


================
@@ -316,6 +334,82 @@ void MCELFStreamer::emitIdent(StringRef IdentString) {
   popSection();
 }
 
+void MCELFStreamer::emitBundleAlignMode(Align Alignment) {
+  if (Log2(Alignment) > 30)
+    getContext().reportError(getStartTokLoc(),
+                             ".bundle_align_mode alignment must be <= 30");
+  MCAssembler &Assembler = getAssembler();
+  setAllowAutoPadding(true);
+
+  if (Alignment > 1 && (Assembler.getBundleAlignSize() == 0 ||
+                        Assembler.getBundleAlignSize() == Alignment.value()))
+    Assembler.setBundleAlignSize(Alignment.value());
+  else
+    getContext().reportError(getStartTokLoc(),
+                             ".bundle_align_mode cannot be changed once set");
----------------
MaskRay wrote:

Untested. `nested-lock.s` only re-sets `.bundle_align_mode` to the *same* value (allowed); a second `.bundle_align_mode` with a *different* size never hits this error. One line in `bundle-errors.s` covers it.

https://github.com/llvm/llvm-project/pull/175830


More information about the llvm-commits mailing list