Commit
e745f7c563734bcc958d528714493ee79581d23a
by craig.topper[LegalizeTypes] Improve ExpandIntRes_XMULO codegen.
The code previously used two BUILD_PAIRs to concatenate the two UMULO results with 0s in the lower bits to match original VT. Then it created an ADD and a UADDO with the original bit width. Each of those operations need to be expanded since they have illegal types.
Since we put 0s in the lower bits before the ADD, the lower half of the ADD result will be 0. So the lower half of the UADDO result is solely determined by the other operand. Since the UADDO need to be split in half, we don't really needd an operation for the lower bits. Unfortunately, we don't see that in type legalization and end up creating something more complicated and DAG combine or lowering aren't always able to recover it.
This patch directly generates the narrower ADD and UADDO to avoid needing to legalize them. Now only the MUL is done on the original type.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D97440
|
 | llvm/test/CodeGen/AArch64/vec_umulo.ll |
 | llvm/test/CodeGen/SPARC/umulo-128-legalisation-lowering.ll |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp |
 | llvm/test/CodeGen/PowerPC/umulo-128-legalisation-lowering.ll |
 | llvm/test/CodeGen/AArch64/umulo-128-legalisation-lowering.ll |
 | llvm/test/CodeGen/PowerPC/pr45448.ll |
Commit
82289aa6c88ad9840369db294cc66ed829e8c435
by n.james93[clang-tidy] Remove OptionError
The interface served a purpose, but since the ability to emit diagnostics when parsing configuration was added, its become mostly redundant. Emitting the diagnostic and removing the boilerplate is much cleaner.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D97614
|
 | clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp |
 | clang-tools-extra/clang-tidy/ClangTidyCheck.h |
 | clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp |
 | clang-tools-extra/clang-tidy/ClangTidyCheck.cpp |
Commit
dcfec279d607c41095f0f2d6469d6e4b2e618269
by aheejin[WebAssembly] Handle empty cleanuppads when adding catch_all
In `LateEHPrepare::addCatchAlls`, the current code tries to get the iterator's debug info even when it is `MachineBasicBlock::end()`. This fixes the bug by adding empty debug info instead in that case.
Reviewed By: tlively
Differential Revision: https://reviews.llvm.org/D97679
|
 | llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp |
 | llvm/test/CodeGen/WebAssembly/exception.mir |
Commit
040c1b49d7a7eaa23d883ca363744944f5597d92
by aeubanksMove EntryExitInstrumentation pass location
This seems to be more of a Clang thing rather than a generic LLVM thing, so this moves it out of LLVM pipelines and as Clang extension hooks into LLVM pipelines.
Move the post-inline EEInstrumentation out of the backend pipeline and into a late pass, similar to other sanitizer passes. It doesn't fit into the codegen pipeline.
Also fix up EntryExitInstrumentation not running at -O0 under the new PM. PR49143
Reviewed By: hans
Differential Revision: https://reviews.llvm.org/D97608
|
 | clang/lib/CodeGen/BackendUtil.cpp |
 | llvm/test/CodeGen/X86/musttail-inalloca.ll |
 | llvm/test/Other/opt-Os-pipeline.ll |
 | llvm/test/CodeGen/AMDGPU/opt-pipeline.ll |
 | llvm/test/CodeGen/PowerPC/mcount-insertion.ll |
 | llvm/lib/CodeGen/TargetPassConfig.cpp |
 | llvm/test/CodeGen/ARM/gnu_mcount_nc.ll |
 | clang/test/CodeGen/X86/x86_64-instrument-functions.c |
 | llvm/test/Other/opt-O0-pipeline.ll |
 | llvm/test/Other/opt-O3-pipeline-enable-matrix.ll |
 | llvm/test/CodeGen/Mips/long-call-mcount.ll |
 | llvm/test/CodeGen/Mips/mcount.ll |
 | llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h |
 | llvm/test/CodeGen/AArch64/O0-pipeline.ll |
 | llvm/test/CodeGen/X86/O0-pipeline.ll |
 | llvm/test/Other/opt-O3-pipeline.ll |
 | llvm/test/CodeGen/AArch64/O3-pipeline.ll |
 | clang/test/CodeGen/mcount.c |
 | llvm/test/Other/opt-O2-pipeline.ll |
 | llvm/test/CodeGen/ARM/O3-pipeline.ll |
 | llvm/test/CodeGen/X86/opt-pipeline.ll |
 | llvm/test/Other/opt-O0-pipeline-enable-matrix.ll |
 | clang/test/Frontend/gnu-mcount.c |
 | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp |
Commit
3f40dbbbc71d28f6ad0bd616fe009bde861362ed
by sd.fertile[PowerPC][AIX] Enable passing vectors in variadic functions.
Differential Revision: https://reviews.llvm.org/D97474
|
 | clang/test/CodeGen/aix-altivec-vaargs.c |
 | clang/lib/CodeGen/TargetInfo.cpp |
Commit
52b8e10597315a96bc7cbc7cfe618e301c1e6e6c
by thakis[libclang] Remove LIBCLANG_INCLUDE_CLANG_TOOLS_EXTRA
LIBCLANG_INCLUDE_CLANG_TOOLS_EXTRA causes clang-tools-extra tools to be included in libclang, which caused a dependency cycle. The option has been off by default for two releases now, and (based on a web search and mailing list feedback) nobody seems to turn it on. Remove it, like planned on https://reviews.llvm.org/D79599
Differential Revision: https://reviews.llvm.org/D97693
|
 | llvm/utils/gn/secondary/clang/tools/libclang/BUILD.gn |
 | clang-tools-extra/test/lit.site.cfg.py.in |
 | llvm/utils/gn/secondary/clang/tools/libclang/include_clang_tools_extra.gni |
 | clang/tools/libclang/CIndex.cpp |
 | clang-tools-extra/test/clang-tidy/infrastructure/nolint-plugin.cpp |
 | clang/docs/ReleaseNotes.rst |
 | llvm/utils/gn/secondary/clang-tools-extra/test/BUILD.gn |
 | clang-tools-extra/test/clang-tidy/infrastructure/nolintnextline-plugin.cpp |
 | clang-tools-extra/test/CMakeLists.txt |
 | clang/tools/libclang/CMakeLists.txt |
Commit
283db5f0837d55f91242812003adf6e189ba743e
by yhsBPF: fix enum value 0 issue for __builtin_preserve_enum_value()
Lorenz Bauer reported that the following code will have compilation error for bpf target: enum e { TWO }; bpf_core_enum_value_exists(enum e, TWO); The clang emitted the following error message: __builtin_preserve_enum_value argument 1 invalid
In SemaChecking, an expression like "*(enum NAME)1" will have cast kind CK_IntegralToPointer, but "*(enum NAME)0" will have cast kind CK_NullToPointer. Current implementation only permits CK_IntegralToPointer, missing enum value 0 case.
This patch permits CK_NullToPointer cast kind and the above test case can pass now.
Differential Revision: https://reviews.llvm.org/D97659
|
 | clang/lib/Sema/SemaChecking.cpp |
 | clang/test/CodeGen/builtins-bpf-preserve-field-info-4.c |
Commit
87e05eb03b1b58b9c1184d688868ab153d53000d
by jpienaarRevert "Remove use of tuple for multiresult type storage"
This reverts commit 08f0764ff551c5aa2486c40871453e1ff40fb679.
|
 | mlir/lib/IR/Operation.cpp |
 | mlir/include/mlir/IR/Operation.h |
 | mlir/lib/IR/Value.cpp |
Commit
8adfb38224697afca205343c0e1a49bd03ecfc09
by n.james93[clang-tidy] Simplify diagnostics for UniqueptrResetRelease check
Tweak the diagnostics to create small replacements rather than grabbing source text from the lexer. Also simplified the diagnostic message.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D97632
|
 | clang-tools-extra/test/clang-tidy/checkers/misc-uniqueptr-reset-release.cpp |
 | clang-tools-extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp |
Commit
6fb6bdff3701b00af4a573604f599093f7555bcf
by nguillemotFix the value_type of defusechain_iterator to match its operator*()
defusechain_iterator has an operator*() and operator->() that return references to a MachineOperand, but its "reference" and "pointer" typedefs are set as if the iterator returns a MachineInstr reference. This causes compilation errors when defusechain_iterator is used in generic code that uses the "reference" and "pointer" typedefs. This patch fixes this by updating the typedefs to use MachineOperand instead of MachineInstr.
Reviewed By: mkitzan
Differential Revision: https://reviews.llvm.org/D97522
|
 | llvm/include/llvm/CodeGen/MachineRegisterInfo.h |
Commit
18adbb86f9983fe7ec0506466a29fbd5a2cfa0d2
by Vedant Kumar[test/profile] Add test coverage for __llvm_profile_write_buffer_internal
Reviewed By: davidxl, MaskRay
Differential Revision: https://reviews.llvm.org/D97697
|
 | compiler-rt/test/profile/instrprof-write-buffer-internal.c |
Commit
8f9f7d02aaac98f8539158e05975e7acbbb58fcc
by n.james93[clang-tidy] Tweak misc-static-assert fix in c++17
If C++17 mode is enabled and the assert doesn't have a string literal, we can emit a static assert with no message in favour of one with an empty message.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D97313
|
 | clang-tools-extra/test/clang-tidy/checkers/misc-static-assert.cpp |
 | clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp |
Commit
71ef54337d5e83c6767e4816227ef340caa337fc
by code[darwin] switch blocking mutex from osspinlock to os_unfair_lock
OSSpinLock is deprecated, so we are switching to `os_unfair_lock`. However, `os_unfair_lock` isn't available on older OSs, so we keep `OSSpinLock` as fallback.
Also change runtime assumption check to static since they only ever check constant values.
rdar://69588111
Reviewed By: delcypher, yln
Differential Revision: https://reviews.llvm.org/D97509
|
 | compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp |
Commit
d942a82a076d35130376fa786adfc933c7db1c89
by iMake -f[no-]split-dwarf-inlining CC1 default align with driver default (no inlining)
This makes CC1 and driver defaults consistent. In addition, for more common cases (-g is specified without -gsplit-dwarf), users will not see -fno-split-dwarf-inlining in CC1 options.
Verified that the below is still true:
* `clang -g` => `splitDebugInlining: false` in DICompileUnit * `clang -g -gsplit-dwarf` => `splitDebugInlining: false` in DICompileUnit * `clang -g -gsplit-dwarf -fsplit-dwarf-inlining` => no `splitDebugInlining: false`
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D97706
|
 | clang/test/CodeGen/split-debug-inlining.c |
 | clang/test/Driver/split-debug.c |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/include/clang/Driver/Options.td |
Commit
74c883f7e5ba9143e51c2a68203e324511eb63a0
by martin[libcxx] [test] Use the native path types in path.compare
This makes sure that it actually tests the right compare() overloads in windows configurations.
This also fixes the allocation guards that enforce no allocations while running the compare() functions.
Differential Revision: https://reviews.llvm.org/D97551
|
 | libcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp |
Commit
ea7f211b2e6cbb49f178ec9ba085a4958d33cdea
by ataei[mlir] Add polynomial approximation for math::ExpOp
Similar to fast_exp in https://github.com/boulos/syrah
Differential Revision: https://reviews.llvm.org/D97599
|
 | mlir/test/mlir-cpu-runner/math_polynomial_approx.mlir |
 | mlir/test/Dialect/Math/polynomial-approximation.mlir |
 | mlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp |
Commit
8f7dc9964752fa7ba703a6682314a79b4df849dd
by Vedant Kumar[test/profile] Pass -w to suppress suggestion to use fopen_s
|
 | compiler-rt/test/profile/instrprof-write-buffer-internal.c |
Commit
2fcc3f4b18b4b82711ef0142f0881136cd419d76
by Vedant Kumar[test/profile] Disable instrprof-write-buffer-internal.c on Windows
This is failing due to:
"instrprof-write-buffer-internal.c.tmp.buf.profraw: Invalid instrumentation profile data (file header is corrupt)"
https://lab.llvm.org/buildbot/#/builders/127/builds/6830
|
 | compiler-rt/test/profile/instrprof-write-buffer-internal.c |
Commit
087bc20fe42f2619fca76818900f73dd2c4a5b94
by rob.suderman[MLIR][TOSA] Lower tosa.transpose to linalg.generic
Lowers the transpose operation to a generic linalg op when permutations is a constant value.
Reviewed By: mravishankar
Differential Revision: https://reviews.llvm.org/D97508
|
 | mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir |
 | mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp |
Commit
015d78a25e510a6ff512d562b4e062d16c4afc78
by smeenai[lldb] Remove XPCServices symlinking
This is a downstream change that was accidentally included upstream.
Reviewed By: vsk
Differential Revision: https://reviews.llvm.org/D97701
|
 | lldb/cmake/modules/LLDBFramework.cmake |
Commit
922de2574c17a755279358be928e5343dcf56c56
by jezng[lld-macho] Partial revert of D95204
Trying to unbreak https://lab.llvm.org/buildbot/#/builders/57/builds/4753
I'm not able to repro the failures locally so... here's hoping
|
 | clang/test/Driver/darwin-ld-platform-version-watchos.c |
 | clang/lib/Driver/ToolChain.cpp |
 | clang/test/Driver/darwin-ld-platform-version-macos.c |
 | clang/test/Driver/darwin-ld-platform-version-tvos.c |
 | clang/test/Driver/Inputs/lld/ld64.lld.darwinnew |
 | clang/test/Driver/darwin-ld-demangle-lld.c |
 | clang/test/Driver/Inputs/lld/ld64.lld.darwinold |
 | clang/test/Driver/darwin-ld-platform-version-ios.c |
Commit
011e7bcaa3194ed4ca3fec48263f5ef69fc1813c
by jan.kratochvilRevert "[lldb] Fix handling of `DW_AT_decl_file` according to D91014"
This reverts commit 7ec7876feda412b6edad0d83565395ef2fd5a004.
Non-x86_64 non-Linux bots broke by the testcase.
|
 | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp |
 | lldb/test/Shell/SymbolFile/DWARF/Inputs/DW_TAG_variable-DW_AT_decl_file-DW_AT_abstract_origin-crosscu2.s |
 | lldb/test/Shell/SymbolFile/DWARF/DW_TAG_variable-DW_AT_decl_file-DW_AT_abstract_origin-crosscu1.s |
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp |
Commit
a0f4526836a76a5e2f56d25c7e35cfd89b2d0908
by aardappel[WebAssembly] Fix split-dwarf not emitting DW_OP_WASM_location correctly
It was using the regular path for target indices that uses uleb, but TI_GLOBAL_RELOC needs to be uint32_t. Introduced here: https://reviews.llvm.org/D85685 Fixes: https://github.com/emscripten-core/emscripten/issues/13240
Differential Revision: https://reviews.llvm.org/D97564
|
 | llvm/test/MC/WebAssembly/dwarfdump.ll |
 | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp |
Commit
bcd504d8a3ba9ca4a490420a96aa94326070190d
by spatel[x86] add tests for select-of-bools; NFC
|
 | llvm/test/CodeGen/X86/select-with-and-or.ll |
Commit
fd64580f74c9c40c1dead1a7a11774199c49917d
by spatel[AArch64] add tests for select-of-bools; NFC
|
 | llvm/test/CodeGen/AArch64/select-with-and-or.ll |
Commit
bacacb9d5c979b2c32ef76ac00acfa445187028f
by thakis[lld/mac] Prefix errors with "ld64.lld" instead of just "lld"
Matches the ELF and COFF ports, which use ld.lld and lld-link, respectively.
While here, also move up `cleanupCallback` to match ELF / COFF.
Differential Revision: https://reviews.llvm.org/D97715
|
 | lld/MachO/Driver.cpp |
Commit
ab45289d2e7ce224ee938c45aa07c5d7119fdb6f
by thakis[lld/mac] Make -v print version and search paths in additon to linking, not instead of linking
This matches ld64's behavior.
Differential Revision: https://reviews.llvm.org/D97718
|
 | lld/MachO/Driver.cpp |
 | lld/test/MachO/silent-ignore.test |
 | lld/test/MachO/syslibroot.test |
 | lld/MachO/Options.td |
Commit
103ad3f90708eceddd9fea484ce82354e5a9d62d
by medismail.bennani[lldb/Commands] Fix short option collision for `process launch`
This patch changes the short option used in `CommandOptionsProcessLaunch` for the `-v|--environment` command option to `-E|--environment`.
The reason for that is, that it collides with the `-v|--structured-data-value` command option generated by `OptionGroupPythonClassWithDict` that I'm using in an upcoming patch for the `process launch` command.
The long option `--environment` remains the same.
Differential Review: https://reviews.llvm.org/D95100
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
|
 | lldb/source/Commands/CommandOptionsProcessLaunch.cpp |
 | lldb/source/Commands/Options.td |
 | lldb/docs/use/map.rst |
Commit
d62a53aaf1d38a55d1affbd3a30d564a4e9d3171
by medismail.bennani[lldb/Commands] Add command options for ScriptedProcess to ProcessLaunch
This patch adds a new command options to the CommandObjectProcessLaunch for scripted processes.
Among the options, the user need to specify the class name managing the scripted process. The user can also use a key-value dictionary holding arbitrary data that will be passed to the managing class.
This patch also adds getters and setters to `SBLaunchInfo` for the class name managing the scripted process and the dictionary.
rdar://65508855
Differential Review: https://reviews.llvm.org/D95710
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
|
 | lldb/source/API/SBLaunchInfo.cpp |
 | lldb/bindings/interface/SBLaunchInfo.i |
 | lldb/include/lldb/API/SBStructuredData.h |
 | lldb/source/Commands/CommandOptionsProcessLaunch.h |
 | lldb/source/Commands/CommandOptionsProcessLaunch.cpp |
 | lldb/source/API/SBTarget.cpp |
 | lldb/source/Commands/CommandObjectPlatform.cpp |
 | lldb/include/lldb/Host/ProcessLaunchInfo.h |
 | lldb/source/Host/common/ProcessLaunchInfo.cpp |
 | lldb/include/lldb/API/SBStream.h |
 | lldb/source/Commands/CommandObjectProcess.cpp |
 | lldb/include/lldb/API/SBLaunchInfo.h |
Commit
182f0d1a34419445bb19d67581d6ac1afc98b7fa
by medismail.bennani[lldb/Interpreter] Add ScriptInterpreter Wrapper for ScriptedProcess
This patch adds a ScriptedProcess interface to the ScriptInterpreter and more specifically, to the ScriptInterpreterPython.
This interface will be used in the C++ `ScriptProcess` Process Plugin to call the script methods.
At the moment, not all methods are implemented, they will upstreamed in upcoming patches.
This patch also adds helper methods to the ScriptInterpreter to convert `SBAPI` Types (SBData & SBError) to `lldb_private` types (DataExtractor & Status).
rdar://65508855
Differential Revision: https://reviews.llvm.org/D95711
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
|
 | lldb/include/lldb/lldb-forward.h |
 | lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h |
 | lldb/include/lldb/API/SBThreadPlan.h |
 | lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h |
 | lldb/include/lldb/Interpreter/ScriptInterpreter.h |
 | lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt |
 | lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp |
 | lldb/include/lldb/Interpreter/ScriptedProcessInterface.h |
 | lldb/bindings/python/python-wrapper.swig |
 | lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp |
 | lldb/include/lldb/API/SBData.h |
 | lldb/include/lldb/API/SBError.h |
 | lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.cpp |
 | lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h |
 | lldb/source/Interpreter/ScriptInterpreter.cpp |
 | lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h |
 | lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp |
Commit
2cff3dec1171188ce04ab1a4373cc1885ab97be1
by medismail.bennani[lldb/bindings] Add Python ScriptedProcess base class to lldb module
In order to facilitate the writting of Scripted Processes, this patch introduces a `ScriptedProcess` python base class in the lldb module.
The base class holds the python interface with all the - abstract - methods that need to be implemented by the inherited class but also some methods that can be overwritten.
This patch also provides an example of a Scripted Process with the `MyScriptedProcess` class.
rdar://65508855
Differential Revision: https://reviews.llvm.org/D95712
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
|
 | lldb/examples/python/scripted_process/scripted_process.py |
 | lldb/test/API/functionalities/scripted_process/Makefile |
 | lldb/test/API/functionalities/scripted_process/main.c |
 | lldb/examples/python/scripted_process/my_scripted_process.py |
 | lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py |
 | lldb/bindings/python/CMakeLists.txt |
Commit
46796762afe76496ec4dd900f64d0cf4cdc30e99
by medismail.bennani[lldb/Plugins] Add ScriptedProcess Process Plugin
This patch introduces Scripted Processes to lldb.
The goal, here, is to be able to attach in the debugger to fake processes that are backed by script files (in Python, Lua, Swift, etc ...) and inspect them statically.
Scripted Processes can be used in cooperative multithreading environments like the XNU Kernel or other real-time operating systems, but it can also help us improve the debugger testing infrastructure by writting synthetic tests that simulates hard-to-reproduce process/thread states.
Although ScriptedProcess is not feature-complete at the moment, it has basic execution capabilities and will improve in the following patches.
rdar://65508855
Differential Revision: https://reviews.llvm.org/D95713
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
|
 | lldb/source/Plugins/Process/scripted/CMakeLists.txt |
 | lldb/include/lldb/Target/Process.h |
 | lldb/source/Target/Target.cpp |
 | lldb/source/Plugins/Process/CMakeLists.txt |
 | lldb/source/Plugins/Process/scripted/ScriptedProcess.h |
 | lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp |
 | lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py |
 | lldb/bindings/python/CMakeLists.txt |
Commit
5a451a428904168a02483510235c66a4c82fdaab
by pklausler[flang] Runtime: SCAN and VERIFY
Implement the related character intrinsic functions SCAN and VERIFY.
Differential Revision: https://reviews.llvm.org/D97580
|
 | flang/unittests/Runtime/character.cpp |
 | flang/runtime/character.cpp |
 | flang/runtime/character.h |
Commit
2e803ec746ac3669efc47de58001dfee82cb8fe3
by thakis[lld/mac on non-mac] fix test/MachO/search-paths.test after ab45289d2e7ce
|
 | lld/test/MachO/search-paths.test |
Commit
3e6b6cee00819d256f30e84aec7ae634e0725534
by thakis[lld/mac] Use libSystem.dylib instead of libSystem.B.dylib in tests
For -flat_namespace, lld needs to load dylibs in LC_LOAD_DYLIB. The current setup meant that libSystem.dylib would cause a LC_LOAD_DYLIB with libSystem.B.dylib, but that didn't exist in our libsysroot for tests. So just drop the .B.
See https://reviews.llvm.org/D97641#2595237 and https://reviews.llvm.org/D97641#2595270
|
 | lld/test/MachO/stub-link.s |
 | lld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libSystem.tbd |
 | lld/test/MachO/Inputs/iPhoneSimulator.sdk/usr/lib/libSystem.tbd |
 | lld/test/MachO/lc-linker-option.ll |
 | lld/test/MachO/implicit-dylibs.s |
 | lld/test/MachO/link-search-order.s |
 | lld/test/MachO/weak-import.s |
Commit
8174f33dc9bf34e1cde57931e2e028bd4d49c98e
by thakis[lld/mac] Add support for -flat_namespace
-flat_namespace makes lld emit binaries that use name lookup that's more in line with other POSIX systems: Instead of looking up symbols as (dylib,name) pairs by dyld, they're instead looked up just by name.
-flat_namespace has three effects:
1. MH_TWOLEVEL and MH_NNOUNDEFS are no longer set in the Mach-O header 2. All symbols use BIND_SPECIAL_DYLIB_FLAT_LOOKUP as ordinal 3. When a dylib is added to the link, its dependent dylibs are also added, so that lld can verify that no undefined symbols remain at the end of a link with -flat_namespace. These transitive dylibs are added for symbol resolution, but they are not emitted in LC_LOAD_COMMANDs.
-undefined with -flat_namespace still isn't implemented. Before this change, it was impossible to hit that combination because -flat_namespace caused a diagnostic. Now that it no longer does, emit a dedicated temporary diagnostic when both flags are used.
Differential Revision: https://reviews.llvm.org/D97641
|
 | lld/MachO/Options.td |
 | lld/MachO/InputFiles.cpp |
 | lld/MachO/Driver.cpp |
 | lld/MachO/SymbolTable.cpp |
 | lld/test/MachO/header.s |
 | lld/MachO/SyntheticSections.cpp |
 | lld/test/MachO/flat-namespace.s |
Commit
418b4a7b3158b47043c4c8891eb2e27966a55fa2
by bjoern[clang-format] Respect spaces in line comment section...
... without an active column limit.
Before line comments were not touched at all with ColumnLimit == 0.
Differential Revision: https://reviews.llvm.org/D96896
|
 | clang/lib/Format/ContinuationIndenter.cpp |
 | clang/unittests/Format/FormatTestComments.cpp |
 | clang/unittests/Format/FormatTest.cpp |
Commit
6ca52815fb3cb32343b9a008fdf9f593da39f203
by bjoern[clang-format][PR47290] Add ShortNamespaceLines format option
clang-format documentation states that having enabled FixNamespaceComments one may expect below code:
c++ namespace a { foo(); }
to be turned into:
c++ namespace a { foo(); } // namespace a
In reality, no "// namespace a" was added. The problem was too high value of kShortNamespaceMaxLines, which is used while deciding whether a namespace is long enough to be formatted.
As with 9163fe2, clang-format idempotence is preserved.
Differential Revision: https://reviews.llvm.org/D87587
|
 | clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp |
 | clang/lib/Format/NamespaceEndCommentsFixer.cpp |
 | clang/docs/ReleaseNotes.rst |
 | clang/lib/Format/Format.cpp |
 | clang/docs/ClangFormatStyleOptions.rst |
 | clang/include/clang/Format/Format.h |
Commit
0658fc654c758d0bfab7d119ecf94caf5e5276d5
by thakis[lld/mac] Implement the missing bits of -undefined
This adds support for `-undefined dynamic_lookup`, and for `-undefined warning` and `-undefined suppress` with `-flat_namespace`.
We just replace undefined symbols with a DynamicLookup when we hit them.
With this, `check-llvm` passes when using ld64.lld.darwinnew as host linker.
Differential Revision: https://reviews.llvm.org/D97642
|
 | lld/MachO/SymbolTable.cpp |
 | lld/test/MachO/treat-undef-sym.s |
 | lld/MachO/Writer.cpp |
 | lld/MachO/UnwindInfoSection.cpp |
Commit
564f5b0734bd5d265a0046e5ca9d08ae5bc303eb
by richardRevert "[c++20] Mark class type NTTPs as done and start defining the feature test macro."
Some of the parts of this work were reverted; stop defining the feature test macro for now.
This reverts commit b4c63ef6dd90dba9af26a111c9a78b121c5284b1.
|
 | clang/lib/Frontend/InitPreprocessor.cpp |
 | clang/test/Lexer/cxx-features.cpp |
Commit
154c47dc06b5b432f9d8a3e3773e0089099a43d8
by spatel[SDAG] add helper for select->logic folds; NFC
This set of transforms should be extended to handle vector types.
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
Commit
5cf2a37f1255700d4da9d5f45e82bdfff09aee8c
by Yaxun.Liu[HIP] Emit kernel symbol
Currently clang uses stub function to launch kernel. This is inconvenient to interop with C++ programs since the stub function has different name as kernel, which is required by ROCm debugger.
This patch emits a variable symbol which has the same name as the kernel and uses it to register and launch the kernel. This allows C++ program to launch a kernel by using the original kernel name.
Reviewed by: Artem Belevich
Differential Revision: https://reviews.llvm.org/D86376
|
 | clang/lib/CodeGen/CGCUDANV.cpp |
 | clang/lib/CodeGen/CGCUDARuntime.h |
 | clang/lib/CodeGen/CodeGenModule.cpp |
 | clang/test/CodeGenCUDA/Inputs/cuda.h |
 | clang/test/CodeGenCUDA/unnamed-types.cu |
 | clang/test/CodeGenCUDA/cxx-call-kernel.cpp |
 | clang/test/CodeGenCUDA/kernel-dbg-info.cu |
 | clang/test/CodeGenCUDA/kernel-stub-name.cu |
 | clang/lib/CodeGen/CGExpr.cpp |