- Oct 29, 2021
-
-
Nicolai Hähnle authored
This is a (very) small move towards making the machine dominators more aligned with the IR dominators: * DominatorTree / MachineDomTree is the class holding the dominator tree * DominatorTreeWrapperPass / MachineDominatorTree is the corresponding (machine) function pass This alignment will be used by analyses that are designed as templates that work with LLVM IR as well as Machine IR. Reviewed By: critson Differential Revision: https://reviews.llvm.org/D112690
-
Victor Huang authored
[PowerPC][NFC] Update builtins-ppc-xlcompat-trap-64bit-only.ll and builtins-ppc-xlcompat-trap.ll to show full reg names
-
Fangrui Song authored
Many diagnostics use `getErrorPlace` or `getErrorLocation` to report a location. In the presence of line table debug information, `getErrorPlace` uses a source file location and ignores the object file location. However, the object file location is sometimes more useful. This patch changes "undefined symbol" and "out of range" diagnostics to report both object/source file locations. Other diagnostics can use similar format if needed. The key idea is to let `InputSectionBase::getLocation` report the object file location and use `getSrcMsg` for source file/line information. `getSrcMsg` doesn't leverage `STT_FILE` information yet, but I think the temporary lack of the functionality is ok. For the ARM "branch and link relocation" diagnostic, I arbitrarily place the source file location at the end of the line. The diagnostic is not very common so its formatting doesn't need to be pretty. Differential Revision: https://reviews.llvm.org/D112518
-
Kazu Hirata authored
This patch fixes: mlir/lib/IR/BuiltinAttributes.cpp:876:39: error: unused function 'isComplexOfIntType' [-Werror,-Wunused-function] in a release build.
-
Philip Reames authored
-
David CARLIER authored
Reviewed By: yln, vitalybuka Differential Revision: https://reviews.llvm.org/D111390
-
Philip Reames authored
-
Chandler Carruth authored
Adds basic `--config=clang-cl` to set up the basic options needed, and then fix a number of issues that surface in Windows builds for me. With these fixes, `//llvm/...` builds cleanly. One unittest still fails, but its just due to running out of stack space due to creating a large number of short-lived stack variables. The test should probably be decomposed into a set of tests (`LegalizerInfoTest::RuleSets`), but that seemed like too invasive of a change here and with everything building cleanly this isn't disrupting me experimenting with Windows builds. Some parts of `//clang/...` builds, but that will require more work.
-
Aart Bik authored
Rationale: The silent exit(1) gives little clues on where the error occurs on failure and may even be confusing at first. The CHECK testing of all computed values and indices may be a little bit more elaborate, but it directly pinpoints where errors happen if they occur. This style is also consistent with the other tests, which I actually prefer. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D112688
-
- Oct 28, 2021
-
-
Siva Chandra Reddy authored
The idea is to move all pieces related to the actual libc sources to the "src" directory. This allows downstream users to ship and build just the "src" directory. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D112653
-
Kadir Cetinkaya authored
This is important especially for code that tries to traverse scopes as written in code, which is the contract SelectionTree tries to satisfy. Differential Revision: https://reviews.llvm.org/D112712
-
Mark de Wever authored
Per our support plan we should now support Clang 12 and 13. Adjust the documentation and the CI runners. The change indirectly moves the main CI runners to use the Clang 14 nightly builds. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D112360
-
Leonard Grey authored
With D112160 and D112164, on a Chrome Mac build this reduces the total size of CGProfile sections by 78% (around 25% eliminated entirely) and total size of object files by 0.14%. Differential Revision: https://reviews.llvm.org/D112655
-
Mike Rice authored
Adds basic parsing/sema/serialization support for the #pragma omp loop directive. Differential Revision: https://reviews.llvm.org/D112499
-
Daniel Kiss authored
This reverts commit b6420e57.
-
Daniel Kiss authored
This is relanding commit da1d1a08 . This patch additionally addresses failures found in buildbots & post review comments. ARM EHABI[1] specifies the __cxa_end_cleanup to be called after cleanup. It will call the UnwindResume. __cxa_begin_cleanup will be called from libcxxabi while __cxa_end_cleanup is never called. This will trigger a termination when a foreign exception is processed while UnwindResume is called because the global state will be wrong due to the missing __cxa_end_cleanup call. Additional test here: D109856 [1] https://github.com/ARM-software/abi-aa/blob/main/ehabi32/ehabi32.rst#941compiler-helper-functions Reviewed By: logan Differential Revision: https://reviews.llvm.org/D111703
-
David Green authored
This extends the canonicalizeClampLike function to allow cases where the input is truncated, but still matching on the types of the ICmps. For example %t = trunc i32 %X to i8 %a = add i32 %X, 128 %cmp = icmp ult i32 %a, 256 %c = icmp sgt i32 %X, -1 %f = select i1 %c, i8 High, i8 Low %r = select i1 %cmp, i8 %t, i8 %f becomes %c1 = icmp slt i32 %X, -128 %c2 = icmp sge i32 %X, 128 %s1 = select i1 %c1, i32 sext(Low), i32 %X %s2 = select i1 %c2, i32 sext(High), i32 %s1 %t = trunc i32 %s2 to i8 https://alive2.llvm.org/ce/z/vPzfxH We limit the transform to constant High and Low values, where we know the sext are free. Differential Revision: https://reviews.llvm.org/D108049
-
Louis Dionne authored
-
Nico Weber authored
This reverts commit 15e3d391. See https://reviews.llvm.org/D111833#3093629
-
Raphael Isemann authored
-
Sam Clegg authored
This function was renamed in https://reviews.llvm.org/D62291.
-
Dawid Jurczak authored
That's https://reviews.llvm.org/D90328 follow-up. This change eliminates writes to variables where the value that is being written is already stored in the variable. This achieves the goal by looping through all memory definitions in the current state and getting defining access from each of them. When there is defining access where the write instruction is identical to the original instruction it will remove this redundant write. For example: void f() { x = 1; if foo() { x = 1; g(); } else { h(); } } void g(); void h(); The second x=1 will be eliminated since it is rewriting 1 to x. This pass will produce this: void f() { x = 1; if foo() { g(); } else { h(); } } void g(); void h(); Differential Revision: https://reviews.llvm.org/D111727
-
David Green authored
With a "ult x, 0", the fold in canonicalizeClampLike does not validate with undef inputs. This condition will usually have been simplified away, but we should ensure the code is correct in case. https://alive2.llvm.org/ce/z/S8HQ6H vs https://alive2.llvm.org/ce/z/h2XBJ_ See: https://reviews.llvm.org/D108049
-
Lei Zhang authored
* Move SmallVectors outside of inner loops to avoid frequent allocations and deallocations * Calculate linearized index and call flat range getters to avoid internal shape querying behind `getValue`. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D112099
-
Simon Pilgrim authored
If the index operand for a gather/scatter intrinsic is being scaled (self-addition or a shl-by-immediate) then we may be able to fold that scaling into the intrinsic scale immediate value instead. Fixes PR13310. Differential Revision: https://reviews.llvm.org/D108539
-
Kadir Cetinkaya authored
Fixes https://github.com/clangd/clangd/issues/900
-
Nico Weber authored
-
Alexey Bataev authored
Gathered loads/extractelements/extractvalue instructions should be checked if they can represent a vector reordering node too and their order should ve taken into account for better graph reordering analysis/ Also, if the gather node has reused scalars, they must be reordered instead of the scalars themselves. Differential Revision: https://reviews.llvm.org/D112454
-
Hans Wennborg authored
Follow-up to 8c136805 to allow a less abrupt migration for users. Differential revision: https://reviews.llvm.org/D112704
-
Uday Bondhugula authored
Add llvm.mlir.global_ctors and global_dtors ops and their translation support to LLVM global_ctors/global_dtors global variables. Differential Revision: https://reviews.llvm.org/D112524
-
Pavel Labath authored
This makes it possible to use for loops (and other language constructs) in inline tests. Differential Revision: https://reviews.llvm.org/D112706
-
Sanjay Patel authored
The motivating test is reduced from: https://llvm.org/PR52261 Note that the more general problem of folding any binop into a multi-use select of constants is still there. We need to ease the restriction in InstCombinerImpl::FoldOpIntoSelect() to catch those. But these examples never reach that code because Negator exclusively handles negation patterns within visitSub(). Differential Revision: https://reviews.llvm.org/D112657
-
Peter Waller authored
The newly added test previously caused the compiler to fail an assertion. It looks like a strightforward TypeSize upgrade. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D112142
-
David Green authored
-
Konstantin Schwarz authored
During rule optimization, identical SameOperandMatchers are hoisted into a common group, however previously only one operand index was considered. Commutable patterns can introduce SameOperandMatcher checks where the second index is commuted, resulting in a different check that cannot be hoisted. Reviewed By: qcolombet Differential Revision: https://reviews.llvm.org/D111506
-
Jon Chesterfield authored
Passes same tests as the current deviceRTL. Includes cmake change from D111987. CI is showing a different set of pass/fails to local, committing this without the tests enabled by default while debugging that difference. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D112227
-
Dmitry Vyukov authored
tsan_rtl.cpp is huge and does lots of things. Move everything related to memory access and tracing to a separate tsan_rtl_access.cpp file. No functional changes, only code movement. Reviewed By: vitalybuka, melver Differential Revision: https://reviews.llvm.org/D112625
-
Abinav Puthan Purayil authored
mul24 intrinsic's operands are simplified by AMDGPUTargetLowering::performIntrinsicWOChainCombine(). This change adds the mul24hi intrinsics in the combine since its operands can be simplified like that of the mul24 intrinsics. Differential Revision: https://reviews.llvm.org/D112702
-
Abinav Puthan Purayil authored
Differential Revision: https://reviews.llvm.org/D112685
-
Guillaume Chatelet authored
-