[all-commits] [llvm/llvm-project] e6bf48: [X86] Don't request 0x90 nop filling in p2align di...

Jeremy Morse via All-commits all-commits at lists.llvm.org
Wed Oct 2 03:14:27 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e6bf48d11047e970cb24554a01b65b566d6b5d22
      https://github.com/llvm/llvm-project/commit/e6bf48d11047e970cb24554a01b65b566d6b5d22
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-10-02 (Wed, 02 Oct 2024)

  Changed paths:
    M clang/test/CodeGen/align-loops.c
    M llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
    M llvm/test/CodeGen/X86/2006-08-21-ExtraMovInst.ll
    M llvm/test/CodeGen/X86/2007-01-13-StackPtrIndex.ll
    M llvm/test/CodeGen/X86/2007-03-15-GEP-Idx-Sink.ll
    M llvm/test/CodeGen/X86/2007-10-12-CoalesceExtSubReg.ll
    M llvm/test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll
    M llvm/test/CodeGen/X86/2007-11-06-InstrSched.ll
    M llvm/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll
    M llvm/test/CodeGen/X86/2008-04-28-CoalescerBug.ll
    M llvm/test/CodeGen/X86/2008-08-06-CmpStride.ll
    M llvm/test/CodeGen/X86/2008-12-01-loop-iv-used-outside-loop.ll
    M llvm/test/CodeGen/X86/2009-02-26-MachineLICMBug.ll
    M llvm/test/CodeGen/X86/2009-04-25-CoalescerBug.ll
    M llvm/test/CodeGen/X86/2009-08-12-badswitch.ll
    M llvm/test/CodeGen/X86/2020_12_02_decrementing_loop.ll
    M llvm/test/CodeGen/X86/AMX/amx-across-func.ll
    M llvm/test/CodeGen/X86/AMX/amx-ldtilecfg-insert.ll
    M llvm/test/CodeGen/X86/AMX/amx-lower-tile-copy.ll
    M llvm/test/CodeGen/X86/AMX/amx-spill-merge.ll
    M llvm/test/CodeGen/X86/AMX/amx-tile-basic.ll
    M llvm/test/CodeGen/X86/MachineSink-Issue98477.ll
    M llvm/test/CodeGen/X86/MergeConsecutiveStores.ll
    M llvm/test/CodeGen/X86/PR71178-register-coalescer-crash.ll
    M llvm/test/CodeGen/X86/SwitchLowering.ll
    M llvm/test/CodeGen/X86/addr-mode-matcher-2.ll
    M llvm/test/CodeGen/X86/align-basic-block-sections.mir
    M llvm/test/CodeGen/X86/and-sink.ll
    M llvm/test/CodeGen/X86/apx/push2-pop2.ll
    M llvm/test/CodeGen/X86/apx/setzucc.ll
    M llvm/test/CodeGen/X86/assertzext-demanded.ll
    M llvm/test/CodeGen/X86/atom-pad-short-functions.ll
    M llvm/test/CodeGen/X86/atomic-bit-test.ll
    M llvm/test/CodeGen/X86/atomic-flags.ll
    M llvm/test/CodeGen/X86/atomic-idempotent.ll
    M llvm/test/CodeGen/X86/atomic-minmax-i6432.ll
    M llvm/test/CodeGen/X86/atomic-non-integer-fp128.ll
    M llvm/test/CodeGen/X86/atomic-non-integer.ll
    M llvm/test/CodeGen/X86/atomic-rm-bit-test-64.ll
    M llvm/test/CodeGen/X86/atomic-rm-bit-test.ll
    M llvm/test/CodeGen/X86/atomic-xor.ll
    M llvm/test/CodeGen/X86/atomic128.ll
    M llvm/test/CodeGen/X86/atomicrmw-cond-sub-clamp.ll
    M llvm/test/CodeGen/X86/atomicrmw-fadd-fp-vector.ll
    M llvm/test/CodeGen/X86/atomicrmw-uinc-udec-wrap.ll
    M llvm/test/CodeGen/X86/avx-cmp.ll
    M llvm/test/CodeGen/X86/avx-vbroadcast.ll
    M llvm/test/CodeGen/X86/avx-vzeroupper.ll
    M llvm/test/CodeGen/X86/avx2-vbroadcast.ll
    M llvm/test/CodeGen/X86/avx512-broadcast-unfold.ll
    M llvm/test/CodeGen/X86/avx512-i1test.ll
    M llvm/test/CodeGen/X86/avx512vnni-combine.ll
    M llvm/test/CodeGen/X86/avxvnni-combine.ll
    M llvm/test/CodeGen/X86/block-placement.ll
    M llvm/test/CodeGen/X86/break-false-dep.ll
    M llvm/test/CodeGen/X86/callbr-asm-blockplacement.ll
    M llvm/test/CodeGen/X86/cast-vsel.ll
    M llvm/test/CodeGen/X86/cmpxchg-clobber-flags.ll
    M llvm/test/CodeGen/X86/cmpxchg-i128-i1.ll
    M llvm/test/CodeGen/X86/coalesce-esp.ll
    M llvm/test/CodeGen/X86/coalescer-breaks-subreg-to-reg-liveness-reduced.ll
    M llvm/test/CodeGen/X86/coalescer-commute1.ll
    M llvm/test/CodeGen/X86/coalescer-commute4.ll
    M llvm/test/CodeGen/X86/coalescer-dead-flag-verifier-error.ll
    M llvm/test/CodeGen/X86/code-align-loops.ll
    M llvm/test/CodeGen/X86/code_placement_align_all.ll
    M llvm/test/CodeGen/X86/combine-pmuldq.ll
    M llvm/test/CodeGen/X86/constant-pool-sharing.ll
    M llvm/test/CodeGen/X86/copy-eflags.ll
    M llvm/test/CodeGen/X86/dag-update-nodetomatch.ll
    M llvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll
    M llvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll
    M llvm/test/CodeGen/X86/fdiv-combine.ll
    M llvm/test/CodeGen/X86/fixup-lea.ll
    M llvm/test/CodeGen/X86/fma-commute-loop.ll
    M llvm/test/CodeGen/X86/fma-intrinsics-phi-213-to-231.ll
    M llvm/test/CodeGen/X86/fold-call-3.ll
    M llvm/test/CodeGen/X86/fold-loop-of-urem.ll
    M llvm/test/CodeGen/X86/fp-une-cmp.ll
    M llvm/test/CodeGen/X86/hoist-invariant-load.ll
    M llvm/test/CodeGen/X86/i128-mul.ll
    M llvm/test/CodeGen/X86/i386-shrink-wrapping.ll
    M llvm/test/CodeGen/X86/icmp-shift-opt.ll
    M llvm/test/CodeGen/X86/ifunc-asm.ll
    M llvm/test/CodeGen/X86/innermost-loop-alignment.ll
    M llvm/test/CodeGen/X86/ins_subreg_coalesce-3.ll
    M llvm/test/CodeGen/X86/issue76416.ll
    M llvm/test/CodeGen/X86/kcfi-patchable-function-prefix.ll
    M llvm/test/CodeGen/X86/kcfi.ll
    M llvm/test/CodeGen/X86/known-bits.ll
    M llvm/test/CodeGen/X86/lea-opt-cse2.ll
    M llvm/test/CodeGen/X86/lea-opt-cse4.ll
    M llvm/test/CodeGen/X86/licm-symbol.ll
    M llvm/test/CodeGen/X86/loop-search.ll
    M llvm/test/CodeGen/X86/loop-strength-reduce5.ll
    M llvm/test/CodeGen/X86/loop-strength-reduce7.ll
    M llvm/test/CodeGen/X86/lsr-addrecloops.ll
    M llvm/test/CodeGen/X86/lsr-interesting-step.ll
    M llvm/test/CodeGen/X86/lsr-loop-exit-cond.ll
    M llvm/test/CodeGen/X86/lsr-negative-stride.ll
    M llvm/test/CodeGen/X86/lsr-sort.ll
    M llvm/test/CodeGen/X86/lsr-static-addr.ll
    M llvm/test/CodeGen/X86/machine-cp.ll
    M llvm/test/CodeGen/X86/machine-cse.ll
    M llvm/test/CodeGen/X86/madd.ll
    M llvm/test/CodeGen/X86/masked-iv-safe.ll
    M llvm/test/CodeGen/X86/masked-iv-unsafe.ll
    M llvm/test/CodeGen/X86/merge_store.ll
    M llvm/test/CodeGen/X86/min-legal-vector-width.ll
    M llvm/test/CodeGen/X86/mmx-arith.ll
    M llvm/test/CodeGen/X86/negative-stride-fptosi-user.ll
    M llvm/test/CodeGen/X86/optimize-max-0.ll
    M llvm/test/CodeGen/X86/optimize-max-1.ll
    M llvm/test/CodeGen/X86/optimize-max-2.ll
    M llvm/test/CodeGen/X86/or-address.ll
    M llvm/test/CodeGen/X86/overflowing-iv-codegen.ll
    M llvm/test/CodeGen/X86/patchable-prologue.ll
    M llvm/test/CodeGen/X86/pcsections-atomics.ll
    M llvm/test/CodeGen/X86/peep-test-0.ll
    M llvm/test/CodeGen/X86/peep-test-1.ll
    M llvm/test/CodeGen/X86/peephole-copy.ll
    M llvm/test/CodeGen/X86/pic-load-remat.ll
    M llvm/test/CodeGen/X86/postalloc-coalescing.ll
    M llvm/test/CodeGen/X86/pr14314.ll
    M llvm/test/CodeGen/X86/pr22338.ll
    M llvm/test/CodeGen/X86/pr30562.ll
    M llvm/test/CodeGen/X86/pr32108.ll
    M llvm/test/CodeGen/X86/pr33290.ll
    M llvm/test/CodeGen/X86/pr33747.ll
    M llvm/test/CodeGen/X86/pr37916.ll
    M llvm/test/CodeGen/X86/pr38185.ll
    M llvm/test/CodeGen/X86/pr38217.ll
    M llvm/test/CodeGen/X86/pr38539.ll
    M llvm/test/CodeGen/X86/pr38795.ll
    M llvm/test/CodeGen/X86/pr42565.ll
    M llvm/test/CodeGen/X86/pr42909.ll
    M llvm/test/CodeGen/X86/pr43529.ll
    M llvm/test/CodeGen/X86/pr44140.ll
    M llvm/test/CodeGen/X86/pr44412.ll
    M llvm/test/CodeGen/X86/pr47874.ll
    M llvm/test/CodeGen/X86/pr49393.ll
    M llvm/test/CodeGen/X86/pr49451.ll
    M llvm/test/CodeGen/X86/pr50374.ll
    M llvm/test/CodeGen/X86/pr50782.ll
    M llvm/test/CodeGen/X86/pr51371.ll
    M llvm/test/CodeGen/X86/pr5145.ll
    M llvm/test/CodeGen/X86/pr51615.ll
    M llvm/test/CodeGen/X86/pr53842.ll
    M llvm/test/CodeGen/X86/pr53990-incorrect-machine-sink.ll
    M llvm/test/CodeGen/X86/pr55648.ll
    M llvm/test/CodeGen/X86/pr61923.ll
    M llvm/test/CodeGen/X86/pr63108.ll
    M llvm/test/CodeGen/X86/pr63692.ll
    M llvm/test/CodeGen/X86/pr65895.ll
    M llvm/test/CodeGen/X86/pr68539.ll
    M llvm/test/CodeGen/X86/pr93000.ll
    M llvm/test/CodeGen/X86/promote-sra-by-itself.ll
    M llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll
    M llvm/test/CodeGen/X86/rdrand.ll
    M llvm/test/CodeGen/X86/retpoline.ll
    M llvm/test/CodeGen/X86/reverse_branches.ll
    M llvm/test/CodeGen/X86/sad.ll
    M llvm/test/CodeGen/X86/saddo-redundant-add.ll
    A llvm/test/CodeGen/X86/same-align-bytes-with-llasm-llobj.ll
    M llvm/test/CodeGen/X86/scalar_widen_div.ll
    M llvm/test/CodeGen/X86/setcc-lowering.ll
    M llvm/test/CodeGen/X86/setcc-non-simple-type.ll
    M llvm/test/CodeGen/X86/shift-parts.ll
    M llvm/test/CodeGen/X86/sink-out-of-loop.ll
    M llvm/test/CodeGen/X86/speculative-load-hardening.ll
    M llvm/test/CodeGen/X86/split-extend-vector-inreg.ll
    M llvm/test/CodeGen/X86/sse-domains.ll
    M llvm/test/CodeGen/X86/stack-coloring-wineh.ll
    M llvm/test/CodeGen/X86/switch.ll
    M llvm/test/CodeGen/X86/tail-dup-merge-loop-headers.ll
    M llvm/test/CodeGen/X86/tail-dup-multiple-latch-loop.ll
    M llvm/test/CodeGen/X86/tail-dup-partial.ll
    M llvm/test/CodeGen/X86/tail-dup-repeat.ll
    M llvm/test/CodeGen/X86/tailcall-cgp-dup.ll
    M llvm/test/CodeGen/X86/tls-loads-control3.ll
    M llvm/test/CodeGen/X86/trunc-store.ll
    M llvm/test/CodeGen/X86/twoaddr-coalesce.ll
    M llvm/test/CodeGen/X86/twoaddr-lea.ll
    M llvm/test/CodeGen/X86/unaligned-load.ll
    M llvm/test/CodeGen/X86/undef-label.ll
    M llvm/test/CodeGen/X86/vec_setcc-2.ll
    M llvm/test/CodeGen/X86/vector-fshl-128.ll
    M llvm/test/CodeGen/X86/vector-fshl-256.ll
    M llvm/test/CodeGen/X86/vector-pack-128.ll
    M llvm/test/CodeGen/X86/vector-shift-by-select-loop.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining.ll
    M llvm/test/CodeGen/X86/vselect-avx.ll
    M llvm/test/CodeGen/X86/widen_arith-1.ll
    M llvm/test/CodeGen/X86/widen_arith-2.ll
    M llvm/test/CodeGen/X86/widen_arith-3.ll
    M llvm/test/CodeGen/X86/widen_arith-4.ll
    M llvm/test/CodeGen/X86/widen_arith-5.ll
    M llvm/test/CodeGen/X86/widen_arith-6.ll
    M llvm/test/CodeGen/X86/widen_cast-1.ll
    M llvm/test/CodeGen/X86/widen_cast-2.ll
    M llvm/test/CodeGen/X86/widen_cast-4.ll
    M llvm/test/CodeGen/X86/x86-shrink-wrapping.ll
    M llvm/test/CodeGen/X86/x86-win64-shrink-wrapping.ll
    M llvm/test/CodeGen/X86/xor.ll
    M llvm/test/CodeGen/X86/xray-attribute-instrumentation.ll
    M llvm/test/CodeGen/X86/xray-custom-log.ll
    M llvm/test/CodeGen/X86/xray-partial-instrumentation-skip-entry.ll
    M llvm/test/CodeGen/X86/xray-partial-instrumentation-skip-exit.ll
    M llvm/test/CodeGen/X86/xray-selective-instrumentation.ll
    M llvm/test/CodeGen/X86/xray-tail-call-sled.ll
    M llvm/test/DebugInfo/COFF/pieces.ll
    M llvm/test/DebugInfo/X86/header.ll
    M llvm/test/DebugInfo/X86/loop-align-debug.ll
    M llvm/test/Transforms/LoopStrengthReduce/X86/2011-11-29-postincphi.ll
    M llvm/test/Transforms/LoopStrengthReduce/X86/ivchain-X86.ll
    M llvm/test/Transforms/LoopStrengthReduce/X86/lsr-insns-1.ll
    M llvm/test/Transforms/LoopStrengthReduce/X86/macro-fuse-cmp.ll

  Log Message:
  -----------
  [X86] Don't request 0x90 nop filling in p2align directives (#110134)

As of rev ea222be0d, LLVMs assembler will actually try to honour the
"fill value" part of p2align directives. X86 printed these as 0x90, which
isn't actually what it wanted: we want multi-byte nops for .text
padding. Compiling via a textual assembly file produces single-byte
nop padding since ea222be0d but the built-in assembler will produce
multi-byte nops. This divergent behaviour is undesirable.

To fix: don't set the byte padding field for x86, which allows the
assembler to pick multi-byte nops. Test that we get the same multi-byte
padding when compiled via textual assembly or directly to object file.
Added same-align-bytes-with-llasm-llobj.ll to that effect, updated
numerous other tests to not contain check-lines for the explicit padding.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list