Changes

Summary

  1. Fix an edge case in determining is a function has a prototype (details)
  2. [NFC] Update comments (details)
  3. [AMDGPU][FIX] Proper load-store-vectorizer result with opaque pointers (details)
  4. [DWARF][FIX] Handle the use of multiple registers gracefully (details)
  5. [LLDB][NativePDB] Don't create inlined function parameters when it's malformed. (details)
  6. [mlir] Fix BUILD issues and dependencies. (details)
  7. [LLDB][NativePDB] Followup c50817d1bea4ac51ed776154014630a439176de6 (details)
  8. Fix size of flexible array initializers, and re-enable assertions. (details)
  9. [MLIR][ClonePass] Attempt fix for anonymous pass name (details)
  10. [MLIR][Presburger][Simplex] moveRowUnknownToColumn: support the row sample value being zero (details)
  11. [HLSL][clang][Driver] Support target profile command line option. (details)
  12. [Support][cmake] Fix snmalloc integration. NFC. (details)
  13. [mlir][vector] Fix bug in extractFromBroadcast folding (details)
  14. [gn build] Port 721651be246e (details)
  15. [randstruct] Enforce using a designated init for a randomized struct (details)
  16. [MLIR][Presburger] addSymbolicCut: fix the integral symbols heuristic to match the docs (details)
  17. [test][LoopDeletion] Precommit test (details)
  18. [JITLink] Refactor and expand DWARF pointer encoding support. (details)
  19. [Attributor][NFC] Rename AAPotentialValues to AAPotentialConstantValues (details)
  20. [Attributor][NFC] Code cleanup to minimize follow up changes (details)
  21. [Attributor] CGSCC pass should not recompute results outside the SCC (details)
  22. [Attributor][NFC] Introduce a flag to distinguish the scope of a query (details)
  23. [mlir] Remove the use of FilterTypes for template metaprogramming (details)
  24. [mlir][NFC] Cleanup the TestClone pass (details)
  25. [JITLink] Add missing moves from 43acef48d38e. (details)
  26. Revert "[Attributor] CGSCC pass should not recompute results outside the SCC" (details)
  27. [DebugInfo] Add a TargetFuncName field in DISubprogram for (details)
  28. [VPlan] Handle equal address and store ops in onlyFirstLaneDemanded. (details)
  29. Treat `std::move`, `forward`, and `move_if_noexcept` as builtins. (details)
  30. [flang] Finer control over error recovery with GetExpr() (details)
  31. [msan] Set poison_in_dtor=1 by default (details)
  32. [llvm-objdump] Implemented PrintBranchImmAsAddress for MIPS (details)
  33. Update test to handle opaque pointers flag flip. (details)
  34. [mlir] Refactor LICM into a utility (details)
  35. [randstruct] Force errors for all platforms (details)
  36. [Attributor][NFCI] Introduce AttributorConfig to bundle all options (details)
  37. [flang] Handle parameter-dependent types in PDT initializers (details)
  38. Extend support for std::move etc to also cover std::as_const and (details)
  39. [Attributor][FIX] Use AttributorConfig in the unit tests too (details)
  40. [DAGCombiner] Move or/xor/and opcode check in ReduceLoadOpStoreWidth before hasOneUse check. (details)
  41. Add DXIL Bitcode Writer and DXIL testing (details)
  42. [DAGCombiner] Move call to hasOneUse after opcode checks. NFC (details)
  43. Revert "[mlir] Refactor LICM into a utility" (details)
  44. [X86] Move hasOneUse check after opcode check. NFC (details)
  45. MIR: Serialize a few bool function fields (details)
  46. llvm-reduce: Clone some of the easy function properties (details)
  47. [OpenMP] Don't manually strip sections in the linker wrapper (details)
  48. [OpenMP] Use new offloading binary when embedding offloading images (details)
  49. [mlir] Refactor LICM into a utility (details)
  50. [IR] Allow constant folding (insertelement <vscale x 2 x i32> zeroinitializer, i32 0, i32 i32 0. (details)
  51. Apply clang-tidy fixes for readability-identifier-naming in DummyParserFuzzer.cpp (NFC) (details)
  52. Apply clang-tidy fixes for readability-identifier-naming in mlir-parser-fuzzer.cpp (NFC) (details)
  53. [NFC] fix cmake build (details)
  54. Blind stab in the dark to fix a bot failure (details)
  55. [OpenMP] Fix linting diagnostics in the linker wrapper (details)
  56. [Clang][OpenMP] Use bitfields for flags in `OMPAtomicDirective` (details)
  57. [flang][runtime] Fix ENDFILE for formatted stream output (details)
Commit 8fd3b5de3f96300189a2841278e6c7b6654bffc5 by aaron
Fix an edge case in determining is a function has a prototype

Given the declaration:

  typedef void func_t(unsigned);
  __attribute__((noreturn)) func_t func;

we would incorrectly determine that `func` had no prototype because the
`noreturn` attribute would convert the underlying type directly into a
FunctionProtoType, but the declarator for `func` itself was not one for
a function with a prototype. This adds an additional check for when the
declarator is a type representation for a function with a prototype.
The file was modifiedclang/test/Sema/warn-strict-prototypes.c
The file was modifiedclang/lib/Sema/SemaDecl.cpp
Commit 9a8bb4bc635de9d56706262083c15eb1e0cf3e87 by gh
[NFC] Update comments
The file was modifiedmlir/test/lib/IR/TestClone.cpp
The file was modifiedmlir/lib/IR/Operation.cpp
Commit 1fb415fee98efff99188507da2eedaf780ff2bab by johannes
[AMDGPU][FIX] Proper load-store-vectorizer result with opaque pointers

The original code relied on the fact that we needed a bitcast
instruction (for non constant base objects). With opaque pointers there
might not be a bitcast. Always check if reordering is required instead.

Fixes: https://github.com/llvm/llvm-project/issues/54896

Differential Revision: https://reviews.llvm.org/D123694
The file was modifiedllvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
The file was addedllvm/test/Transforms/LoadStoreVectorizer/AMDGPU/opaque_ptr.ll
Commit 3f7a6ce0de804a27954706d3a2fc2aef0c9554b7 by johannes
[DWARF][FIX] Handle the use of multiple registers gracefully

Certain applications crashed for us with the AMDGPU backend. While this
is not a proper fix it allows us to compile the code for now. I left a
TODO for someone that understands DWARF.

Differential Revision: https://reviews.llvm.org/D123717
The file was addedllvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
Commit c50817d1bea4ac51ed776154014630a439176de6 by zequanwu
[LLDB][NativePDB] Don't create inlined function parameters when it's malformed.
The file was modifiedlldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
Commit 3ef4099a6110b44aadbf085aec132d6a987aaabe by rdzhabarov
[mlir] Fix BUILD issues and dependencies.

Differential Revision: https://reviews.llvm.org/D123868
The file was modifiedmlir/include/mlir/Dialect/Func/IR/FuncOps.td
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was modifiedmlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
Commit dc100ebfdabf9db484bf8069870299a593522aaf by zequanwu
[LLDB][NativePDB] Followup c50817d1bea4ac51ed776154014630a439176de6
The file was modifiedlldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
Commit 4802edd1ac7a5aea8c8488b5baec221d722cbdde by efriedma
Fix size of flexible array initializers, and re-enable assertions.

In D123649, I got the formula for getFlexibleArrayInitChars slightly
wrong: the flexible array elements can be contained in the tail padding
of the struct.  Fix the formula to account for that.

With the fixed formula, we run into another issue: in some cases, we
were emitting extra padding for flexible arrray initializers. Fix
CGExprConstant so it uses a packed struct when necessary, to avoid this
extra padding.

Differential Revision: https://reviews.llvm.org/D123826
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/test/CodeGen/flexible-array-init.c
The file was modifiedclang/include/clang/AST/Decl.h
The file was modifiedclang/lib/CodeGen/CGExprConstant.cpp
The file was modifiedclang/test/CodeGenCXX/flexible-array-init.cpp
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
Commit 0df963e8170d7e08584a07672ba14e1d650a71ba by gh
[MLIR][ClonePass] Attempt fix for anonymous pass name
The file was modifiedmlir/test/lib/IR/TestClone.cpp
Commit 69c1a354885134303a17bac9e36a913cee92996c by arjunpitchanathan
[MLIR][Presburger][Simplex] moveRowUnknownToColumn: support the row sample value being zero

When the sample value is zero, everything is the same except that failure to
pivot does not imply emptiness. So, leave it to the user to mark as empty if
necessary, if they know the sample value is strictly negative. This is needed
for an upcoming symbolic lexmin heuristic.

Reviewed By: Groverkss

Differential Revision: https://reviews.llvm.org/D123604
The file was modifiedmlir/include/mlir/Analysis/Presburger/Simplex.h
The file was modifiedmlir/lib/Analysis/Presburger/Simplex.cpp
Commit 721651be246e26efd767c3ec55c8f06c7b5a9a3d by chris.bieneman
[HLSL][clang][Driver] Support target profile command line option.

The target profile option(/T) decide the shader model when compile hlsl.
The format is shaderKind_major_minor like ps_6_1.
The shader model is saved as llvm::Triple is clang/llvm like
dxil-unknown-shadermodel6.1-hull.
The main job to support the option is translating ps_6_1 into
shadermodel6.1-pixel.
That is done inside tryParseProfile  at HLSL.cpp.

To integrate the option into clang Driver, a new DriverMode DxcMode is
created. When DxcMode is enabled, OSType for TargetTriple will be
forced into Triple::ShaderModel. And new ToolChain HLSLToolChain will
be created when OSType is Triple::ShaderModel.

In HLSLToolChain, ComputeEffectiveClangTriple is overridden to call
tryParseProfile when targetProfile option is set.

To make test work, Fo option is added and .hlsl is added for active
-xhlsl.

Reviewed By: beanz

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

Patch by: Xiang Li <python3kgae@outlook.com>
The file was modifiedclang/include/clang/Driver/Driver.h
The file was modifiedclang/lib/Driver/Types.cpp
The file was modifiedclang/lib/Driver/Driver.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
The file was modifiedclang/unittests/Driver/ToolChainTest.cpp
The file was modifiedclang/include/clang/Driver/Options.h
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Driver/CMakeLists.txt
The file was modifiedclang/lib/Driver/ToolChain.cpp
The file was addedclang/lib/Driver/ToolChains/HLSL.h
The file was modifiedclang/test/lit.cfg.py
The file was addedclang/lib/Driver/ToolChains/HLSL.cpp
Commit 64969446bc27a955b77a3a4e9ee22af7043bcba1 by alexandre.ganea
[Support][cmake] Fix snmalloc integration. NFC.

When using LLVM_INTEGRATED_CRT_ALLOC, fix compiling with the latest snmalloc at ToT (https://github.com/microsoft/snmalloc).
The file was modifiedllvm/lib/Support/CMakeLists.txt
Commit b4bcef05b7eff074e2db89bbeb856e344f29d45d by thomasraoux
[mlir][vector] Fix bug in extractFromBroadcast folding

extract was incorrectly folded when the source was coming from a
broadcast that was both adding new rank and broadcasting the inner
dimension.

Differential Revision: https://reviews.llvm.org/D123867
The file was modifiedmlir/test/Dialect/Vector/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/Vector/IR/VectorOps.cpp
Commit 73110f1306705746c1f765fdf2bedb0971570ad6 by llvmgnsyncbot
[gn build] Port 721651be246e
The file was modifiedllvm/utils/gn/secondary/clang/lib/Driver/BUILD.gn
Commit aed923b1246ac38335b222b89594516fcf0d6385 by isanbard
[randstruct] Enforce using a designated init for a randomized struct

A randomized structure needs to use a designated or default initializer.
Using a non-designated initializer will result in values being assigned
to the wrong fields.

Differential Revision: https://reviews.llvm.org/D123763
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was addedclang/test/Sema/init-randomized-struct.c
Commit ef8b2a7cea2e12653d812f173370fda7b955fd22 by arjunpitchanathan
[MLIR][Presburger] addSymbolicCut: fix the integral symbols heuristic to match the docs

Previously this checked if the entire symbolic numerator was divisible by the
denominator, which is never the case when this function is called. Fixed this to
check only the non-const coefficients in the numerator, which was what was
intended and documented.

Reviewed By: Groverkss

Differential Revision: https://reviews.llvm.org/D123592
The file was modifiedmlir/lib/Analysis/Presburger/Simplex.cpp
Commit 4d85859ff48d16fc0ca8199676f7417a2c6dfe43 by aeubanks
[test][LoopDeletion] Precommit test
The file was addedllvm/test/Transforms/LoopDeletion/blockaddress.ll
Commit 43acef48d38ec0dd391f212144d4a25095e4fc5f by Lang Hames
[JITLink] Refactor and expand DWARF pointer encoding support.

Adds support for pointer encodings commonly used in large/static models,
including non-pcrel, sdata/udata8, indirect, and omit.

Also refactors pointer-encoding handling to consolidate error generation inside
common functions, rather than callees of those functions.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
The file was modifiedllvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
The file was addedllvm/test/ExecutionEngine/JITLink/X86/ELF_ehframe_large_static_personality_encodings.s
The file was modifiedllvm/test/ExecutionEngine/JITLink/AArch64/MachO_arm64_ehframe.s
The file was modifiedllvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
The file was modifiedllvm/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp
Commit 2d8e7834b087d39586ff2509df8ff23ebca5e89e by johannes
[Attributor][NFC] Rename AAPotentialValues to AAPotentialConstantValues
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/test/Transforms/Attributor/depgraph.ll
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
Commit bd72acf4d87265bc85ec6ddd1a41c5a07a926f68 by johannes
[Attributor][NFC] Code cleanup to minimize follow up changes
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit 0d7f81e31315f8cda56ce6fde5ff5145e0325c51 by johannes
[Attributor] CGSCC pass should not recompute results outside the SCC

When we run the CGSCC pass we should only invest time on the SCC. We can
initialize AAs with information from the module slice but we should not
update those AAs.
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/alloca-as.ll
The file was modifiedllvm/test/Transforms/Attributor/noreturn.ll
The file was modifiedllvm/test/Transforms/Attributor/range.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll
The file was modifiedllvm/test/Transforms/Attributor/norecurse.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/pr32917.ll
The file was modifiedllvm/test/Transforms/OpenMP/icv_tracking.ll
The file was modifiedllvm/test/Transforms/Attributor/willreturn.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/arg-count-mismatch.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-gpu.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll
The file was modifiedllvm/test/Transforms/Attributor/cb_liveness_enabled.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/reserve-tbaa.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/2008-07-02-array-indexing.ll
The file was modifiedllvm/test/Transforms/Attributor/nonnull.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/recursion.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/thread_local_acs.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/comdat-ipo.ll
The file was modifiedllvm/test/Transforms/Attributor/returned.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/byval.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/aggregate-promote.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-constants.ll
The file was modifiedllvm/test/Transforms/Attributor/nocapture-2.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-instances.ll
The file was modifiedllvm/test/Transforms/Attributor/assumes_info.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll
The file was modifiedllvm/test/Transforms/Attributor/alwaysinline.ll
The file was modifiedllvm/test/Transforms/Attributor/potential.ll
The file was modifiedllvm/test/Transforms/Attributor/readattrs.ll
The file was modifiedllvm/test/Transforms/Attributor/callbacks.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/variadic.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-assume.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/attrs.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/chained.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/remove-call-inst.ll
The file was modifiedllvm/test/Transforms/Attributor/nocapture-1.ll
The file was modifiedllvm/test/Transforms/Attributor/nounwind.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/PR16052.ll
The file was modifiedllvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
The file was modifiedllvm/test/Transforms/Attributor/cb_liveness_disabled.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/PR43857.ll
The file was modifiedllvm/test/Transforms/Attributor/openmp_parallel.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/sret.ll
The file was modifiedllvm/test/Transforms/Attributor/liveness.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll
The file was modifiedllvm/test/Transforms/Attributor/memory_locations.ll
The file was modifiedllvm/test/Transforms/Attributor/nofree.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/crash.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-argument.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/control-flow2.ll
The file was modifiedllvm/test/Transforms/Attributor/dereferenceable-1.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/thiscall.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/solve-after-each-resolving-undefs-for-function.ll
The file was modifiedllvm/test/Transforms/Attributor/nodelete.ll
The file was modifiedllvm/test/Transforms/Attributor/align.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/inalloca.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/musttail-call.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-constant.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/2008-06-09-WeakProp.ll
The file was modifiedllvm/test/Transforms/Attributor/internal-noalias.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/array.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/control-flow.ll
The file was modifiedllvm/test/Transforms/Attributor/cb_range_enabled.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/2008-09-07-CGUpdate.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
The file was modifiedllvm/test/Transforms/Attributor/noalias.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
The file was modifiedllvm/test/Transforms/Attributor/cb_range_disabled.ll
The file was modifiedllvm/test/Transforms/Attributor/undefined_behavior.ll
Commit 04f3a224bc9d1dad631fa8efd69fc35d28488a65 by johannes
[Attributor][NFC] Introduce a flag to distinguish the scope of a query
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
Commit 31c88660ab155beb5e6796ec1382afd2c0e52978 by riddleriver
[mlir] Remove the use of FilterTypes for template metaprogramming

This technique results in an explosion in compile time, resulting from a
huge number of std::tuple/concat instatiations. This technique is replaced
by simpler metaprogramming and results in a signficant reduction in
compile time. A local debug/asan build saw a 4x speed up in the processing
of ArithmeticOps.h.inc, and given the nature of this change every dialect
should see similar reductions in compile time.

Differential Revision: https://reviews.llvm.org/D123360
The file was modifiedmlir/include/mlir/IR/OpDefinition.h
The file was modifiedmlir/include/mlir/Support/InterfaceSupport.h
Commit ac860240adc79fefcf8e1c7c7ed7df89827b332a by riddleriver
[mlir][NFC] Cleanup the TestClone pass

Fix variable naming convention and cleanup a clang-tidy warning.
The file was modifiedmlir/test/lib/IR/TestClone.cpp
Commit 0d11351bd7ce21f2094858ae7a081896261077d8 by Lang Hames
[JITLink] Add missing moves from 43acef48d38e.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp
Commit 39a68cc016ec3ef51091c1469b80c6733a9b7c5f by johannes
Revert "[Attributor] CGSCC pass should not recompute results outside the SCC"

This reverts commit 0d7f81e31315f8cda56ce6fde5ff5145e0325c51, it caused
the AMDGPU tests that use the Attributor to fail.
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/crash.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/sret.ll
The file was modifiedllvm/test/Transforms/Attributor/cb_range_disabled.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/inalloca.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/remove-call-inst.ll
The file was modifiedllvm/test/Transforms/Attributor/undefined_behavior.ll
The file was modifiedllvm/test/Transforms/Attributor/noalias.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/2008-09-07-CGUpdate.ll
The file was modifiedllvm/test/Transforms/OpenMP/icv_tracking.ll
The file was modifiedllvm/test/Transforms/Attributor/nocapture-2.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/thread_local_acs.ll
The file was modifiedllvm/test/Transforms/Attributor/returned.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/aggregate-promote.ll
The file was modifiedllvm/test/Transforms/Attributor/memory_locations.ll
The file was modifiedllvm/test/Transforms/Attributor/dereferenceable-1.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/chained.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/PR43857.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/array.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-constants.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/reserve-tbaa.ll
The file was modifiedllvm/test/Transforms/Attributor/openmp_parallel.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-instances.ll
The file was modifiedllvm/test/Transforms/Attributor/align.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/arg-count-mismatch.ll
The file was modifiedllvm/test/Transforms/Attributor/noreturn.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/alloca-as.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/test/Transforms/Attributor/nocapture-1.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/PR16052.ll
The file was modifiedllvm/test/Transforms/Attributor/nodelete.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-constant.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll
The file was modifiedllvm/test/Transforms/Attributor/assumes_info.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/control-flow.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-assume.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/recursion.ll
The file was modifiedllvm/test/Transforms/Attributor/readattrs.ll
The file was modifiedllvm/test/Transforms/Attributor/internal-noalias.ll
The file was modifiedllvm/test/Transforms/Attributor/callbacks.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/attrs.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/musttail-call.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/byval.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/thiscall.ll
The file was modifiedllvm/test/Transforms/Attributor/nonnull.ll
The file was modifiedllvm/test/Transforms/Attributor/willreturn.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll
The file was modifiedllvm/test/Transforms/Attributor/nounwind.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/test/Transforms/Attributor/potential.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
The file was modifiedllvm/test/Transforms/Attributor/alwaysinline.ll
The file was modifiedllvm/test/Transforms/Attributor/norecurse.ll
The file was modifiedllvm/test/Transforms/Attributor/range.ll
The file was modifiedllvm/test/Transforms/Attributor/liveness.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
The file was modifiedllvm/test/Transforms/Attributor/cb_liveness_disabled.ll
The file was modifiedllvm/test/Transforms/Attributor/cb_range_enabled.ll
The file was modifiedllvm/test/Transforms/Attributor/nofree.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/2008-06-09-WeakProp.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-gpu.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/variadic.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/comdat-ipo.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/solve-after-each-resolving-undefs-for-function.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/control-flow2.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/pr32917.ll
The file was modifiedllvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-argument.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/2008-07-02-array-indexing.ll
The file was modifiedllvm/test/Transforms/Attributor/cb_liveness_enabled.ll
Commit eab6e94f912d014e6f19e1737ef81e36e4601faf by chih-ping.chen
[DebugInfo] Add a TargetFuncName field in DISubprogram for
specifying DW_AT_trampoline as a string. Also update the signature
of DIBuilder::createFunction to reflect this addition.

Differential Revision: https://reviews.llvm.org/D123697
The file was modifiedllvm/lib/Bitcode/Reader/MetadataLoader.cpp
The file was modifiedllvm/lib/IR/DebugInfoMetadata.cpp
The file was modifiedllvm/unittests/IR/MetadataTest.cpp
The file was modifiedllvm/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modifiedllvm/lib/IR/DIBuilder.cpp
The file was addedllvm/test/DebugInfo/X86/disubprogram-trampoline.ll
The file was modifiedllvm/include/llvm/IR/DebugInfoMetadata.h
The file was modifiedllvm/lib/IR/LLVMContextImpl.h
The file was modifiedllvm/lib/IR/AsmWriter.cpp
The file was modifiedllvm/docs/SourceLevelDebugging.rst
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
The file was addedllvm/test/Assembler/disubprogram-targetfuncname.ll
The file was modifiedllvm/include/llvm/IR/DIBuilder.h
Commit 73f5d7d0d6ec0eb474925f1952fd7b6f92024fa1 by flo
[VPlan] Handle equal address and store ops in onlyFirstLaneDemanded.

With opaque pointers, the stored value and address can be the same.

Previously the code in VPWidenMemoryInstructionRecipe::onlyFirstLaneDemanded
incorrectly considers stores with matching store and pointer operands as
only demanding the first lane, causing a crash.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/test/Transforms/LoopVectorize/opaque-ptr.ll
Commit 64c045e25b8471bbb572bd29159c294a82a86a25 by richard
Treat `std::move`, `forward`, and `move_if_noexcept` as builtins.

We still require these functions to be declared before they can be used,
but don't instantiate their definitions unless their addresses are
taken. Instead, code generation, constant evaluation, and static
analysis are given direct knowledge of their effect.

This change aims to reduce various costs associated with these functions
-- per-instantiation memory costs, compile time and memory costs due to
creating out-of-line copies and inlining them, code size at -O0, and so
on -- so that they are not substantially more expensive than a cast.
Most of these improvements are very small, but I measured a 3% decrease
in -O0 object file size for a simple C++ source file using the standard
library after this change.

We now automatically infer the `const` and `nothrow` attributes on these
now-builtin functions, in particular meaning that we get a warning for
an unused call to one of these functions.

In C++20 onwards, we disallow taking the addresses of these functions,
per the C++20 "addressable function" rule. In earlier language modes, a
compatibility warning is produced but the address can still be taken.

The same infrastructure is extended to the existing MSVC builtin
`__GetExceptionInfo`, which is now only recognized in namespace `std`
like it always should have been.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D123345
The file was modifiedclang/lib/Analysis/BodyFarm.cpp
The file was addedclang/test/SemaCXX/builtin-std-move.cpp
The file was addedclang/test/CodeGenCXX/builtin-std-move.cpp
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/test/SemaCXX/unqualified-std-call-fixits.cpp
The file was modifiedclang/test/SemaCXX/warn-consumed-analysis.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/Basic/Builtins.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/include/clang/Basic/Builtins.h
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-throw.cpp
The file was modifiedclang/lib/Sema/SemaOverload.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/docs/CommandGuide/clang.rst
The file was modifiedclang/test/Analysis/use-after-move.cpp
The file was addedclang/test/SemaCXX/builtin-std-move-nobuiltin.cpp
The file was modifiedclang/test/SemaCXX/unqualified-std-call.cpp
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/include/clang/Basic/Builtins.def
Commit 7e225423d39ae1982e9380a4a0836888ab6b3bd8 by pklausler
[flang] Finer control over error recovery with GetExpr()

Prior to this patch, the semantics utility GetExpr() will crash
unconditionally if it encounters a typed expression in the parse
tree that has not been set by expression semantics.  This is the
right behavior when called from lowering, by which time it is known
that the program had no fatal user errors, since it signifies a
fatal internal error.  However, prior to lowering, in the statement
semantics checking code, a more nuanced test should be used before
crashing -- specifically, we should not crash in the face of a
missing typed expression when in error recovery mode.

Getting this right requires GetExpr() and its helper class to have
access to the semantics context, so that it can check AnyFatalErrors()
before crashing.  So this patch touches nearly all of its call sites.

Differential Revision: https://reviews.llvm.org/D123873
The file was modifiedflang/lib/Semantics/check-arithmeticif.cpp
The file was modifiedflang/lib/Semantics/check-io.cpp
The file was modifiedflang/lib/Semantics/check-allocate.cpp
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
The file was modifiedflang/lib/Semantics/check-nullify.cpp
The file was modifiedflang/lib/Semantics/resolve-directives.cpp
The file was modifiedflang/lib/Semantics/check-case.cpp
The file was modifiedflang/lib/Semantics/check-io.h
The file was modifiedflang/lib/Semantics/data-to-inits.cpp
The file was modifiedflang/lib/Semantics/check-stop.cpp
The file was modifiedflang/lib/Semantics/tools.cpp
The file was modifiedflang/lib/Semantics/check-do-forall.cpp
The file was modifiedflang/include/flang/Semantics/tools.h
The file was modifiedflang/lib/Semantics/assignment.cpp
The file was modifiedflang/lib/Semantics/check-coarray.cpp
The file was modifiedflang/lib/Semantics/check-deallocate.cpp
Commit eb4d22917eb69ba0f41e6e677d64f67f8b426496 by Vitaly Buka
[msan] Set poison_in_dtor=1 by default

It's still disabled by default at compile time.

Reviewed By: kstoimenov

Differential Revision: https://reviews.llvm.org/D123875
The file was modifiedcompiler-rt/test/msan/dtor-vtable-multiple-inheritance.cpp
The file was modifiedcompiler-rt/test/msan/dtor-member.cpp
The file was modifiedcompiler-rt/test/msan/use-after-dtor.cpp
The file was modifiedcompiler-rt/test/msan/dtor-derived-class.cpp
The file was modifiedcompiler-rt/test/msan/dtor-multiple-inheritance-nontrivial-class-members.cpp
The file was modifiedcompiler-rt/test/msan/poison_in_signal.cpp
The file was modifiedcompiler-rt/lib/msan/msan_flags.inc
The file was modifiedcompiler-rt/test/msan/dtor-trivial.cpp
The file was modifiedcompiler-rt/test/msan/dtor-multiple-inheritance.cpp
The file was modifiedcompiler-rt/test/fuzzer/msan.test
The file was modifiedcompiler-rt/test/msan/dtor-base-access.cpp
The file was modifiedcompiler-rt/test/msan/dtor-vtable.cpp
The file was modifiedcompiler-rt/test/msan/dtor-bit-fields.cpp
The file was modifiedcompiler-rt/test/msan/dtor-trivial-class-members.cpp
Commit a5b7ea0783f700bff897358d7c248742296978a2 by kosov.pavel
[llvm-objdump] Implemented PrintBranchImmAsAddress for MIPS

Updated MipsInstPrinter to print absolute hex offsets for branch instructions.
It is necessary to make the llvm-objdump output close to the gnu objdump output.
This implementation is based on the implementation for RISC-V.

OS Laboratory. Huawei Russian Research Institute. Saint-Petersburg

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D123764
The file was modifiedlld/test/ELF/mips-npic-call-pic-script.s
The file was modifiedllvm/lib/Target/Mips/MipsInstrInfo.td
The file was modifiedllvm/test/MC/Mips/expansion-j-sym-pic.s
The file was modifiedllvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.cpp
The file was modifiedllvm/lib/Target/Mips/MicroMipsInstrInfo.td
The file was modifiedlld/test/ELF/mips-plt-r6.s
The file was modifiedllvm/test/MC/Mips/instr-analysis.s
The file was modifiedlld/test/ELF/mips-jalr.s
The file was modifiedllvm/lib/Target/Mips/Mips32r6InstrInfo.td
The file was modifiedlld/test/ELF/mips-plt-n32.s
The file was modifiedlld/test/ELF/mips-npic-call-pic.s
The file was modifiedlld/test/ELF/mips-micro-relocs.s
The file was modifiedllvm/test/MC/Mips/mips-jump-pc-region.s
The file was modifiedlld/test/ELF/mips-pc-relocs.s
The file was modifiedlld/test/ELF/mips-plt-n64.s
The file was modifiedllvm/test/CodeGen/Mips/micromips-b-range.ll
The file was modifiedllvm/test/MC/Mips/micromips-el-fixup-data.s
The file was modifiedllvm/lib/Target/Mips/MicroMips32r6InstrInfo.td
The file was modifiedlld/test/ELF/mips-jalr-non-functions.s
The file was modifiedllvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.h
The file was modifiedllvm/test/MC/Mips/micromips-neg-offset.s
The file was modifiedlld/test/ELF/mips-micror6-relocs.s
The file was modifiedllvm/test/MC/Mips/micromips-jump-pc-region.s
The file was modifiedlld/test/ELF/mips-micro-thunks.s
The file was modifiedlld/test/ELF/mips-micro-plt.s
The file was modifiedllvm/lib/Target/Mips/Mips.td
Commit a571f82a50416b767fd3cce0fb5027bb5dfec58c by richard
Update test to handle opaque pointers flag flip.
The file was modifiedclang/test/CodeGenCXX/builtin-std-move.cpp
Commit 3131f808243abe3746280e016ab9459c14d9e53b by jeffniu22
[mlir] Refactor LICM into a utility

LICM is refactored into a utility that is application on any region. The implementation is moved to Transform/Utils.
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp
The file was modifiedmlir/lib/Transforms/LoopInvariantCodeMotion.cpp
The file was addedmlir/lib/Transforms/Utils/LoopInvariantCodeMotionUtils.cpp
The file was addedmlir/include/mlir/Transforms/LoopInvariantCodeMotionUtils.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp
The file was modifiedmlir/lib/Transforms/ControlFlowSink.cpp
The file was modifiedmlir/lib/Interfaces/LoopLikeInterface.cpp
The file was modifiedmlir/lib/Transforms/Utils/CMakeLists.txt
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was modifiedmlir/lib/Transforms/Utils/ControlFlowSinkUtils.cpp
The file was modifiedmlir/include/mlir/IR/Region.h
The file was modifiedmlir/lib/Interfaces/CMakeLists.txt
The file was addedmlir/lib/Transforms/Utils/SideEffectUtils.cpp
The file was modifiedmlir/include/mlir/Interfaces/LoopLikeInterface.h
The file was modifiedmlir/include/mlir/Transforms/ControlFlowSinkUtils.h
The file was addedmlir/include/mlir/Transforms/SideEffectUtils.h
Commit 2a404cdfd8bc75de593ce0e15fff0a7a0a18ec1c by isanbard
[randstruct] Force errors for all platforms
The file was modifiedclang/test/Sema/init-randomized-struct.c
Commit 3be3b401888ace347018abd077912868bbc416b3 by johannes
[Attributor][NFCI] Introduce AttributorConfig to bundle all options

Instead of lengthy constructors we can now set the members of a
read-only struct before the Attributor is created. Should make it
clearer what is configurable and also help introducing new options in
the future. This actually added IsModulePass and avoids deduction
through the Function set size. No functional change was intended.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit 9e7eef9989d365214b2b62be630d0bc9d9e94968 by pklausler
[flang] Handle parameter-dependent types in PDT initializers

For parameterized derived type component initializers whose
expressions' types depend on parameter values, f18's current
scheme of analyzing the initialization expression once during
name resolution fails.  For example,

  type :: pdt(k)
    integer, kind :: k
    real :: component = real(0.0, kind=k)
  end type

To handle such cases, it is necessary to re-analyze the parse
trees of these initialization expressions once for each distinct
initialization of the type.

This patch adds code to wipe an expression parse tree of its
typed expressions, and update those of its symbol table pointers
that reference type parameters, and then re-analyze that parse
tree to generate the properly typed component initializers.

Differential Revision: https://reviews.llvm.org/D123728
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/lib/Parser/unparse.cpp
The file was modifiedflang/include/flang/Semantics/expression.h
The file was modifiedflang/lib/Semantics/type.cpp
The file was modifiedflang/include/flang/Parser/unparse.h
The file was modifiedflang/test/Semantics/init01.f90
The file was modifiedflang/lib/Semantics/mod-file.cpp
The file was modifiedflang/include/flang/Common/indirection.h
The file was modifiedflang/test/Semantics/structconst02.f90
The file was modifiedflang/include/flang/Semantics/symbol.h
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/lib/Semantics/symbol.cpp
The file was addedflang/test/Semantics/modfile48.f90
Commit fc3090109643af8d2da9822d0f99c84742b9c877 by richard
Extend support for std::move etc to also cover std::as_const and
std::addressof, plus the libstdc++-specific std::__addressof.

This brings us to parity with the corresponding GCC behavior.

Remove STDBUILTIN macro that ended up not being used.
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/include/clang/Basic/Builtins.def
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/test/CodeGenCXX/builtins.cpp
The file was modifiedclang/unittests/Analysis/ExprMutationAnalyzerTest.cpp
The file was modifiedclang/test/Analysis/inner-pointer.cpp
The file was modifiedclang/test/CodeGenCXX/builtin-std-move.cpp
The file was modifiedclang/test/SemaCXX/builtin-std-move.cpp
The file was modifiedclang/lib/Analysis/BodyFarm.cpp
Commit 81143b69dd832da189b1c875fd8a94b288c486c6 by johannes
[Attributor][FIX] Use AttributorConfig in the unit tests too
The file was modifiedllvm/unittests/Transforms/IPO/AttributorTest.cpp
Commit a7b9d75e7a4e4d9555f54753c70e66821dd447a9 by craig.topper
[DAGCombiner] Move or/xor/and opcode check in ReduceLoadOpStoreWidth before hasOneUse check.

hasOneUse is not cheap on nodes with chain results that might have
many uses. By checking the opcode first, we can avoid a costly walk
of the use list on nodes we aren't interested in.

Found by investigating calls to hasNUsesOfValue from the example
provided in D123857.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit f2526c1a5c6fe6d2740b68e2d73b85c958fd2719 by chris.bieneman
Add DXIL Bitcode Writer and DXIL testing

This change is a big blob of code that isn't easy to break up. It
either comes in all together as a blob, works and has tests, or it
doesn't do anything.

Logically you can think of this patch as three things:
(1) Adding virtual interfaces so the bitcode writer can be overridden
(2) Adding a new bitcode writer implementation for DXIL
(3) Adding some (optional) crazy CMake goop to build the
DirectXShaderCompiler's llvm-dis as dxil-dis for testing

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D122082
The file was modifiedllvm/test/CMakeLists.txt
The file was modifiedllvm/test/lit.site.cfg.py.in
The file was addedllvm/test/tools/dxil-dis/BasicIR.ll
The file was addedllvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
The file was addedllvm/test/tools/dxil-dis/di-subrotine.ll
The file was addedllvm/tools/dxil-dis/CMakeLists.txt
The file was addedllvm/test/tools/dxil-dis/debug-info.ll
The file was modifiedllvm/lib/Target/DirectX/CMakeLists.txt
The file was addedllvm/test/tools/dxil-dis/lit.local.cfg
The file was addedllvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.h
The file was addedllvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
The file was addedllvm/lib/Target/DirectX/DXILWriter/CMakeLists.txt
The file was modifiedllvm/lib/Target/DirectX/DirectXTargetMachine.cpp
The file was addedllvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.cpp
The file was addedllvm/test/tools/dxil-dis/attribute-filter.ll
The file was modifiedllvm/lib/Target/DirectX/DirectX.h
The file was addedllvm/test/tools/dxil-dis/di-subprogram.ll
The file was addedllvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.h
The file was modifiedllvm/test/lit.cfg.py
The file was addedllvm/test/tools/dxil-dis/di-compile-unit.ll
The file was addedllvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.h
The file was addedllvm/test/tools/dxil-dis/metadata.ll
Commit c6dc229a6d5224b85dbca6e4310db1dfa6eb214d by craig.topper
[DAGCombiner] Move call to hasOneUse after opcode checks. NFC

Checking the opcode is cheap, counting the number of uses is not.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit 353f0a8e43f7e1d12ac96c5e8c37c4d887f51fe2 by stilis
Revert "[mlir] Refactor LICM into a utility"

This reverts commit 3131f808243abe3746280e016ab9459c14d9e53b.

This commit broke the Windows mlir bot:
https://lab.llvm.org/buildbot/#/builders/13/builds/19745
The file was removedmlir/include/mlir/Transforms/LoopInvariantCodeMotionUtils.h
The file was modifiedmlir/lib/Transforms/Utils/ControlFlowSinkUtils.cpp
The file was removedmlir/include/mlir/Transforms/SideEffectUtils.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was modifiedmlir/lib/Interfaces/CMakeLists.txt
The file was modifiedmlir/include/mlir/Interfaces/LoopLikeInterface.h
The file was modifiedmlir/lib/Transforms/Utils/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp
The file was modifiedmlir/include/mlir/IR/Region.h
The file was modifiedmlir/lib/Transforms/ControlFlowSink.cpp
The file was modifiedmlir/lib/Transforms/LoopInvariantCodeMotion.cpp
The file was removedmlir/lib/Transforms/Utils/SideEffectUtils.cpp
The file was removedmlir/lib/Transforms/Utils/LoopInvariantCodeMotionUtils.cpp
The file was modifiedmlir/include/mlir/Transforms/ControlFlowSinkUtils.h
The file was modifiedmlir/lib/Interfaces/LoopLikeInterface.cpp
Commit 9d86bf825c21279abfe318317d1a22b007331fa3 by craig.topper
[X86] Move hasOneUse check after opcode check. NFC

Checking opcode is cheap. hasOneUse might not be if the node has
multiple results. By checking the opcode we can rule out nodes
with multiple results we aren't interested in.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit b8033de063f23252ac8c914965a7d7d5ef188352 by Matthew.Arsenault
MIR: Serialize a few bool function fields
The file was modifiedllvm/lib/CodeGen/MIRParser/MIRParser.cpp
The file was modifiedllvm/lib/CodeGen/MIRPrinter.cpp
The file was addedllvm/test/CodeGen/MIR/X86/exception-function-state.mir
The file was modifiedllvm/include/llvm/CodeGen/MIRYamlMapping.h
Commit 193fde7509d7805771adaef0f34186cb2cf6e084 by Matthew.Arsenault
llvm-reduce: Clone some of the easy function properties

Error on some of these other fields, since tracking down test cases
for all of these at once is exhausting.
The file was addedllvm/test/tools/llvm-reduce/mir/preserve-func-info.mir
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
The file was modifiedllvm/tools/llvm-reduce/ReducerWorkItem.cpp
Commit cac81161ed1386b32443e13ab513c6a3d081d6a7 by jhuber6
[OpenMP] Don't manually strip sections in the linker wrapper

Summary:
The changes in D122987 ensures that the offloading sections always have
the SHF_EXCLUDE flag. This means that we do not need to manually strip
these sections for ELF or COFF targets.
The file was modifiedclang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
Commit 984a0dc386553f28068716a087d65ccf8a92889b by jhuber6
[OpenMP] Use new offloading binary when embedding offloading images

The previous patch introduced the offloading binary format so we can
store some metada along with the binary image. This patch introduces
using this inside the linker wrapper and Clang instead of the previous
method that embedded the metadata in the section name.

Differential Revision: https://reviews.llvm.org/D122683
The file was modifiedclang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
The file was modifiedclang/test/Frontend/embed-object.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/ModuleUtils.h
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedllvm/lib/Transforms/Utils/ModuleUtils.cpp
The file was modifiedllvm/include/llvm/Object/OffloadBinary.h
The file was modifiedclang/test/Driver/openmp-offload-gpu.c
The file was modifiedclang/include/clang/Basic/CodeGenOptions.h
The file was modifiedclang/test/Frontend/embed-object.ll
Commit fa26c7ff4b5d94763106712bf0009f2abde343c0 by jeffniu22
[mlir] Refactor LICM into a utility

LICM is refactored into a utility that is application on any region. The implementation is moved to Transform/Utils.
The file was modifiedmlir/include/mlir/IR/Region.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp
The file was modifiedmlir/lib/Transforms/LoopInvariantCodeMotion.cpp
The file was modifiedmlir/include/mlir/Transforms/ControlFlowSinkUtils.h
The file was addedmlir/lib/Transforms/Utils/SideEffectUtils.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp
The file was modifiedmlir/lib/Transforms/Utils/CMakeLists.txt
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was modifiedmlir/lib/Transforms/Utils/ControlFlowSinkUtils.cpp
The file was modifiedmlir/lib/Transforms/ControlFlowSink.cpp
The file was modifiedmlir/include/mlir/Interfaces/LoopLikeInterface.h
The file was addedmlir/include/mlir/Transforms/SideEffectUtils.h
The file was modifiedmlir/lib/Interfaces/CMakeLists.txt
The file was addedmlir/lib/Transforms/Utils/LoopInvariantCodeMotionUtils.cpp
The file was modifiedmlir/lib/Interfaces/LoopLikeInterface.cpp
The file was addedmlir/include/mlir/Transforms/LoopInvariantCodeMotionUtils.h
Commit ac8c720d4863b2b520f31b156ee5e55aff2e1cde by craig.topper
[IR] Allow constant folding (insertelement <vscale x 2 x i32> zeroinitializer, i32 0, i32 i32 0.

Most of insertelement constant folding is blocked if the vector type
is scalable. I believe we can make an exception for inserting null
into an all zeros vector.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D123413
The file was modifiedllvm/lib/IR/ConstantFold.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/InsertElement.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/sve-widen-phi.ll
Commit fc9e440942ffe97e63ff71868b1da67e0b2dbead by joker.eph
Apply clang-tidy fixes for readability-identifier-naming in DummyParserFuzzer.cpp (NFC)
The file was modifiedmlir/tools/mlir-parser-fuzzer/DummyParserFuzzer.cpp
Commit 94244bda9d7f2ad49d75a412e4f7f62ab228a544 by joker.eph
Apply clang-tidy fixes for readability-identifier-naming in mlir-parser-fuzzer.cpp (NFC)
The file was modifiedmlir/tools/mlir-parser-fuzzer/mlir-parser-fuzzer.cpp
Commit b1d3faab7a353fa82c2985ecc7822b5a03f393ee by jeffniu22
[NFC] fix cmake build
The file was modifiedmlir/lib/Transforms/Utils/CMakeLists.txt
Commit 329abac134a35acc81bfab30a87130a3c208be2a by chris.bieneman
Blind stab in the dark to fix a bot failure

*fingers crossed*
The file was modifiedclang/unittests/Driver/ToolChainTest.cpp
Commit 33b604d1c3017a6d09e47384566353efe7bbfe57 by jhuber6
[OpenMP] Fix linting diagnostics in the linker wrapper

Summary:
A previous patch had some linter warnings that should've been addressed.
The file was modifiedclang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
Commit e8760b51ee0f972587cb0af922a3f828ab6926d6 by i
[Clang][OpenMP] Use bitfields for flags in `OMPAtomicDirective`

As suggested in D120290.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D123862
The file was modifiedclang/include/clang/AST/StmtOpenMP.h
The file was modifiedclang/lib/AST/StmtOpenMP.cpp
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp
Commit 64aff3632f5b9a6d78e906342804766d49a1ec1d by pklausler
[flang][runtime] Fix ENDFILE for formatted stream output

A predicate expression made ENDFILE statements significant
only for sequential files, but it's applicable to formatted
stream output as well.

Differential Revision: https://reviews.llvm.org/D123730
The file was modifiedflang/runtime/unit.cpp