- Nov 17, 2022
-
-
Martin Storsjö authored
Differential Revision: https://reviews.llvm.org/D138113
-
Alex Richardson authored
Previously it was only being done if shouldAlignPointerArgs() returned true, which right now is only true for ARM targets. Updating the argument alignment attributes of memcpy/memset intrinsics if the underlying object has larger alignment can be beneficial even when CGP didn't increase alignment (as can be seen from the test changes), so invert the loop and if condition. Differential Revision: https://reviews.llvm.org/D134281
-
Alex Richardson authored
-
Emmmer authored
Allow users to access FPR registers by names or ABI names. PS: This patch should be merged after D137508 Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D137761
-
Emmmer authored
This patch uses RISCV ABI register name as `alt_name` in `RegisterInfo` in `lldb-private-types.h` Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D137508
-
Timm Bäder authored
Use FastEvaluateAsRValue() in EvaluateAsConstantExpr() as well, to short-circuit evaluation of simple integrals. Differential Revision: https://reviews.llvm.org/D138115
-
Uday Bondhugula authored
NFC. Fix unused context warning from Parser.h. ``` ..include/mlir/Parser/Parser.h:39:38: warning: parameter ‘context’ set but not used [-Wunused-but-set-parameter] 39 | Block *parsedBlock, MLIRContext *context, Location sourceFileLoc) { ``` Differential Revision: https://reviews.llvm.org/D138192 -
Anton Sidorenko authored
This patch adds tranformation of fmul+fadd/fsub chains to fused multiply instructions: * fmul+fadd->fmadd * fmul+fsub->fmsub/fnmsub We also will try to combine these instructions if the fmul has more than one use and cannot be deleted. However, removing the dependence between fmul and fadd can still be profitable, and we rely on machine combiner approximations of scheduling. Differential Revision: https://reviews.llvm.org/D136764
-
Evgeniy Brevnov authored
This reverts commit 52a40185.
-
Evgeniy Brevnov authored
Currently, JT creates and updates local instances of BPI\BFI. As a result global ones have to be invalidated if JT made any changes. In fact, JT doesn't use any information from BPI/BFI for the sake of the transformation itself. It only creates BPI/BFI to keep them up to date. But since it updates local copies (besides cases when it updates profile metadata) it just waste of time. Current patch is a rework of D124439. D124439 makes one step and replaces local copies with global ones retrieved through AnalysisPassManager. Here we do one more step and don't create BPI/BFI if the only reason of creation is to keep BPI/BFI up to date. Overall logic is the following. If there is cached BPI/BFI then update it along the transformations. If there is no existing BPI/BFI, then create it only if it is required to update profile metadata. Please note if BPI/BFI exists on exit from JT (either cached or created) it is always up to date and no reason to invalidate it. Differential Revision: https://reviews.llvm.org/D136827
-
Valentin Clement authored
Create the fir.dispatch_table operation based on semantics information. The fir.dispatch_table will be used for static devirtualization as well as for fir.select_type conversion. Depends on D138129 Reviewed By: jeanPerier, PeteSteinfeld Differential Revision: https://reviews.llvm.org/D138131
-
Valentin Clement authored
Reviewed By: jeanPerier, PeteSteinfeld Differential Revision: https://reviews.llvm.org/D138129
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D138138
-
Tobias Gysi authored
The revision moves call and gep tests to instructions.ll. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D137636
-
Emilia Dreamer authored
This change breaks no existing tests but does fix the linked issue. Declarations of operator overloads are annotated with `TT_FunctionDeclarationName` on the `operator` keyword, which is already being checked for when aligning, so the extra `kw_operator` doesn't seem to be necessary. (just for reference, it was added in rG92b397fb / 92b397fb) Fixes https://github.com/llvm/llvm-project/issues/55733 Reviewed By: HazardyKnusperkeks, owenpan Differential Revision: https://reviews.llvm.org/D137223
-
Emilia Dreamer authored
I'm not exactly sure what the intent of that section of `spaceRequiredBetween` is doing, it seems to handle templates and <<, but the part which adds spaces before parens is way later, as part of `spaceRequiredBeforeParens`. Fixes https://github.com/llvm/llvm-project/issues/58821 Reviewed By: HazardyKnusperkeks, owenpan, MyDeveloperDay Differential Revision: https://reviews.llvm.org/D137474
-
Aliia Khasanova authored
Differential Revision: https://reviews.llvm.org/D134807
-
Tobias Gysi authored
The revision puts the function attributes tests previously distributed accross multiple files int a single function-attributes.ll test file. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D137627
-
Tobias Gysi authored
The revision moves tests related to LLVM IR global variable import into a separate global-variables.ll file. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D137622
-
Sinan Lin authored
The test case introduced in https://reviews.llvm.org/D137535 does not set a proper triple, which breaks CI from ppc/x86win/nvptx64. Hope this patch can fix the issue. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D138188
-
Anton Sidorenko authored
-
Matt Jacobson authored
FreeBSD's diff writes its `--help` to stderr.
-
Jay Foad authored
Verify three cases of G_UNMERGE_VALUES separately: 1. Splitting a vector into subvectors (the converse of G_CONCAT_VECTORS). 2. Splitting a vector into its elements (the converse of G_BUILD_VECTOR). 3. Splitting a scalar into smaller scalars (the converse of G_MERGE_VALUES). Previously #1 allowed strange combinations like this: %1:_(<2 x s16>),%2:_(<2 x s16>) = G_UNMERGE_VALUES %0(<2 x s32>) This has been tightened up to check that the source and destination element types match, and some MIR test cases updated accordingly. Differential Revision: https://reviews.llvm.org/D111132
-
Muhammad Omair Javaid authored
This reverts commit 213dbdbe. This patch series breaks lld:map-file.s on arm v7 linux buildbots. e.g https://lab.llvm.org/buildbot/#/builders/178/builds/3190
-
Muhammad Omair Javaid authored
This reverts commit 7f077996. This patch series breaks lld:map-file.s on arm v7 linux buildbots. e.g https://lab.llvm.org/buildbot/#/builders/178/builds/3190
-
Muhammad Omair Javaid authored
This reverts commit 1a2bc103. This patch series breaks lld:map-file.s on arm v7 linux buildbots. e.g https://lab.llvm.org/buildbot/#/builders/178/builds/3190
-
Fangrui Song authored
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Che-Yu Wu authored
Differential Revision: https://reviews.llvm.org/D138156
-
Vladislav Khmelevsky authored
Since instrumentation could be used on libraries we need to use fPIC, not fPIE flag. Differential Revision: https://reviews.llvm.org/D138099
-
Sinan Lin authored
basic block section cases MachineBlockPlacement pass sets an alignment attribute to the loop header MBB and this attribute will lead to an alignment directive during emitting asm. In the case of the basic block section, the alignment directive is put before the section label, and thus the alignment is set to the predecessor of the loop header, which is not what we expect and increases the code size (both inserting nop and set section alignment). Reviewed By: rahmanl Differential Revision: https://reviews.llvm.org/D137535
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Chi Chun Chen authored
-
Carlos Alberto Enciso authored
The following functions are used in the unittest, to access invalid data detected by the Reader during the debug information analysis: - getDebugTags - getWarningOffsets - getInvalidLocations - getInvalidCoverages - getInvalidRanges - getLinesZero Just return a reference to the container with the information. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D138092
-
Mehdi Amini authored
-
Fangrui Song authored
For a local linkage GlobalObject in a non-prevailing COMDAT, it remains defined while its leader has been made available_externally. This violates the COMDAT rule that its members must be retained or discarded as a unit. To fix this, update the regular LTO change D34803 to track local linkage GlobalValues, and port the code to ThinLTO (GlobalAliases are not handled.) This fixes two problems. (a) `__cxx_global_var_init` in a non-prevailing COMDAT group used to linger around (unreferenced, hence benign), and is now correctly discarded. ``` int foo(); inline int v = foo(); ``` (b) Fix https://github.com/llvm/llvm-project/issues/58215: as a size optimization, we place private `__profd_` in a COMDAT with a `__profc_` key. When FuncImport.cpp makes `__profc_` available_externally due to a non-prevailing COMDAT, `__profd_` incorrectly remains private. This change makes the `__profd_` available_externally. ``` cat > c.h <<'eof...
-
Fangrui Song authored
This reverts commit 89016354. This change broke the following example and we need to check `if (GO->getComdat()->getName() == GO->getName())` before `NonPrevailingComdats.insert(GO->getComdat());` Revert for clarify. ``` // a.cc template <typename T> struct A final { virtual ~A() {} }; extern "C" void aa() { A<int> a; } // b.cc template <typename T> struct A final { virtual ~A() {} }; template struct A<int>; extern "C" void bb(A<int> *a) { delete a; } clang -c -fpic -O0 -flto=thin a.cc && ld.lld -shared a.o b.o ```
-