SuccessChanges

Summary

  1. [WebAssembly] Compute and export TLS block alignment Summary: Add immutable WASM global `__tls_align` which stores the alignment requirements of the TLS segment. Add `__builtin_wasm_tls_align()` intrinsic to get this alignment in Clang. The expected usage has now changed to: __wasm_init_tls(memalign(__builtin_wasm_tls_align(), __builtin_wasm_tls_size())); Reviewers: tlively, aheejin, sbc100, sunfish, alexcrichton Reviewed By: tlively Subscribers: dschuff, jgravelle-google, hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D65028
  2. Re-commit: r366610 and r366612: Expand pseudo-components before embedding in llvm-config There were two main problems: * The 'nativecodegen' pseudo-component was unconditionally adding ${native_tgt}CodeGen even though it conditionally added ${native_tgt}Info and ${native_tgt}Desc. This has been fixed by making ${native_tgt}CodeGen conditional too * The 'all' pseudo-component was causing library names like LLVMLLVMDemangle as the expansion was to a library name and not a component. There doesn't seem to be a list of available components anywhere so this has been fixed by moving the expansion of 'all' back where it was before. This manifested in different ways on different builders but it was the same root cause
Revision 366624 by quantum:
[WebAssembly] Compute and export TLS block alignment

Summary:
Add immutable WASM global `__tls_align` which stores the alignment
requirements of the TLS segment.

Add `__builtin_wasm_tls_align()` intrinsic to get this alignment in Clang.

The expected usage has now changed to:

    __wasm_init_tls(memalign(__builtin_wasm_tls_align(),
                             __builtin_wasm_tls_size()));

Reviewers: tlively, aheejin, sbc100, sunfish, alexcrichton

Reviewed By: tlively

Subscribers: dschuff, jgravelle-google, hiraditya, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D65028
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsWebAssembly.defN/A
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppN/A
The file was modified/cfe/trunk/test/CodeGen/builtins-wasm.cN/A
The file was added/lld/trunk/test/wasm/tls-align.llN/A
The file was modified/lld/trunk/test/wasm/tls.llN/A
The file was modified/lld/trunk/wasm/Driver.cppN/A
The file was modified/lld/trunk/wasm/Symbols.cppN/A
The file was modified/lld/trunk/wasm/Symbols.hN/A
The file was modified/lld/trunk/wasm/Writer.cppN/A
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.tdtrunk/include/llvm/IR/IntrinsicsWebAssembly.td
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpptrunk/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpptrunk/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/tls-general-dynamic.lltrunk/test/CodeGen/WebAssembly/tls-general-dynamic.ll
Revision 366622 by dsanders:
Re-commit: r366610 and r366612: Expand pseudo-components before embedding in llvm-config

There were two main problems:
* The 'nativecodegen' pseudo-component was unconditionally adding
  ${native_tgt}CodeGen even though it conditionally added ${native_tgt}Info and
  ${native_tgt}Desc. This has been fixed by making ${native_tgt}CodeGen
  conditional too
* The 'all' pseudo-component was causing library names like LLVMLLVMDemangle as
  the expansion was to a library name and not a component. There doesn't seem to
  be a list of available components anywhere so this has been fixed by moving the
  expansion of 'all' back where it was before. This manifested in different ways
  on different builders but it was the same root cause
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/LLVM-Config.cmaketrunk/cmake/modules/LLVM-Config.cmake
The file was modified/llvm/trunk/tools/llvm-config/BuildVariables.inc.intrunk/tools/llvm-config/BuildVariables.inc.in
The file was modified/llvm/trunk/tools/llvm-config/CMakeLists.txttrunk/tools/llvm-config/CMakeLists.txt

Summary

  1. [WebAssembly] Compute and export TLS block alignment Summary: Add immutable WASM global `__tls_align` which stores the alignment requirements of the TLS segment. Add `__builtin_wasm_tls_align()` intrinsic to get this alignment in Clang. The expected usage has now changed to: __wasm_init_tls(memalign(__builtin_wasm_tls_align(), __builtin_wasm_tls_size())); Reviewers: tlively, aheejin, sbc100, sunfish, alexcrichton Reviewed By: tlively Subscribers: dschuff, jgravelle-google, hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D65028
  2. [LTO] Always mark regular LTO units with EnableSplitLTOUnit=1 Summary: Regular LTO modules do not need LTO Unit splitting, only ThinLTO does (they must be consistently split into regular and Thin units for optimizations such as whole program devirtualization and lower type tests). In order to avoid spurious errors from LTO when combining with split ThinLTO modules, always set this flag for regular LTO modules. Reviewers: pcc Subscribers: mehdi_amini, Prazek, inglorion, steven_wu, dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65009
Revision 366624 by quantum:
[WebAssembly] Compute and export TLS block alignment

Summary:
Add immutable WASM global `__tls_align` which stores the alignment
requirements of the TLS segment.

Add `__builtin_wasm_tls_align()` intrinsic to get this alignment in Clang.

The expected usage has now changed to:

    __wasm_init_tls(memalign(__builtin_wasm_tls_align(),
                             __builtin_wasm_tls_size()));

Reviewers: tlively, aheejin, sbc100, sunfish, alexcrichton

Reviewed By: tlively

Subscribers: dschuff, jgravelle-google, hiraditya, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D65028
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsWebAssembly.deftrunk/include/clang/Basic/BuiltinsWebAssembly.def
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cpptrunk/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/builtins-wasm.ctrunk/test/CodeGen/builtins-wasm.c
The file was added/lld/trunk/test/wasm/tls-align.llN/A
The file was modified/lld/trunk/test/wasm/tls.llN/A
The file was modified/lld/trunk/wasm/Driver.cppN/A
The file was modified/lld/trunk/wasm/Symbols.cppN/A
The file was modified/lld/trunk/wasm/Symbols.hN/A
The file was modified/lld/trunk/wasm/Writer.cppN/A
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.tdN/A
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cppN/A
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyMCInstLower.cppN/A
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/tls-general-dynamic.llN/A
Revision 366623 by tejohnson:
[LTO] Always mark regular LTO units with EnableSplitLTOUnit=1

Summary:
Regular LTO modules do not need LTO Unit splitting, only ThinLTO does
(they must be consistently split into regular and Thin units for
optimizations such as whole program devirtualization and lower type
tests). In order to avoid spurious errors from LTO when combining with
split ThinLTO modules, always set this flag for regular LTO modules.

Reviewers: pcc

Subscribers: mehdi_amini, Prazek, inglorion, steven_wu, dexonsmith, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D65009
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/BackendUtil.cpptrunk/lib/CodeGen/BackendUtil.cpp
The file was added/cfe/trunk/test/CodeGen/split-lto-unit.ctrunk/test/CodeGen/split-lto-unit.c