#
80dc0661 |
| 10-Feb-2021 |
Wei Wang <apollo.mobility@gmail.com> |
[LTO] Perform DSOLocal propagation in combined index
Perform DSOLocal propagation within summary list of every GV. This avoids the repeated query of this information during function importing.
Diff
[LTO] Perform DSOLocal propagation in combined index
Perform DSOLocal propagation within summary list of every GV. This avoids the repeated query of this information during function importing.
Differential Revision: https://reviews.llvm.org/D96398
show more ...
|
#
db00953f |
| 12-Feb-2021 |
James Y Knight <jyknight@google.com> |
Fix bitcode decoder error in "Encode alignment attribute for `atomicrmw`"
The wrong record field number was being used in bitcode decoding, which broke a self-hosted LTO build. (Yet, somehow, this _
Fix bitcode decoder error in "Encode alignment attribute for `atomicrmw`"
The wrong record field number was being used in bitcode decoding, which broke a self-hosted LTO build. (Yet, somehow, this _doesn't_ seem to have broken simple bitcode encode/decode roundtrip tests, and I'm not sure why...)
Fixes commit d06ab79816785fa362e7d96d7a398bea8064cba7
show more ...
|
#
17517f31 |
| 11-Feb-2021 |
Guillaume Chatelet <gchatelet@google.com> |
Encode alignment attribute for `cmpxchg`
This is a follow up patch to D83136 adding the align attribute to `cmpxchg`. See also D83465 for `atomicrmw`.
Differential Revision: https://reviews.llvm.or
Encode alignment attribute for `cmpxchg`
This is a follow up patch to D83136 adding the align attribute to `cmpxchg`. See also D83465 for `atomicrmw`.
Differential Revision: https://reviews.llvm.org/D87443
show more ...
|
#
d06ab798 |
| 11-Feb-2021 |
Guillaume Chatelet <gchatelet@google.com> |
Encode alignment attribute for `atomicrmw`
This is a follow up patch to D83136 adding the align attribute to `atomicwmw`.
Differential Revision: https://reviews.llvm.org/D83465
|
#
54fb3ca9 |
| 27-Jan-2021 |
Fangrui Song <i@maskray.me> |
[ThinLTO] Add Visibility bits to GlobalValueSummary::GVFlags
Imported functions and variable get the visibility from the module supplying the definition. However, non-imported definitions do not ge
[ThinLTO] Add Visibility bits to GlobalValueSummary::GVFlags
Imported functions and variable get the visibility from the module supplying the definition. However, non-imported definitions do not get the visibility from (ELF) the most constraining visibility among all modules (Mach-O) the visibility of the prevailing definition.
This patch
* adds visibility bits to GlobalValueSummary::GVFlags * computes the result visibility and propagates it to all definitions
Protected/hidden can imply dso_local which can enable some optimizations (this is stronger than GVFlags::DSOLocal because the implied dso_local can be leveraged for ELF -shared while default visibility dso_local has to be cleared for ELF -shared).
Note: we don't have summaries for declarations, so for ELF if a declaration has the most constraining visibility, the result visibility may not be that one.
Differential Revision: https://reviews.llvm.org/D92900
show more ...
|
#
16baad8f |
| 24-Jan-2021 |
Kazu Hirata <kazu@google.com> |
[llvm] Use pop_back_val (NFC)
|
Revision tags: llvmorg-11.1.0-rc1 |
|
#
1d0bc055 |
| 07-Jan-2021 |
Kazu Hirata <kazu@google.com> |
[llvm] Use llvm::append_range (NFC)
|
Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1 |
|
#
981a0bd8 |
| 20-Nov-2020 |
Luo, Yuanke <yuanke.luo@intel.com> |
[X86] Add x86_amx type for intel AMX.
The x86_amx is used for AMX intrisics. <256 x i32> is bitcast to x86_amx when it is used by AMX intrinsics, and x86_amx is bitcast to <256 x i32> when it is use
[X86] Add x86_amx type for intel AMX.
The x86_amx is used for AMX intrisics. <256 x i32> is bitcast to x86_amx when it is used by AMX intrinsics, and x86_amx is bitcast to <256 x i32> when it is used by load/store instruction. So amx intrinsics only operate on type x86_amx. It can help to separate amx intrinsics from llvm IR instructions (+-*/). Thank Craig for the idea. This patch depend on https://reviews.llvm.org/D87981.
Differential Revision: https://reviews.llvm.org/D91927
show more ...
|
#
3733463d |
| 18-Dec-2020 |
Rong Xu <xur@google.com> |
[IR][PGO] Add hot func attribute and use hot/cold attribute in func section
Clang FE currently has hot/cold function attribute. But we only have cold function attribute in LLVM IR.
This patch adds
[IR][PGO] Add hot func attribute and use hot/cold attribute in func section
Clang FE currently has hot/cold function attribute. But we only have cold function attribute in LLVM IR.
This patch adds support of hot function attribute to LLVM IR. This attribute will be used in setting function section prefix/suffix. Currently .hot and .unlikely suffix only are added in PGO (Sample PGO) compilation (through isFunctionHotInCallGraph and isFunctionColdInCallGraph).
This patch changes the behavior. The new behavior is: (1) If the user annotates a function as hot or isFunctionHotInCallGraph is true, this function will be marked as hot. Otherwise, (2) If the user annotates a function as cold or isFunctionColdInCallGraph is true, this function will be marked as cold.
The changes are: (1) user annotated function attribute will used in setting function section prefix/suffix. (2) hot attribute overwrites profile count based hotness. (3) profile count based hotness overwrite user annotated cold attribute.
The intention for these changes is to provide the user a way to mark certain function as hot in cases where training input is hard to cover all the hot functions.
Differential Revision: https://reviews.llvm.org/D92493
show more ...
|
#
7c0e3a77 |
| 14-Dec-2020 |
Gulfem Savrun Yeniceri <gulfem@google.com> |
[clang][IR] Add support for leaf attribute
This patch adds support for leaf attribute as an optimization hint in Clang/LLVM.
Differential Revision: https://reviews.llvm.org/D90275
|
#
b5ad32ef |
| 11-Dec-2020 |
Fangrui Song <i@maskray.me> |
Migrate deprecated DebugLoc::get to DILocation::get
This migrates all LLVM (except Kaleidoscope and CodeGen/StackProtector.cpp) DebugLoc::get to DILocation::get.
The CodeGen/StackProtector.cpp usag
Migrate deprecated DebugLoc::get to DILocation::get
This migrates all LLVM (except Kaleidoscope and CodeGen/StackProtector.cpp) DebugLoc::get to DILocation::get.
The CodeGen/StackProtector.cpp usage may have a nullptr Scope and can trigger an assertion failure, so I don't migrate it.
Reviewed By: #debug-info, dblaikie
Differential Revision: https://reviews.llvm.org/D93087
show more ...
|
#
75f50e15 |
| 24-Nov-2020 |
Zhengyang Liu <liuz@cs.utah.edu> |
Adding PoisonValue for representing poison value explicitly in IR
Define ConstantData::PoisonValue. Add support for poison value to LLLexer/LLParser/BitcodeReader/BitcodeWriter. Add support for pois
Adding PoisonValue for representing poison value explicitly in IR
Define ConstantData::PoisonValue. Add support for poison value to LLLexer/LLParser/BitcodeReader/BitcodeWriter. Add support for poison value to llvm-c interface. Add support for poison value to OCaml binding. Add m_Poison in PatternMatch.
Differential Revision: https://reviews.llvm.org/D71126
show more ...
|
#
dd6087ca |
| 18-Nov-2020 |
Nick Desaulniers <ndesaulniers@google.com> |
Revert "[BitCode] decode nossp fn attr"
This reverts commit 0b11d018cc2f2c6bea5dac8dc72140cdb502ca02.
Going with a simpler approach.
|
#
5bf45ee1 |
| 30-Oct-2020 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
BitcodeReader::popValue - pass SmallVectorImpl<> as const reference. NFCI.
Fixes cppcheck warning.
|
#
0b11d018 |
| 26-Oct-2020 |
Nick Desaulniers <ndesaulniers@google.com> |
[BitCode] decode nossp fn attr
I missed this in https://reviews.llvm.org/D87956.
Reviewed By: void
Differential Revision: https://reviews.llvm.org/D90177
|
#
595c6156 |
| 20-Oct-2020 |
Atmn Patel <atmndp@gmail.com> |
[IR] Adds mustprogress as a LLVM IR attribute
This adds the LLVM IR attribute `mustprogress` as defined in LangRef through D86233. This attribute will be applied to functions with in languages like
[IR] Adds mustprogress as a LLVM IR attribute
This adds the LLVM IR attribute `mustprogress` as defined in LangRef through D86233. This attribute will be applied to functions with in languages like C++ where forward progress is guaranteed. Functions without this attribute are not required to make progress.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D85393
show more ...
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5 |
|
#
0a7cd99a |
| 29-Sep-2020 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Reapply "OpaquePtr: Add type to sret attribute"
This reverts commit eb9f7c28e5fe6d75fed3587023e17f2997c8024b.
Previously this was incorrectly handling linking of the contained type, so this merges
Reapply "OpaquePtr: Add type to sret attribute"
This reverts commit eb9f7c28e5fe6d75fed3587023e17f2997c8024b.
Previously this was incorrectly handling linking of the contained type, so this merges the fixes from D88973.
show more ...
|
#
b953a01b |
| 07-Oct-2020 |
Sam McCall <sam.mccall@gmail.com> |
Reapply [ADT] function_ref's constructor is unavailable if the argument is not callable.
This reverts commit 281703e67ffaee8e26efef86e0df3e145477f4cb.
GCC 5.4 bugs are worked around by avoiding use
Reapply [ADT] function_ref's constructor is unavailable if the argument is not callable.
This reverts commit 281703e67ffaee8e26efef86e0df3e145477f4cb.
GCC 5.4 bugs are worked around by avoiding use of variable templates.
Differential Revision: https://reviews.llvm.org/D88977
show more ...
|
#
281703e6 |
| 07-Oct-2020 |
Sam McCall <sam.mccall@gmail.com> |
Revert "[ADT] function_ref's constructor is unavailable if the argument is not callable."
This reverts commit 4cae6228d129d4c4dfb156c043977bb6b5690031.
Breaks GCC build: http://lab.llvm.org:8011/#/
Revert "[ADT] function_ref's constructor is unavailable if the argument is not callable."
This reverts commit 4cae6228d129d4c4dfb156c043977bb6b5690031.
Breaks GCC build: http://lab.llvm.org:8011/#/builders/8/builds/33/steps/6/logs/stdio
show more ...
|
#
4cae6228 |
| 06-Oct-2020 |
Sam McCall <sam.mccall@gmail.com> |
[ADT] function_ref's constructor is unavailable if the argument is not callable.
This allows overload sets containing function_ref arguments to work correctly Otherwise they're ambiguous as anything
[ADT] function_ref's constructor is unavailable if the argument is not callable.
This allows overload sets containing function_ref arguments to work correctly Otherwise they're ambiguous as anything "could be" converted to a function_ref.
This matches proposed std::function_ref, absl::function_ref, etc.
Differential Revision: https://reviews.llvm.org/D88901
show more ...
|
#
eb9f7c28 |
| 29-Sep-2020 |
Tres Popp <tpopp@google.com> |
Revert "OpaquePtr: Add type to sret attribute"
This reverts commit 55c4ff91bd820d72014f63dcf7f3d5a0d3397986.
Issues were introduced as discussed in https://reviews.llvm.org/D88241 where this change
Revert "OpaquePtr: Add type to sret attribute"
This reverts commit 55c4ff91bd820d72014f63dcf7f3d5a0d3397986.
Issues were introduced as discussed in https://reviews.llvm.org/D88241 where this change made previous bugs in the linker and BitCodeWriter visible.
show more ...
|
Revision tags: llvmorg-11.0.0-rc4 |
|
#
55c4ff91 |
| 23-Sep-2020 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
OpaquePtr: Add type to sret attribute
Make the corresponding change that was made for byval in b7141207a483d39b99c2b4da4eb3bb591eca9e1a. Like byval, this requires a bulk update of the test IR tests
OpaquePtr: Add type to sret attribute
Make the corresponding change that was made for byval in b7141207a483d39b99c2b4da4eb3bb591eca9e1a. Like byval, this requires a bulk update of the test IR tests to include the type before this can be mandatory.
show more ...
|
Revision tags: llvmorg-11.0.0-rc3 |
|
#
5a4a0cfc |
| 09-Sep-2020 |
Guillaume Chatelet <gchatelet@google.com> |
[NFC] Separate bitcode reading for FUNC_CODE_INST_CMPXCHG(_OLD)
This is preparatory work to unable storing alignment for AtomicCmpXchgInst. See D83136 for context and bug: https://bugs.llvm.org/show
[NFC] Separate bitcode reading for FUNC_CODE_INST_CMPXCHG(_OLD)
This is preparatory work to unable storing alignment for AtomicCmpXchgInst. See D83136 for context and bug: https://bugs.llvm.org/show_bug.cgi?id=27168
This is the fixed version of D83375, which was submitted and reverted.
Differential Revision: https://reviews.llvm.org/D87373
show more ...
|
Revision tags: llvmorg-11.0.0-rc2 |
|
#
fc4fd898 |
| 14-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[StackSafety] Use ValueInfo in ParamAccess::Call
This avoid GUID lookup in Index.findSummaryInModule. Follow up for D81242.
Reviewed By: tejohnson
Differential Revision: https://reviews.llvm.org/D
[StackSafety] Use ValueInfo in ParamAccess::Call
This avoid GUID lookup in Index.findSummaryInModule. Follow up for D81242.
Reviewed By: tejohnson
Differential Revision: https://reviews.llvm.org/D85269
show more ...
|
Revision tags: llvmorg-11.0.0-rc1 |
|
#
754deffd |
| 27-Jul-2020 |
Guillaume Chatelet <gchatelet@google.com> |
[NFC] Move BitcodeCommon.h from Bitstream to Bitcode
|