[all-commits] [llvm/llvm-project] 3787ee: reland [IR] make -stack-alignment= into a module attr

Nick Desaulniers via All-commits all-commits at lists.llvm.org
Tue Jun 8 11:00:12 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3787ee457173c3612aac4c9b1a2b6d6ab0202616
      https://github.com/llvm/llvm-project/commit/3787ee457173c3612aac4c9b1a2b6d6ab0202616
  Author: Nick Desaulniers <ndesaulniers at google.com>
  Date:   2021-06-08 (Tue, 08 Jun 2021)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/CodeGen/stackrealign-main.c
    M llvm/include/llvm/IR/Module.h
    M llvm/include/llvm/Target/TargetOptions.h
    M llvm/lib/CodeGen/CommandFlags.cpp
    M llvm/lib/IR/Module.cpp
    M llvm/lib/Target/Mips/MipsCallLowering.cpp
    M llvm/lib/Target/Mips/MipsTargetMachine.cpp
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    M llvm/test/CodeGen/Generic/ForceStackAlign.ll
    M llvm/test/CodeGen/Mips/stack-alignment.ll
    M llvm/test/CodeGen/X86/base-pointer-and-cmpxchg.ll
    M llvm/test/CodeGen/X86/base-pointer-and-mwaitx.ll
    A llvm/test/CodeGen/X86/dynamic-allocas-VLAs-stack-align.ll
    M llvm/test/CodeGen/X86/dynamic-allocas-VLAs.ll
    M llvm/test/CodeGen/X86/force-align-stack-alloca.ll
    M llvm/test/CodeGen/X86/hipe-cc.ll
    M llvm/test/CodeGen/X86/hipe-cc64.ll
    A llvm/test/CodeGen/X86/movtopush-stack-align.ll
    M llvm/test/CodeGen/X86/movtopush.ll
    M llvm/test/CodeGen/X86/pr11468.ll
    M llvm/test/CodeGen/X86/unaligned-spill-folding.ll
    M llvm/test/CodeGen/X86/x86-64-baseptr.ll
    M llvm/test/CodeGen/X86/x86-64-xmm-spill-unaligned.ll
    A llvm/test/Linker/stack-alignment.ll

  Log Message:
  -----------
  reland [IR] make -stack-alignment= into a module attr

Relands commit 433c8d950cb3a1fa0977355ce0367e8c763a3f13 with fixes for
MIPS.

Similar to D102742, specifying the stack alignment via CodegenOpts means
that this flag gets dropped during LTO, unless the command line is
re-specified as a plugin opt. Instead, encode this information as a
module level attribute so that we don't have to expose this llvm
internal flag when linking the Linux kernel with LTO.

Looks like external dependencies might need a fix:
* https://github.com/llvm-hs/llvm-hs/issues/345
* https://github.com/halide/Halide/issues/6079

Link: https://github.com/ClangBuiltLinux/linux/issues/1377

Reviewed By: tejohnson

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




More information about the All-commits mailing list