SuccessChanges

Summary

  1. [DebugInfo] Add another level to DebugInfoKind called Constructor (details)
  2. [mlir] Add support for attaching a visibility to symbols. (details)
  3. [mlir] NFC: Remove unused variable. (details)
  4. Re-enable testing of .s tests under test/CodeGen/X86. (details)
  5. [GlobalISel] Change representation of shuffle masks in MachineOperand. (details)
  6. [llvm-exegesis] Initialize const bitvector member (details)
  7. [LanguageRuntime] Retire an unused member function. NFCI. (details)
  8. try to fix InterfaceStubs/lambda.cpp on Windows after bd8c8827d96f0 (details)
  9. [lldb/Utility] Add std::move to make placate clang 3.8 (details)
  10. [mlir] [VectorOps] fixed typo in verifier of slice op (details)
  11. [clang] [test] Fix riscv-toolchain-extra to be less picky about paths (details)
  12. [X86] Add test to show that nofpexcept flag is not preserved by stack (details)
  13. [X86] Copy the nofpexcept flag when folding a load into an instruction (details)
  14. [MLIR] Fix broken link locations after move to monorepo (details)
  15. [PowerPC] [NFC] set instruction number as 1st priority of lsr cost (details)
  16. [MC] Don't resolve relocations referencing STB_LOCAL STT_GNU_IFUNC (details)
  17. [ELF] Add -z force-ibt and -z shstk for Intel Control-flow Enforcement (details)
  18. [OpenMP][Tool] Make tests for archer dependent on TSan (details)
  19. [ELF] Delete unintended --force-bti (details)
  20. [OpenMP][Tool] Improving stack trace for Archer (details)
  21. [AMDGPU] Add gfx9 assembler and disassembler test cases (details)
  22. [AMDGPU] Improve error checking in gfx10 assembler tests (details)
  23. [AMDGPU] Remove duplicate gfx10 assembler and disassembler tests (details)
  24. [lldb] Fix that SBThread.GetStopDescription is returning strings with (details)
  25. [lldb] Don't defend against internal LLVM errors in IRInterpreter (details)
Commit 53539bb032d162e0147c0e9650a5d1c7ca77dae0 by akhuang
[DebugInfo] Add another level to DebugInfoKind called Constructor
The option will limit debug info by only emitting complete class type
information when its constructor is emitted. This patch changes
comparisons with LimitedDebugInfo to use the new level instead.
Differential Revision: https://reviews.llvm.org/D72427
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.h
The file was modifiedclang/include/clang/Basic/DebugInfoOptions.h
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/CodeGen/CGBlocks.cpp
The file was modifiedclang/lib/CodeGen/CGStmt.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
Commit 9b92e4fbdb5bc4fdd21702e0ce104dfcac6a54a7 by riverriddle
[mlir] Add support for attaching a visibility to symbols.
Summary: The visibility defines the structural reachability of the
symbol within the IR. Symbols can define one of three visibilities:
* Public The symbol \may be accessed from outside of the visible IR. We
cannot assume that we can observe all of the uses of this symbol.
* Private The symbol may only be referenced from within the operations
in the current symbol table, via SymbolRefAttr.
* Nested The symbol may be referenced by operations in symbol tables
above the current symbol table, as long as each symbol table parent also
defines a non-private symbol. This allows or referencing the symbol from
outside of the defining symbol table, while retaining the ability for
the compiler to see all uses.
These properties help to reason about the properties of a symbol, and
will be used in a follow up to implement a dce pass on dead symbols.
A few examples of what this would look like in the IR are shown below:
  module @public_module {
   // This function can be accessed by 'live.user'
   func @nested_function() attributes { sym_visibility = "nested" }
    // This function cannot be accessed outside of 'public_module'
  func @private_function() attributes { sym_visibility = "private" }
}
  // This function can only be accessed from within this module.
func @private_function() attributes { sym_visibility = "private" }
  // This function may be referenced externally.
func @public_function()
  "live.user"() {uses = [@public_module::@nested_function,
                                     @private_function,
                                     @public_function]} : () -> ()
Depends On D72043
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D72044
The file was modifiedmlir/include/mlir/IR/SymbolTable.h
The file was modifiedmlir/lib/IR/SymbolTable.cpp
The file was modifiedmlir/lib/IR/Module.cpp
The file was modifiedmlir/test/lib/TestDialect/TestOps.td
The file was modifiedmlir/test/IR/traits.mlir
Commit 03edd6d6a693e5bc7b0df488c4d4901cc55d3566 by riverriddle
[mlir] NFC: Remove unused variable.
The file was modifiedmlir/test/lib/IR/TestSymbolUses.cpp
Commit 989bed989a41732d1b70314bd9063ccd6e74fe5c by richard
Re-enable testing of .s tests under test/CodeGen/X86.
These were temporarily disabled in 2013 and we apparently forgot to ever
turn them back on again.
Fix spelling of flag to llvm-mc in recently-added test that wasn't
actually being run due to this.
The file was modifiedllvm/test/CodeGen/X86/align-branch-boundary-default.s
The file was modifiedllvm/test/CodeGen/X86/lit.local.cfg
Commit e68e4cbcc50ba7ab8df5e09023f15e6cc2223bef by efriedma
[GlobalISel] Change representation of shuffle masks in MachineOperand.
We're planning to remove the shufflemask operand from ShuffleVectorInst
(D72467); fix GlobalISel so it doesn't depend on that Constant.
The change to prelegalizercombiner-shuffle-vector.mir happens because
the input contains a literal "-1" in the mask (so the parser/verifier
weren't really handling it properly). We now treat it as equivalent to
"undef" in all contexts.
Differential Revision: https://reviews.llvm.org/D72663
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
The file was modifiedllvm/include/llvm/CodeGen/MachineOperand.h
The file was modifiedllvm/lib/CodeGen/MachineOperand.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-shuffle-vector.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/lib/CodeGen/MachineFunction.cpp
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
The file was modifiedllvm/include/llvm/CodeGen/MachineInstrBuilder.h
The file was modifiedllvm/lib/CodeGen/MIRParser/MIParser.cpp
Commit 09db6e320985f2bee22634049857224e0a5e58f8 by Jonas Devlieghere
[llvm-exegesis] Initialize const bitvector member
This causes an error with older versions of clang: constructor for
'llvm::exegesis::InstructionsCache' must explicitly initialize the const
member 'BVC'
The file was modifiedllvm/tools/llvm-exegesis/lib/MCInstrDescView.cpp
Commit fb51ce10d7dcab9209d0cd059d907810dbd0197d by ditaliano
[LanguageRuntime] Retire an unused member function. NFCI.
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h
Commit 84baf123a5213512e92e7deca2d111e00c2b97da by thakis
try to fix InterfaceStubs/lambda.cpp on Windows after bd8c8827d96f0
The file was modifiedclang/test/InterfaceStubs/lambda.cpp
Commit d1e3b23be46ac3ada8f5fe844629ad5bc233c24d by Jonas Devlieghere
[lldb/Utility] Add std::move to make placate clang 3.8
This fixes an error thrown by clang 3.8 that no viable conversion from
returned value to the function return type.
The file was modifiedlldb/source/Utility/StructuredData.cpp
Commit 3818101f7f8a631f4d2e4c639420fa9d6ab325e9 by ajcbik
[mlir] [VectorOps] fixed typo in verifier of slice op
Reviewers: nicolasvasilache, andydavis1, rriddle
Reviewed By: nicolasvasilache, rriddle
Subscribers: merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako,
shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester,
lucyrfox, liufengdb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72664
The file was modifiedmlir/lib/Dialect/VectorOps/VectorOps.cpp
Commit 1ab13f8cc3f79d67c9b337cc0f4ac1dde0460be8 by mgorny
[clang] [test] Fix riscv-toolchain-extra to be less picky about paths
Fix riscv-toolchain-extra tests to pass when CLANG_RESOURCE_DIR is set
to another value than the default.
Differential Revision: https://reviews.llvm.org/D72591
The file was modifiedclang/test/Driver/riscv32-toolchain-extra.c
The file was modifiedclang/test/Driver/riscv64-toolchain-extra.c
Commit 1768ed7f8b1f53b5b4b3ff80da6ae2dce22b74a9 by craig.topper
[X86] Add test to show that nofpexcept flag is not preserved by stack
reload folding.
The file was addedllvm/test/CodeGen/X86/stack-folding-fp-nofpexcept.mir
Commit b1dcd84c7ea3c97ddd73f629441be24791f23624 by craig.topper
[X86] Copy the nofpexcept flag when folding a load into an instruction
using the load folding tables./
The file was modifiedllvm/test/CodeGen/X86/stack-folding-fp-nofpexcept.mir
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
Commit a7cac2bd4b6812ea6b59b5fa0298eadf3815a3b0 by aminim
[MLIR] Fix broken link locations after move to monorepo
I used the codemod python tool to do this with the following commands:
codemod 'tensorflow/mlir/blob/master/include'
'llvm/llvm-project/blob/master/mlir/include' codemod
'tensorflow/mlir/blob/master' 'llvm/llvm-project/blob/master/mlir'
codemod 'tensorflow/mlir' 'llvm-project/llvm'
Differential Revision: https://reviews.llvm.org/D72244
The file was modifiedmlir/examples/toy/Ch2/include/toy/Dialect.h
The file was modifiedmlir/examples/toy/Ch7/include/toy/Dialect.h
The file was modifiedmlir/examples/toy/README.md
The file was modifiedmlir/examples/toy/Ch5/include/toy/Dialect.h
The file was modifiedmlir/examples/toy/Ch4/include/toy/Dialect.h
The file was modifiedmlir/examples/toy/Ch3/include/toy/Dialect.h
The file was modifiedmlir/docs/Dialects/Vector.md
The file was modifiedmlir/examples/toy/Ch6/include/toy/Dialect.h
The file was modifiedmlir/docs/Tutorials/Toy/Ch-7.md
Commit 671544c25b1215433bc22d475db7eaef51096ea5 by czhengsz
[PowerPC] [NFC] set instruction number as 1st priority of lsr cost
model.
The file was addedllvm/test/CodeGen/PowerPC/lsr-insns-cost.ll
Commit 0136f226c4e46258ea73fcb994f6559cec4a9aa2 by maskray
[MC] Don't resolve relocations referencing STB_LOCAL STT_GNU_IFUNC
The file was modifiedllvm/test/MC/ELF/target-in-same-section.s
The file was modifiedllvm/lib/MC/ELFObjectWriter.cpp
Commit 7cd429f27d4886bb841ed0e3702e970f5f6cccd1 by maskray
[ELF] Add -z force-ibt and -z shstk for Intel Control-flow Enforcement
Technology
This patch is a joint work by Rui Ueyama and me based on D58102 by Xiang
Zhang.
It adds Intel CET (Control-flow Enforcement Technology) support to lld.
The implementation follows the draft version of psABI which you can
download from https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI.
CET introduces a new restriction on indirect jump instructions so that
you can limit the places to which you can jump to using indirect jumps.
In order to use the feature, you need to compile source files with
-fcf-protection=full.
* IBT is enabled if all input files are compiled with the flag. To force
enabling ibt, pass -z force-ibt.
* SHSTK is enabled if all input files are compiled with the flag, or if
-z shstk is specified.
IBT-enabled executables/shared objects have two PLT sections, ".plt" and
".plt.sec".  For the details as to why we have two sections, please read
the comments.
Reviewed By: xiangzhangllvm
Differential Revision: https://reviews.llvm.org/D59780
The file was modifiedlld/ELF/Arch/X86_64.cpp
The file was removedlld/test/ELF/i386-cet.s
The file was addedlld/test/ELF/i386-feature-cet.s
The file was modifiedlld/ELF/Writer.cpp
The file was addedlld/test/ELF/x86-64-feature-cet.s
The file was removedlld/test/ELF/x86-64-cet.s
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/ELF/Options.td
The file was modifiedlld/ELF/SyntheticSections.h
The file was modifiedlld/docs/ld.lld.1
The file was modifiedlld/ELF/SyntheticSections.cpp
The file was modifiedlld/ELF/Arch/X86.cpp
The file was modifiedlld/ELF/Target.h
The file was modifiedlld/ELF/Config.h
Commit 84637408f2e63821014974dac08dee50bb197c1b by protze
[OpenMP][Tool] Make tests for archer dependent on TSan
If the openmp project is built standalone, the test compiler is feature
tested for an available -fsanitize=thread flag. If the openmp project is
built as part of llvm, the target tsan is needed to test archer.
An additional line (requires tsan) was introduced to the tests, this
patch updates the line numbers for the race.
Follow-up for 77ad98c
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D71914
The file was modifiedopenmp/tools/archer/tests/races/critical-unrelated.c
The file was modifiedopenmp/tools/archer/tests/lit.cfg
The file was modifiedopenmp/tools/archer/tests/races/task-taskwait-nested.c
The file was modifiedopenmp/tools/archer/tests/CMakeLists.txt
The file was modifiedopenmp/tools/archer/tests/races/task-two.c
The file was modifiedopenmp/cmake/DetectTestCompiler/CMakeLists.txt
The file was modifiedopenmp/tools/archer/tests/races/lock-unrelated.c
The file was modifiedopenmp/tools/archer/tests/races/parallel-simple.c
The file was modifiedopenmp/tools/archer/tests/races/task-taskgroup-unrelated.c
The file was modifiedopenmp/tools/archer/tests/races/lock-nested-unrelated.c
The file was modifiedopenmp/tools/archer/tests/races/task-dependency.c
The file was modifiedopenmp/cmake/OpenMPTesting.cmake
The file was modifiedopenmp/tools/archer/tests/lit.site.cfg.in
Commit d9819f366233e53427d0929729a58f85dc748cfb by maskray
[ELF] Delete unintended --force-bti
The file was modifiedlld/ELF/Options.td
Commit ed810da73270267082c347bc2919eebb7978a2fe by protze
[OpenMP][Tool] Improving stack trace for Archer
The OpenMP runtime is not instrumented, so entering the runtime leaves
no hint on the source line of the pragma on ThreadSanitizer's function
stack.
This patch adds function entry/exit annotations for OpenMP parallel
regions, and synchronization regions (barrier, taskwait, taskgroup).
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D70408
The file was modifiedopenmp/tools/archer/ompt-tsan.cpp
Commit 63c3691f79179db9a16f260f1cf81475fdfef060 by jay.foad
[AMDGPU] Add gfx9 assembler and disassembler test cases
Summary: This adds assembler tests for cases that were previously only
in the disassembler tests, and vice versa.
Reviewers: rampitec, arsenm, nhaehnle
Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye,
jfb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72592
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx9_dasm_all.txt
The file was modifiedllvm/test/MC/AMDGPU/gfx9_asm_all.s
Commit 0950de264e37264b9f767a898bd839d9fcb7328f by jay.foad
[AMDGPU] Improve error checking in gfx10 assembler tests
Summary: This adds checks that the expected error was actually reported
against the correct instruction, and fixes a couple of problems that
that showed up: one incorrect W32-ERR:
v_cmp_class_f16_sdwa vcc, v1, v2 src0_sel:DWORD src1_sel:DWORD
// W64: encoding: [0xf9,0x04,0x1e,0x7d,0x01,0x00,0x06,0x06]
-// W32-ERR: error: invalid operand for instruction
+// W32-ERR: error: {{instruction not supported on this GPU|invalid
operand for instruction}}
and one missing W32-ERR:
v_cmp_class_f16_sdwa s[6:7], v1, v2 src0_sel:DWORD src1_sel:DWORD
// W64: encoding: [0xf9,0x04,0x1e,0x7d,0x01,0x86,0x06,0x06]
+// W32-ERR: error: invalid operand for instruction
Reviewers: rampitec, arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr,
t-tye, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72611
The file was modifiedllvm/test/MC/AMDGPU/gfx10_asm_all.s
Commit 440ce5164f52a6b7cdf70322cc1c95656cac9aa9 by jay.foad
[AMDGPU] Remove duplicate gfx10 assembler and disassembler tests
Summary: Depends on D72611.
Reviewers: rampitec, arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr,
t-tye, jfb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72616
The file was modifiedllvm/test/MC/AMDGPU/gfx10_asm_all.s
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx10_dasm_all.txt
Commit 61b6a4e82653e1209126404d33ad20a268f55db1 by Raphael Isemann
[lldb] Fix that SBThread.GetStopDescription is returning strings with
uninitialized memory at the end.
Summary:
`SBThread.GetStopDescription` is a curious API as it takes a buffer
length as a parameter that specifies how many bytes the buffer we pass
has. Then we fill the buffer until the specified length (or the length
of the stop description string) and return the string length. If the
buffer is a nullptr however, we instead return how many bytes we would
have written to the buffer so that the user can allocate a buffer with
the right size and pass that size to a subsequent
`SBThread.GetStopDescription` call.
Funnily enough, it is not possible to pass a nullptr via the Python SWIG
bindings, so that might be the first API in LLDB that is not only hard
to use correctly but impossible to use correctly. The only way to call
this function via Python is to throw in a large size limit that is
hopefully large enough to contain the stop description (otherwise we
only get the truncated stop description).
Currently passing a size limit that is smaller than the returned stop
description doesn't cause the Python bindings to return the stop
description but instead the truncated stop description + uninitialized
characters at the end of the string. The reason for this is that we
return the result of `snprintf` from the method which returns the amount
of bytes that *would* have been written (which is larger than the
buffer). This causes our Python bindings to return a string that is as
large as full stop description but the buffer that has been filled is
only as large as the passed in buffer size.
This patch fixes this issue by just recalculating the string length in
our buffer instead of relying on the wrong return value. We also have to
do this in a new type map as the old type map is also used for all
methods with the given argument pair `char *dst, size_t dst_len` (e.g.
SBProcess.GetSTDOUT`). These methods have different semantics for these
arguments and don't null-terminate the returned buffer (they instead
return the size in bytes) so we can't change the existing typemap
without breaking them.
Reviewers: labath, jingham
Reviewed By: labath
Subscribers: clayborg, shafik, abidh, JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D72086
The file was modifiedlldb/bindings/interface/SBThread.i
The file was modifiedlldb/bindings/python/python-typemaps.swig
The file was modifiedlldb/packages/Python/lldbsuite/test/python_api/thread/TestThreadAPI.py
Commit f18370fe0e7576fb9947e49d66f7a6962c6822ce by Raphael Isemann
[lldb] Don't defend against internal LLVM errors in IRInterpreter
Summary: Whenever we cast an LLVM instruction to one of its subclasses,
we do a double check if the RTTI enum value actually allows us to cast
the class. I don't see a way this can ever happen as even when LLVM's
RTTI system has some corrupt internal state (which we probably should
not test in the first place) we just reuse LLVM RTTI to do the second
check.
This also means that if we ever make an actual programming error in this
function (e.g., have a enum value and then cast it to a different
subclass), we just silently fall back to the JIT in our tests.
We also can't test this code in any reasonable way.
This removes the checks and uses `llvm::cast` instead which will raise a
fatal error when casting fails.
Reviewers: labath, mib
Reviewed By: labath
Subscribers: abidh, JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D72596
The file was modifiedlldb/source/Expression/IRInterpreter.cpp