MaskRay wrote: > > Aligning the targets of branches is a different thing from what you've > > implemented. There are basic blocks which are not branch targets, and there > > are branch targets which are not at the beginning of a basic block. (Branch > > targets that aren't at the beginning of a basic block are rare on most > > targets, but it doesn't seem like something we should completely ignore.) > > This makes sense, thanks. Would there be an interest in something like > [[clang::x86_align_branch_boundary]] that would align branch instructions in > a function?
(I was involved in adding `-mbranches-within-32B-boundaries` and relevant assembler support.) I think the interest is low. A function attribute is for finer granularity so that you can mix some functions with unannotated functions. Users either specify `-mbranches-within-32B-boundaries` to mitigate performance penalty for the whole TU (or globally for LTO) when a microcode update is applied for certain Intel CPUs or not. I am not sure a case where people care for specific functions and want annotating them. https://github.com/llvm/llvm-project/pull/80765 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits