SuccessChanges

Summary

  1. Fix more syntax errors (details)
The file was modifiedzorg/jenkins/jobs/jobs/lldb-cmake-standalone (diff)
The file was modifiedzorg/jenkins/monorepo_build.py (diff)

Summary

  1. [mlir] [VectorOps] fixed minor typos in vector ops doc (details)
  2. [AArch64][GlobalISel] Remove duplicate attribute lookup code that was (details)
  3. [MS] Overhaul how clang passes overaligned args on x86_32 (details)
  4. [Utils] Use WeakTrackingVH in vector used as scratch storage. (details)
  5. [LTO/WPD] Enable aggressive WPD under LTO option (details)
  6. [Attributor][FIX] Store alignment only holds for the pointer value (details)
  7. [Attributor] `byval` arguments are always `noalias` (details)
  8. [Attributor][NFC] Fix spelling (details)
  9. [Attributor][NFC] Add an assertion (details)
  10. [Attributor][FIX][Alignment] Do not report a change if there was none (details)
  11. [Concepts] Make constraint expressions unevaluated until satisfaction (details)
  12. [LoopStrengthReduce] Reuse utility method to clean dead instructions. (details)
  13. [clang-tidy] Add clang-tidy headers to clang distribution (details)
  14. Fix bot failure from 59733525d37cf9ad88b5021b33ecdbaf2e18911c (details)
  15. [lldb/Util] Use md5 instead of python's hash function. (details)
  16. [Attributor][NFC] Do not (try to) simplify void values (details)
  17. [Attributor][FIX] Handle non-pointers when following uses (details)
  18. [Attributor][FIX] Avoid dangling pointers during code deletion (details)
  19. [Attributor] Record dependences only when necessary (details)
  20. [Attributor] Avoid REQUIRED dependences in favor of OPTIONAL ones (details)
  21. AMDGPU: Implement FDIV optimizations in AMDGPUCodeGenPrepare (details)
  22. [clang][clang-scan-deps] Aggregate the full dependency information. (details)
  23. [Concepts] Update cxx_status.html with Concepts support status (details)
  24. Add function attribute "patchable-function-prefix" to support (details)
  25. [X86][test] Add tests for -fpatchable-function-entry=N,M (where M>0) and (details)
  26. [Driver][CodeGen] Support -fpatchable-function-entry=N,M and (details)
Commit aabc3c59e131aa09c755d81fc1716d1d4833d52c by ajcbik
[mlir] [VectorOps] fixed minor typos in vector ops doc
Summary: Rationale: Some examples were using "offsets : [0, 2]" syntax
which should use a "=" instead. The same examples were referring to the
integer attribute array as k-dimensional, which is a bit confusing (it
is 1-dimensional, with k elements). Changed to "k-sized".
Reviewers: nicolasvasilache, andydavis1, ftynse
Reviewed By: nicolasvasilache
Subscribers: merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako,
shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb,
llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73293
The file was modifiedmlir/include/mlir/Dialect/VectorOps/VectorOps.td
Commit 44b496758f177df2655b6adf88173e552aacec05 by Amara Emerson
[AArch64][GlobalISel] Remove duplicate attribute lookup code that was
supposed to be cached. NFC.
When I cached this a long time ago it seems I forgot to remove the
locally declared variable of the same name in select(), so the caching
wasn't having any compile time benefit. Doh.
The file was modifiedllvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
Commit 2af74e27ed7d0832cbdde9cb969aaca7a42e99f9 by rnk
[MS] Overhaul how clang passes overaligned args on x86_32
MSVC 2013 would refuse to pass highly aligned things (typically vectors
and aggregates) by value. Users would receive this error:
t.cpp(11) : error C2719: 'w': formal parameter with
__declspec(align('32')) won't be aligned
t.cpp(11) : error C2719: 'q': formal parameter with
__declspec(align('32')) won't be aligned
However, in MSVC 2015, this behavior was changed, and highly aligned
things are now passed indirectly. To avoid breaking backwards
incompatibility, objects that do not have a *required* high alignment
(i.e. double) are still passed directly, even though they are not
naturally aligned. This change implements the new behavior of passing
things indirectly.
The new behavior is:
- up to three vector parameters can be passed in [XYZ]MM0-2
- remaining arguments with required alignment greater than 4 bytes are
passed indirectly
Previously, MSVC never passed things truly indirectly, meaning clang
would always apply the byval attribute to indirect arguments. We had to
go to the trouble of adding inalloca so that non-trivially copyable C++
types could be passed in place without copying the object
representation. When inalloca was added, we asserted that all arguments
passed indirectly must use byval. With this change, that assert no
longer holds, and I had to update inalloca to handle that case. The
implicit sret pointer parameter was already handled this way, and this
change generalizes some of that logic to arguments.
There are two cases that this change leaves unfixed: 1. objects that are
non-trivially copyable *and* overaligned 2. vectorcall + inalloca +
vectors
For case 1, I need to touch C++ ABI code in MicrosoftCXXABI.cpp, so I
want to do it in a follow-up.
For case 2, my fix is one line, but it will require updating IR tests to
use lots of inreg, so I wanted to separate it out.
Related to D71915 and D72110
Fixes most of PR44395
Reviewed By: rjmccall, craig.topper, erichkeane
Differential Revision: https://reviews.llvm.org/D72114
The file was addedclang/test/CodeGenCXX/inalloca-overaligned.cpp
The file was modifiedclang/include/clang/CodeGen/CGFunctionInfo.h
The file was addedclang/test/CodeGenCXX/inalloca-vector.cpp
The file was modifiedclang/test/CodeGen/x86_32-arguments-win32.c
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
Commit 9e66c4ec127ef6e73f1bafe06fe3fba45d59feee by asbirlea
[Utils] Use WeakTrackingVH in vector used as scratch storage.
The utility method RecursivelyDeleteTriviallyDeadInstructions receives
as input a vector of Instructions, where all inputs are valid
instructions. This same vector is used as a scratch storage (per the
header comment) to recursively delete instructions. If an instruction is
added as an operand of multiple other instructions, it may be added
twice, then deleted once, then the second reference in the vector is
invalid. Switch to using a Vector<WeakTrackingVH>. This change
facilitates a clean-up in LoopStrengthReduction.
The file was modifiedllvm/include/llvm/Transforms/Utils/Local.h
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopInstSimplify.cpp
The file was modifiedllvm/lib/Transforms/Scalar/InstSimplifyPass.cpp
Commit 59733525d37cf9ad88b5021b33ecdbaf2e18911c by tejohnson
[LTO/WPD] Enable aggressive WPD under LTO option
Summary: Third part in series to support Safe Whole Program
Devirtualization Enablement, see RFC here:
http://lists.llvm.org/pipermail/llvm-dev/2019-December/137543.html
This patch adds type test metadata under -fwhole-program-vtables, even
for classes without hidden visibility. It then changes WPD to skip
devirtualization for a virtual function call when any of the compatible
vtables has public vcall visibility.
Additionally, internal LLVM options as well as lld and gold-plugin
options are added which enable upgrading all public vcall visibility to
linkage unit (hidden) visibility during LTO. This enables the more
aggressive WPD to kick in based on LTO time knowledge of the visibility
guarantees.
Support was added to all flavors of LTO WPD (regular, hybrid and
index-only), and to both the new and old LTO APIs.
Unfortunately it was not simple to split the first and second parts of
this part of the change (the unconditional emission of type tests and
the upgrading of the vcall visiblity) as I needed a way to upgrade the
public visibility on legacy WPD llvm assembly tests that don't include
linkage unit vcall visibility specifiers, to avoid a lot of test churn.
I also added a mechanism to LowerTypeTests that allows dropping type
test assume sequences we now aggressively insert when we invoke
distributed ThinLTO backends with null indexes, which is used in testing
mode, and which doesn't invoke the normal ThinLTO backend pipeline.
Depends on D71907 and D71911.
Reviewers: pcc, evgeny777, steven_wu, espindola
Subscribers: emaste, Prazek, inglorion, arichardson, hiraditya, MaskRay,
dexonsmith, dang, davidxl, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D71913
The file was modifiedllvm/test/ThinLTO/X86/devirt_available_externally.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/devirt-single-impl.ll
The file was modifiedllvm/test/ThinLTO/X86/devirt_promote_legacy.ll
The file was modifiedllvm/test/ThinLTO/X86/cfi-devirt.ll
The file was modifiedllvm/lib/LTO/ThinLTOCodeGenerator.cpp
The file was modifiedllvm/test/ThinLTO/X86/devirt2.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/virtual-const-prop-begin.ll
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/uniform-retval-invoke.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/branch-funnel.ll
The file was modifiedclang/test/CodeGenCXX/lto-visibility-inference.cpp
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-non-constant-arg.ll
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp
The file was modifiedlld/ELF/Options.td
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/struct-vtable.ll
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-too-wide-ints.ll
The file was modifiedllvm/tools/gold/gold-plugin.cpp
The file was addedllvm/test/ThinLTO/X86/devirt_vcall_vis_hidden.ll
The file was modifiedlld/ELF/Config.h
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-single-impl.ll
The file was addedllvm/test/tools/gold/X86/devirt_vcall_vis_public.ll
The file was addedclang/test/CodeGenCXX/thinlto-distributed-type-metadata.cpp
The file was modifiedllvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
The file was modifiedllvm/tools/opt/opt.cpp
The file was modifiedllvm/include/llvm/LTO/Config.h
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-no-this.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-vcp.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-unique-ret-val.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-unsuccessful-checked.ll
The file was modifiedllvm/lib/LTO/LTO.cpp
The file was modifiedclang/test/CodeGenCXX/cfi-mfcall.cpp
The file was modifiedclang/lib/CodeGen/CGVTables.cpp
The file was modifiedclang/test/CodeGen/thinlto-distributed-cfi-devirt.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/unique-retval.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/virtual-const-prop-end.ll
The file was modifiedllvm/test/ThinLTO/X86/cache-typeid-resolutions.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/soa-vtable.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/constant-arg.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/virtual-const-prop-check.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/non-constant-vtable.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/pointer-vtable.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-decl.ll
The file was modifiedclang/lib/CodeGen/CodeGenModule.h
The file was modifiedllvm/test/ThinLTO/X86/devirt_alias.ll
The file was modifiedclang/lib/CodeGen/CGClass.cpp
The file was modifiedlld/ELF/LTO.cpp
The file was modifiedllvm/lib/Transforms/IPO/LowerTypeTests.cpp
The file was modifiedllvm/include/llvm/Transforms/IPO.h
The file was modifiedllvm/test/ThinLTO/X86/devirt.ll
The file was modifiedllvm/test/ThinLTO/X86/devirt_promote.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/LowerTypeTests.h
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/uniform-retval.ll
The file was addedllvm/test/ThinLTO/X86/devirt_vcall_vis_public.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/branch-funnel-threshold.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-nothing.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-type-mismatch.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vtable-decl.ll
The file was modifiedllvm/test/ThinLTO/X86/devirt_external_comdat_same_guid.ll
The file was modifiedllvm/lib/LTO/LTOCodeGenerator.cpp
The file was modifiedllvm/test/ThinLTO/X86/devirt-after-icp.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h
The file was modifiedllvm/test/ThinLTO/X86/devirt_single_hybrid.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-accesses-memory.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/bad-read-from-vtable.ll
The file was modifiedclang/test/CodeGenCXX/type-metadata.cpp
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/expand-check.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-uses-this.ll
The file was addedlld/test/ELF/lto/devirt_vcall_vis_public.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-uniform-ret-val.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/devirt-single-impl-check.ll
Commit 30ae859c696748e1314788367226e4c65669f526 by johannes
[Attributor][FIX] Store alignment only holds for the pointer value
We accidentally used the store alignment for the value operand as well,
which is incorrect and crashed the SPASS application in the test suite.
The file was modifiedllvm/test/Transforms/Attributor/align.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit 2baf000ecc06209c70e46e19cf947a8f77cf0cad by johannes
[Attributor] `byval` arguments are always `noalias`
`byval` introduces a local copy of the argument. That copy cannot alias
anything.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/tail.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/attrs.ll
The file was modifiedllvm/test/Transforms/Attributor/readattrs.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll
Commit d07b5a5525e636f33c008e90b2dca52a0a434ed4 by johannes
[Attributor][NFC] Fix spelling
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit e273ac4d88585d9f31a2f56113bd3457c8335afe by johannes
[Attributor][NFC] Add an assertion
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit 30179d7ecf6a2f986ed13de112ddaf0d0e966f38 by johannes
[Attributor][FIX][Alignment] Do not report a change if there was none
If alignment was manifested but it is actually only as good as the
data-layout provided one we should not report it as a change.
For testing purposes we still manifest the information.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit 73eaf62463b4a29adf4194685af12d1a5d172987 by saar
[Concepts] Make constraint expressions unevaluated until satisfaction
checking
As per P1980R0, constraint expressions are unevaluated operands, and
their constituent atomic constraints only become constant evaluated
during satisfaction checking.
Change the evaluation context during parsing and instantiation of
constraints to unevaluated.
The file was modifiedclang/lib/Parse/ParseExpr.cpp
The file was modifiedclang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was addedclang/test/SemaTemplate/cxx2a-constraint-exprs.cpp
Commit 1d091742908fddb458023492c43ee4e4492609bc by asbirlea
[LoopStrengthReduce] Reuse utility method to clean dead instructions.
[NFCI]
Create a utility wrapper for the
RecursivelyDeleteTriviallyDeadInstructions utility method, which sets to
nullptr the instructions that are not trivially dead. Use the new method
in LoopStrengthReduce. Alternative: add a bool to the same method; this
option adds a marginal amount of overhead to the other callers, and the
method needs to be updated to return a bool status when it
removes/doesn't remove instructions.
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/Local.h
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
Commit 301a437250b03de021e6da12a8e4a927ef48881e by dmitry.polukhin
[clang-tidy] Add clang-tidy headers to clang distribution
Summary: Clang releases include static libraries for clang-tidy but
corresponding headers are missing in the tarball so these libraries are
almost useless. Clang-tidy libraries can be useful for build custom
clang-tidy with custom checks outside of llvm repo.
List of clang-tidy libraries included in clang 9.0.1 release:
   lib/libclangTidyMPIModule.a
   lib/libclangTidyPlugin.a
   lib/libclangTidyBoostModule.a
   lib/libclangTidyCERTModule.a
   lib/libclangTidyAndroidModule.a
   lib/libclangTidyPortabilityModule.a
   lib/libclangTidyPerformanceModule.a
   lib/libclangTidyOpenMPModule.a
   lib/libclangTidyBugproneModule.a
   lib/libclangTidyZirconModule.a
   lib/libclangTidyCppCoreGuidelinesModule.a
   lib/libclangTidyGoogleModule.a
   lib/libclangTidyUtils.a
   lib/libclangTidyHICPPModule.a
   lib/libclangTidyModernizeModule.a
   lib/libclangTidyLLVMModule.a
   lib/libclangTidyAbseilModule.a
   lib/libclangTidyReadabilityModule.a
   lib/libclangTidyFuchsiaModule.a
   lib/libclangTidyMiscModule.a
   lib/libclangTidy.a
   lib/libclangTidyObjCModule.a
Reviewers: smeenai, jdoerfert, alexfh, hokein, aaron.ballman
Subscribers: mgehre, mgorny, xazax.hun, cfe-commits
Tags: #clang-tools-extra, #clang
Differential Revision: https://reviews.llvm.org/D73236
The file was modifiedclang-tools-extra/clang-tidy/CMakeLists.txt
Commit 19c76989bb505c3117730c47df85fd3800ea2767 by tejohnson
Fix bot failure from 59733525d37cf9ad88b5021b33ecdbaf2e18911c
Fix bot failure by loosening up the register matching on new test:
http://lab.llvm.org:8011/builders/clang-x86_64-debian-new-pass-manager-fast/builds/2423
The file was modifiedclang/test/CodeGenCXX/thinlto-distributed-type-metadata.cpp
Commit 47d7a81ba4bb4be2e6027fb44aa4cbfaffe9c3f2 by Jonas Devlieghere
[lldb/Util] Use md5 instead of python's hash function.
Because of the way the Python hash function works, it's not guaranteed
to be the same. This was causing a lot of reproducers to be generated
for the same tests, even though the CWD or arguments didn't change.
Switching to an MD5 hash should fix that.
The file was modifiedlldb/utils/lldb-repro/lldb-repro.py
Commit 9dcf889d15dc28203a1e001c0a562920377b8337 by johannes
[Attributor][NFC] Do not (try to) simplify void values
We might accidentally ask AAValueSimplify to simplify a void value. That
can lead to very interesting, and very wrong, results. We now handle
this case gracefully.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit ff6254dc2679d06174cb13ef5a79da1835461cd5 by johannes
[Attributor][FIX] Handle non-pointers when following uses
When we follow uses, e.g., in AAMemoryBehavior or AANoCapture, we need
to make sure the value is a pointer before we ask for abstract
attributes only valid for pointers. This happens because we follow
pointers through calls that do not capture but may return the value.
The file was modifiedllvm/test/Transforms/Attributor/nocapture-1.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/Attributor/readattrs.ll
Commit 5429c82db2295f191c05fca42659b2998224c1fe by johannes
[Attributor][FIX] Avoid dangling pointers during code deletion
It can happen that we have instructions in the ToBeDeletedInsts set
which are deleted earlier already. To avoid dangling pointers we use
weak tracking handles.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit 214ed3f676d2a1f0329c8dd4b3a0d4218f2b96cb by johannes
[Attributor] Record dependences only when necessary
If we use assumed information from AAValueSimplify we need to record an
OPTIONAL dependence, otherwise we do not.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit 7ad17e008b0abec9b791f17de2f75f9112510d9d by johannes
[Attributor] Avoid REQUIRED dependences in favor of OPTIONAL ones
When we use information only to short-cut deduction or improve it, we
can use OPTIONAL dependences instead of REQUIRED ones to avoid cascading
pessimistic fixpoints.
We also need to track dependences only when we use assumed information,
e.g., we act on assumed liveness information.
The file was modifiedllvm/test/Transforms/Attributor/nocapture-2.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit 2531535984ad989ce88aeee23cb92a827da6686e by changpeng.fang
AMDGPU: Implement FDIV optimizations in AMDGPUCodeGenPrepare
    Summary:
     RCP has the accuracy limit. If FDIV fpmath require high accuracy
rcp may not
   meet the requirement. However, in DAG lowering, fpmath information
gets lost,
   and thus we may generate either inaccurate rcp related computation or
slow code
   for fdiv.
    In patch implements fdiv optimizations in the AMDGPUCodeGenPrepare,
which could
   exactly know !fpmath.
     FastUnsafeRcpLegal: We determine whether it is legal to use rcp
based on
                        unsafe-fp-math, fast math flags, denormals and
fpmath
                        accuracy request.
     RCP Optimizations:
      1/x -> rcp(x) when fast unsafe rcp is legal or fpmath >= 2.5ULP
with
                                                     denormals flushed.
      a/b -> a*rcp(b) when fast unsafe rcp is legal.
     Use fdiv.fast:
      a/b -> fdiv.fast(a, b) when RCP optimization is not performed and
                             fpmath >= 2.5ULP with denormals flushed.
       1/x -> fdiv.fast(1,x)  when RCP optimization is not performed and
                             fpmath >= 2.5ULP with denormals.
    Reviewers:
     arsenm
    Differential Revision:
     https://reviews.llvm.org/D71293
The file was modifiedllvm/test/CodeGen/AMDGPU/known-never-snan.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/mul24-pass-ordering.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fdiv32-to-rcp-folding.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fdiv.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/rcp-pattern.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fneg-combines.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fdiv.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/rsq.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/rcp_iflag.ll
Commit 356a4b433bf7224666fd7152a8ad2560fb286ef4 by bigcheesegs
[clang][clang-scan-deps] Aggregate the full dependency information.
Differential Revision: https://reviews.llvm.org/D70268
This is a recommit of f978ea498309 with a fix for the PowerPC failure.
The issue was that:
* `CompilerInstance::ExecuteAction` calls
`getTarget().adjust(getLangOpts());`.
* `PPCTargetInfo::adjust` changes `LangOptions::HasAltivec`.
* This happens after the first few calls to `getModuleHash`.
There’s even a FIXME saying:
```
// FIXME: We shouldn't need to do this, the target should be immutable
once
// created. This complexity should be lifted elsewhere.
```
This only showed up on PowerPC because it's one of the few targets that
almost always changes a hashed langopt.
I looked into addressing the fixme, but that would be a much larger
change, and it's not the only thing that happens in `ExecuteAction` that
can change the module context hash. Instead I changed the code to not
call `getModuleHash` until after it has been modified in
`ExecuteAction`.
The file was modifiedclang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
The file was modifiedclang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h
The file was modifiedclang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
The file was modifiedclang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
The file was modifiedclang/test/ClangScanDeps/modules-full.cpp
The file was modifiedclang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
The file was modifiedclang/test/ClangScanDeps/Inputs/modules_cdb.json
The file was modifiedclang/tools/clang-scan-deps/ClangScanDeps.cpp
Commit f394d22fa82df03eaf72bf1876e2d63bbe6cd00f by saar
[Concepts] Update cxx_status.html with Concepts support status
Concepts will be available with Clang 10 - update cxx_status.html to
reflect the papers that have been implemented.
The file was modifiedclang/www/cxx_status.html
Commit 22467e259507f5ead2a87d989251b4c951a587e4 by maskray
Add function attribute "patchable-function-prefix" to support
-fpatchable-function-entry=N,M where M>0
Similar to the function attribute `prefix` (prefix data),
"patchable-function-prefix" inserts data (M NOPs) before the function
entry label.
-fpatchable-function-entry=2,1 (1 NOP before entry, 1 NOP after entry)
will look like:
```
.type foo,@function
.Ltmp0:               # @foo
nop foo:
.Lfunc_begin0:
# optional `bti c` (AArch64 Branch Target Identification) or
# `endbr64` (Intel Indirect Branch Tracking)
nop
  .section  __patchable_function_entries,"awo",@progbits,get,unique,0
.p2align  3
.quad .Ltmp0
```
-fpatchable-function-entry=N,0 +
-mbranch-protection=bti/-fcf-protection=branch has two reasonable
placements (https://gcc.gnu.org/ml/gcc-patches/2020-01/msg01185.html):
```
(a)         (b)
func:       func:
.Ltmp0:     bti c
bti c     .Ltmp0:
nop       nop
```
(a) needs no additional code. If the consensus is to go for (b), we will
need more code in AArch64BranchTargets.cpp /
X86IndirectBranchTracking.cpp .
Differential Revision: https://reviews.llvm.org/D73070
The file was modifiedllvm/test/Verifier/invalid-patchable-function-entry.ll
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h
The file was modifiedllvm/test/CodeGen/AArch64/patchable-function-entry-bti.ll
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
The file was modifiedllvm/test/CodeGen/AArch64/patchable-function-entry.ll
The file was modifiedllvm/lib/Target/ARM/ARMMCInstLower.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Commit 01da05b71aa72c15a518d3407682a3775db63808 by maskray
[X86][test] Add tests for -fpatchable-function-entry=N,M (where M>0) and
its interaction with -fcf-protection=branch
Reviewed By: nickdesaulniers
Differential Revision: https://reviews.llvm.org/D73071
The file was modifiedllvm/test/CodeGen/X86/patchable-function-entry.ll
The file was addedllvm/test/CodeGen/X86/patchable-function-entry-ibt.ll
Commit 69bf40c45fd7f6dfe11b47de42571d8bff5ef94f by maskray
[Driver][CodeGen] Support -fpatchable-function-entry=N,M and
__attribute__((patchable_function_entry(N,M))) where M>0
Reviewed By: nickdesaulniers
Differential Revision: https://reviews.llvm.org/D73072
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was modifiedclang/test/Driver/fpatchable-function-entry.c
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/test/Sema/patchable-function-entry-attr.c
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/include/clang/Driver/CC1Options.td
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/CodeGen/patchable-function-entry.c