- Nov 18, 2022
-
-
wanglei authored
These instructions always output the canonical mnemonic. The GNU tools emit the canonical mnemonic for the branch pseudo instructions as well (e.g. "bgt" will be recognised by the assembler but never printed by objdump). Reviewed By: xen0n Differential Revision: https://reviews.llvm.org/D138100
-
Tobias Gysi authored
Add a DebugImporter to convert LLVMIR debug metadata into MLIR debug attributes. It is the counterpart to the DebugTranslation class and supports the same attributes. The revision only supports the translation of instruction, function, and module debug information. The import of intrinsics is left to a later revision. Depends on D138206 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D138209
-
Tobias Gysi authored
The revision makes specific debug information attribute parameters optional since some of them can be omitted in LLVMIR. The additional flexibility enables a later revision that will support importing debug information from LLVMIR. A special case is the types parameter of the SubroutineTypeAttr. For void functions, its first entry is null in LLVMIR. This revision splits the type parameter in an optional resultType parameter and an argumentTypes array to support this corner case. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D138206
-
Martin Storsjö authored
Make sure to use clang_target_link_libraries, which skips linking against libraries and links against libclang-cpp instead, if LLVM_LINK_LLVM_DYLIB is enabled. This fixes errors like these: ld.lld: error: duplicate symbol: clang::PPCallbacks::~PPCallbacks() >>> defined at libclangLex.a(PPCallbacks.cpp.obj) >>> defined at libclang-cpp.dll
-
Mikhail Goncharov authored
This reverts commit 34ab4743. as it has introduced circular dependency lib - analysis
-
Adrian Kuegel authored
Differential Revision: https://reviews.llvm.org/D138266
-
Jean Perier authored
Add hlfir.designate operation definition. This is the HLFIR building blocks to represent Fortran designator. An hlfir.designator is a Fortran "part-ref" and an optional susbstring or part ref. See the operation added description for more detail, and https://github.com/llvm/llvm-project/blob/main/flang/docs/HighLevelFIR.md for the rational of this operation. Differential Revision: https://reviews.llvm.org/D138121
-
Chuanqi Xu authored
llvm.coro.begin Previously we've taken care of the writes to allocas prior to llvm.coro.begin. However, since the promise alloca is special so that we never handled it before. For the long time, since the programmers can't access the promise_type due to the c++ language specification, we still failed to recognize the problem until a recent report: https://github.com/llvm/llvm-project/issues/57861 And we've tested many codes that the problem gone away after we handle the writes to the promise alloca prior to @llvm.coro.begin() prope until a recent report: https://github.com/llvm/llvm-project/issues/57861 And we've tested many codes that the problem gone away after we handle the writes to the promise alloca prior to @llvm.coro.begin() properly. Closes https://github.com/llvm/llvm-project/issues/57861
-
Guray Ozen authored
In a nested loop nest, it is not feasible to map different loops to the same processing unit; for an example, check the code below. This modification includes a check in this circumstance. ``` scf.foreach_thread (%i, %j) in (%c32, %c32) {...} { mapping = [#gpu.thread<x>, #gpu.thread<x>] } ``` Note: It also deletes a test because it is not possible to reproduce this error. Depends on D138020 Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D138032 -
Vitaly Buka authored
-
Matt Jacobson authored
This matches OpenBSD, and it supports Swift's use of clang for its C interop functionality. Recent changes to Swift use AddClangSystemIncludeArgs() to inspect the cc1 args; this doesn't work for platforms where cc1 adds standard include paths implicitly. See: <https://github.com/apple/swift/commit/cf3354222d9f480de74db390f53a6dcc749fde14> Also clean up InitHeaderSearch, making it clearer which targets manage header search paths in the driver. Differential Revision: https://reviews.llvm.org/D138183
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
luxufan authored
[RegisterScavenger][RISCV] Don't search for FrameSetup instrs if we were searching from Non-FrameSetup instrs Otherwise, the spill position may point to position where before FrameSetup instructions. In which case, the spill instruction may store to caller's frame since the stack pointer has not been adjustted. Fixes https://github.com/llvm/llvm-project/issues/58286 Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D135693
-
Chen Zheng authored
TLS pseudo ADDIStlsgdHA will have such def. This dead def should also prevent PPC from generating CTR loops.
-
Martin Storsjö authored
This fixes warnings like this: ``` openmp/runtime/test/omp_testsuite.h:107:60: warning: format specifies type 'unsigned int' but the argument has type 'DWORD' (aka 'unsigned long') [-Wformat] fprintf(stderr, "CreateThread() failed: Error #%u.\n", GetLastError()); ~~ ^~~~~~~~~~~~~~ %lu ``` Differential Revision: https://reviews.llvm.org/D137747 -
Martin Storsjö authored
Clang does accept the flag for any architecture, but prints a warning: clang-16: warning: argument unused during compilation: '-mrtm' [-Wunused-command-line-argument] This flag is documented as an x86 specific flag, so don't try to add it for other architectures, to silence this warning. Differential Revision: https://reviews.llvm.org/D137744 -
Han-Kuan Chen authored
Current lowerVECTOR_SHUFFLEAsVSlidedown only seeks whether input are EXTRACT_SUBVECTOR and their source are same. The commit will make the function seek input and their source until they are not EXTRACT_SUBVECTOR. Differential Revision: https://reviews.llvm.org/D138025
-
Han-Kuan Chen authored
Differential Revision: https://reviews.llvm.org/D138024
-
Vitaly Buka authored
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Alexander Shaposhnikov authored
Enable using -module-summary with -S (similarly to what currently can be achieved with opt <input> -o - | llvm-dis). This is a recommit of ef9e6246. Test plan: ninja check-all Differential revision: https://reviews.llvm.org/D137768
-
Fazlay Rabbi authored
This patch gives basic parsing and semantic analysis support for 'strict' modifier with 'grainsize' clause of 'taskloop' construct introduced in OpenMP 5.1 (section 2.12.2) Differential Revision: https://reviews.llvm.org/D138217
-
Lei Zhang authored
MemRef memory space actually can be an attribute. Update the map function signature to accept an attribute. The default mappings can still only covers numeric ones, but this allows downstream callers to extend with custom memory spaces. Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D138257
-
Matt Arsenault authored
-
Timm Bäder authored
-
Timm Bäder authored
Differential Revision: https://reviews.llvm.org/D138194
-
Chuanqi Xu authored
There are still some unused codes remained after 4a7be42d. And this patch tries to remove them.
-
Chuanqi Xu authored
It is meaningless to emit macro definitions for named modules. With some small experiments, the size of the module for the named modules reduced 2%~4% after this patch.
-
Matt Arsenault authored
VOP3OpSel wasn't trying to match any modifiers. Just try to match the basic case, like the DAG does.
-
YingChi Long authored
Add vp.inttoptr & vp.ptrtoint support by lowering them into vp.zext / vp.truncate with in SelectionDAGBuilder. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D137169
-
Chuanqi Xu authored
Currently there is a -emit-header-module mode, which can combine several headers together as a module interface. However, this breaks our assumption (for standard c++ modules) about module interface. The module interface should come from a module interface unit. And if it is a header, it should be a header unit. And currently we have no ideas to combine several headers together. So I think this mode is an experimental one and it is not maintained and it is not used. So it will be better to remove them. Reviewed By: Bigcheese, dblaikie, bruno Differential Revision: https://reviews.llvm.org/D137609
-
Qiu Chaofan authored
-ffp-model=strict -ffp-model=fast will still enable strict exception handling behavior, therefore clang still emits constrained FP operations in IR. -ffp-model=fast -ffp-model=strict emits two warnings: one for strict overriding fast, the other for strict overriding strict, which is confusing. Reviewed By: zahiraam Differential Revision: https://reviews.llvm.org/D137618
-
Volodymyr Sapsai authored
When during parsing we encountered a duplicate `ObjCProtocolDecl`, we were always emitting an error. With this change we accept * when a previous `ObjCProtocolDecl` is in a hidden [sub]module; * parsed `ObjCProtocolDecl` is the same as the previous one. And in case of mismatches we provide more detailed error messages. rdar://93069080 Differential Revision: https://reviews.llvm.org/D130327
-
Alexander Shaposhnikov authored
This diff splits out (from LLVMCore) IR printing passes into IRPrinter. This structure is similar to what we already have for IRReader and enables us to avoid circular dependencies between LLVMCore and Analysis (this is a preparation for https://reviews.llvm.org/D137768). The legacy interface is left unchanged, once the legacy pass manager is removed (in the future) we will be able to clean it up further. The bazel build configuration has been updated as well. Test plan: 1/ Tested the following cmake configurations: static/dynamic linking * lld/gold * clang/gcc 2/ bazel build --config=generic_clang @llvm-project//... Differential revision: https://reviews.llvm.org/D138081
-